Send and track Text-Em-All broadcasts, texts and contact lists.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
MUTATES Text-Em-All data: adds a new user to your account (a master user can do this). Text-Em-All API: POST /v1/account/users. Provide the user's fields via `fields` using the API's PascalCase names (e.g. UserName, FirstName, LastName, EmailAddress, Permissions). Returns the created user.
Additional documented Text-Em-All fields to send verbatim in the JSON write body, using the API's PascalCase names (e.g. CallerID, TextNumberID, Lists, RetryTimes). Merged OVER the typed fields above.
Last name (LastName).
The new user's login username (UserName).
First name (FirstName).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
MUTATES Text-Em-All data: adds a new user to your account (a master user can do this). Text-Em-All API: POST /v1/account/users. Provide the user's fields via `fields` using the API's PascalCase names (e.g. UserName, FirstName, LastName, EmailAddress, Permissions). Returns the created user.
| Argument | Type | Description |
|---|---|---|
| fields | object | Additional documented Text-Em-All fields to send verbatim in the JSON write body, using the API's PascalCase names (e.g. CallerID, TextNumberID, Lists, RetryTimes). Merged OVER the typed fields above. |
| lastName | string | Last name (LastName). |
| userName | string | The new user's login username (UserName). |
| firstName | string | First name (FirstName). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"fields": {
"type": "object",
"description": "Additional documented Text-Em-All fields to send verbatim in the JSON write body, using the API's PascalCase names (e.g. CallerID, TextNumberID, Lists, RetryTimes). Merged OVER the typed fields above.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"lastName": {
"type": "string",
"description": "Last name (LastName)."
},
"userName": {
"type": "string",
"description": "The new user's login username (UserName)."
},
"firstName": {
"type": "string",
"description": "First name (FirstName)."
}
}
}MUTATES Text-Em-All data AND SENDS MESSAGES (spends account credits): creates + sends a broadcast to the given contacts. Text-Em-All API: POST /v1/broadcasts. Set broadcastType to 'SMS' (a text broadcast — provide textMessage) or 'Announcement' (a voice broadcast — provide voiceText for text-to-speech, or a pre-recorded AudioID via `fields.Audio`). Contacts is a list of { primaryPhone, firstName?, lastName?, notes? }. Extra documented fields (CallerID, TextNumberID, Lists, RetryTimes, CallThrottle, MaxMessageLength, StartDate, CheckCallingWindow) go through `fields` (PascalCase). Returns the created broadcast.
| Argument | Type | Description |
|---|---|---|
| fields | object | Additional documented Text-Em-All fields to send verbatim in the JSON write body, using the API's PascalCase names (e.g. CallerID, TextNumberID, Lists, RetryTimes). Merged OVER the typed fields above. |
| contacts* | array | Recipients (each needs primaryPhone). Required. |
| voiceText | string | Text-to-speech message for an Announcement broadcast (mapped to Audio.TextToSpeech=true + Audio.Text). |
| textMessage | string | The text body for an SMS broadcast (TextMessage). Required when broadcastType='SMS'. |
| broadcastName* | string | A name/label for this broadcast (BroadcastName). Required. |
| broadcastType |
MUTATES Text-Em-All data (creates a DRAFT — does NOT send anything): stages a broadcast with the given contacts and returns a single-sign-on URL to finish + send it in the Text-Em-All UI. Safer than text_em_all_create_broadcast when a human should review before sending. Text-Em-All API: POST /v1/draftbroadcasts. Returns { SingleSignOnUrl, ... }.
| Argument | Type | Description |
|---|---|---|
| fields | object | Additional documented Text-Em-All fields to send verbatim in the JSON write body, using the API's PascalCase names (e.g. CallerID, TextNumberID, Lists, RetryTimes). Merged OVER the typed fields above. |
| contacts* | array | Contacts to pre-populate on the draft broadcast (each needs primaryPhone). Required. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"contacts"
],
"properties": {
"fields": {
"type": "object",
"description": "Additional documented Text-Em-All fields to send verbatim in the JSON write body, using the API's PascalCase names (e.g. CallerID, TextNumberID, Lists, RetryTimes). Merged OVER the typed fields above.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"contacts": {
"type": "array",
"items": {
"type": "object",
"required": [
"primaryPhone"
],
"properties": {
"notes": {
"type": "string",
"description": "Free-text notes about the contact (Person.Notes)."
},
"lastName": {
"type": "string",
"description": "Contact last name (Person.LastName)."
},
"firstName": {
"type": "string",
"description": "Contact first name (Person.FirstName)."
},
"primaryPhone": {
"type": "string",
"description": "The contact's phone number (Person.PrimaryPhone). Required."
}
}
},
"minItems": 1,
"description": "Contacts to pre-populate on the draft broadcast (each needs primaryPhone). Required."
}
}
}Fetch your Text-Em-All account settings — company/billing info plus credit balances (AvailableCallUnits, CallBalance) used for sending. Text-Em-All API: GET /v1/account. Use this first to confirm your credentials work.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Exchange a Text-Em-All account username + PIN/password for that user's authorization token (the value you set as TEXTEMALL_AUTH_TOKEN). Text-Em-All API: POST /v1/user/login. Signed with your App/Secret key only (no user token yet). Returns { AuthToken }. Use this once to bootstrap; store the token in config thereafter.
| Argument | Type | Description |
|---|---|---|
| password* | string | The Text-Em-All website login PIN/password. Required. |
| username* | string | The Text-Em-All website login username. Required. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"username",
"password"
],
"properties": {
"password": {
"type": "string",
"description": "The Text-Em-All website login PIN/password. Required."
},
"username": {
"type": "string",
"description": "The Text-Em-All website login username. Required."
}
}
}Fetch a single broadcast by id, including its status and summary. Text-Em-All API: GET /v1/broadcasts/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | The BroadcastID. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "The BroadcastID."
}
}
}Fetch per-contact delivery details/results for a broadcast (who was reached, delivery status). Text-Em-All API: GET /v1/broadcasts/{id}/details.
| Argument | Type | Description |
|---|---|---|
| id* | string | number | The BroadcastID. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"string",
"number"
],
"description": "The BroadcastID."
}
}
}Generate a single-sign-on URL to the Text-Em-All conversations UI (open in a browser/iframe). Optionally scope it to one conversation thread by passing a toll-free textNumber + the other phoneNumber. Text-Em-All API: POST /v1/singlesignon/conversations. Returns { Url }. No account data is changed.
| Argument | Type | Description |
|---|---|---|
| textNumber | string | A toll-free text number on the account, e.g. 18885551234. |
| phoneNumber | string | A phone number that has a conversation with the text number, e.g. 9725551212. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"textNumber": {
"type": "string",
"description": "A toll-free text number on the account, e.g. 18885551234."
},
"phoneNumber": {
"type": "string",
"description": "A phone number that has a conversation with the text number, e.g. 9725551212."
}
}
}List broadcasts (text + voice campaigns) as a paged Feed { Size, Items:[...], Previous, Next }. Text-Em-All API: GET /v1/broadcasts. Filter with equals-style `params` (e.g. BroadcastStatus=Complete) and order with `sortby`. For date-range operators (StartDate~gte~2024-01-01) use the text_em_all_request escape hatch.
| Argument | Type | Description |
|---|---|---|
| page | integer | 1-based page number (Feed `page`). |
| params | object | Additional documented equals-style query filters to send verbatim (e.g. BroadcastStatus=Completed). For range operators (Field~gte~value etc.) use the text_em_all_request escape hatch. Merged with paging above. |
| sortby | string | Comma-separated fields to sort by; prefix a field with '-' for descending (e.g. '-StartDate,CreatedDate'). |
| pagesize | integer | Number of items per page (Feed `pagesize`, default 10). |
| takesize | integer | How many items to return (Feed `takesize`; defaults to pagesize). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "1-based page number (Feed `page`)."
},
"params": {
"type": "object",
"description": "Additional documented equals-style query filters to send verbatim (e.g. BroadcastStatus=Completed). For range operators (Field~gte~value etc.) use the text_em_all_request escape hatch. Merged with paging above.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
},
"sortby": {
"type": "string",
"description": "Comma-separated fields to sort by; prefix a field with '-' for descending (e.g. '-StartDate,CreatedDate')."
},
"pagesize": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Number of items per page (Feed `pagesize`, default 10)."
},
"takesize": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "How many items to return (Feed `takesize`; defaults to pagesize)."
}
}
}List saved contact lists (groups you can broadcast to) as a Feed; each List has a ListID/ListName. Text-Em-All API: GET /v1/lists. NOTE: inferred from the API's List model — if your account/endpoint differs, use the text_em_all_request escape hatch.
| Argument | Type | Description |
|---|---|---|
| page | integer | 1-based page number (Feed `page`). |
| params | object | Additional documented equals-style query filters to send verbatim (e.g. BroadcastStatus=Completed). For range operators (Field~gte~value etc.) use the text_em_all_request escape hatch. Merged with paging above. |
| pagesize | integer | Number of items per page (Feed `pagesize`, default 10). |
| takesize | integer | How many items to return (Feed `takesize`; defaults to pagesize). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "1-based page number (Feed `page`)."
},
"params": {
"type": "object",
"description": "Additional documented equals-style query filters to send verbatim (e.g. BroadcastStatus=Completed). For range operators (Field~gte~value etc.) use the text_em_all_request escape hatch. Merged with paging above.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
},
"pagesize": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Number of items per page (Feed `pagesize`, default 10)."
},
"takesize": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "How many items to return (Feed `takesize`; defaults to pagesize)."
}
}
}List the toll-free text (SMS) numbers on your account as a Feed. Each TextNumber has a TextNumberID you need to send a 1:1 conversation text (see text_em_all_send_text_message). Text-Em-All API: GET /v1/textnumbers.
| Argument | Type | Description |
|---|---|---|
| page | integer | 1-based page number (Feed `page`). |
| params | object | Additional documented equals-style query filters to send verbatim (e.g. BroadcastStatus=Completed). For range operators (Field~gte~value etc.) use the text_em_all_request escape hatch. Merged with paging above. |
| pagesize | integer | Number of items per page (Feed `pagesize`, default 10). |
| takesize | integer | How many items to return (Feed `takesize`; defaults to pagesize). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "1-based page number (Feed `page`)."
},
"params": {
"type": "object",
"description": "Additional documented equals-style query filters to send verbatim (e.g. BroadcastStatus=Completed). For range operators (Field~gte~value etc.) use the text_em_all_request escape hatch. Merged with paging above.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
}
},
"pagesize": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Number of items per page (Feed `pagesize`, default 10)."
},
"takesize": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "How many items to return (Feed `takesize`; defaults to pagesize)."
}
}
}Power-user escape hatch: GET any Text-Em-All API path not wrapped by a dedicated tool. READ-ONLY — only GET is allowed. Pass the FULL API path after the origin, starting with a slash, INCLUDING any query string, e.g. "/v1/broadcasts?StartDate~gte~2024-01-01&sortby=-StartDate" or "/v1/textnumbers". Returns the parsed JSON.
| Argument | Type | Description |
|---|---|---|
| path* | string | Full API path after the origin, starting with "/", e.g. "/v1/broadcasts?pagesize=50". |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"path"
],
"properties": {
"path": {
"type": "string",
"description": "Full API path after the origin, starting with \"/\", e.g. \"/v1/broadcasts?pagesize=50\"."
}
}
}MUTATES Text-Em-All data AND SENDS A TEXT (spends credits): sends a 1:1 conversation text message immediately from one of your toll-free text numbers to a single contact. Text-Em-All API: POST /v1/conversations. You need a textNumberId (from text_em_all_list_text_numbers). Returns the conversation.
| Argument | Type | Description |
|---|---|---|
| fields | object | Additional documented Text-Em-All fields to send verbatim in the JSON write body, using the API's PascalCase names (e.g. CallerID, TextNumberID, Lists, RetryTimes). Merged OVER the typed fields above. |
| message* | string | The text message body. Required. |
| lastName | string | Recipient last name (Contact.LastName). |
| firstName | string | Recipient first name (Contact.FirstName). |
| phoneNumber* | string | The recipient's phone number (e.g. 9725551212). Required. |
| textNumberId* | string | number | The TextNumberID of the toll-free number to send from (see text_em_all_list_text_numbers). Required. |
| truncateIfExceedsLimit | boolean |
MUTATES Text-Em-All data: updates an existing account user. Text-Em-All API: PUT /v1/account/users/{user_id}. Provide the fields to change via `fields` (PascalCase, e.g. FirstName, LastName, EmailAddress, Permissions). The user_id is never sent in the body. Returns the updated user.
| Argument | Type | Description |
|---|---|---|
| fields | object | Additional documented Text-Em-All fields to send verbatim in the JSON write body, using the API's PascalCase names (e.g. CallerID, TextNumberID, Lists, RetryTimes). Merged OVER the typed fields above. |
| user_id* | string | number | The id of the user to update (path only). Required. |
| lastName | string | New last name (LastName). |
| firstName | string | New first name (FirstName). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"user_id"
],
"properties": {
"fields": {
"type": "object",
"description": "Additional documented Text-Em-All fields to send verbatim in the JSON write body, using the API's PascalCase names (e.g. CallerID, TextNumberID, Lists, RetryTimes). Merged OVER the typed fields above.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"user_id": {
"type": [
"string",
"number"
],
"description": "The id of the user to update (path only). Required."
},
"lastName": {
"type": "string",
"description": "New last name (LastName)."
},
"firstName": {
"type": "string",
"description": "New first name (FirstName)."
}
}
}| string |
| 'SMS' for a text broadcast, 'Announcement' for a voice broadcast. Required. |
| primaryPhoneNumbersOnly | boolean | Only send to each contact's primary phone number (PrimaryPhoneNumbersOnly, default true). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"broadcastName",
"broadcastType",
"contacts"
],
"properties": {
"fields": {
"type": "object",
"description": "Additional documented Text-Em-All fields to send verbatim in the JSON write body, using the API's PascalCase names (e.g. CallerID, TextNumberID, Lists, RetryTimes). Merged OVER the typed fields above.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"contacts": {
"type": "array",
"items": {
"type": "object",
"required": [
"primaryPhone"
],
"properties": {
"notes": {
"type": "string",
"description": "Free-text notes about the contact (Person.Notes)."
},
"lastName": {
"type": "string",
"description": "Contact last name (Person.LastName)."
},
"firstName": {
"type": "string",
"description": "Contact first name (Person.FirstName)."
},
"primaryPhone": {
"type": "string",
"description": "The contact's phone number (Person.PrimaryPhone). Required."
}
}
},
"minItems": 1,
"description": "Recipients (each needs primaryPhone). Required."
},
"voiceText": {
"type": "string",
"description": "Text-to-speech message for an Announcement broadcast (mapped to Audio.TextToSpeech=true + Audio.Text)."
},
"textMessage": {
"type": "string",
"description": "The text body for an SMS broadcast (TextMessage). Required when broadcastType='SMS'."
},
"broadcastName": {
"type": "string",
"description": "A name/label for this broadcast (BroadcastName). Required."
},
"broadcastType": {
"enum": [
"SMS",
"Announcement"
],
"type": "string",
"description": "'SMS' for a text broadcast, 'Announcement' for a voice broadcast. Required."
},
"primaryPhoneNumbersOnly": {
"type": "boolean",
"description": "Only send to each contact's primary phone number (PrimaryPhoneNumbersOnly, default true)."
}
}
}| Truncate the message if it exceeds the length limit (TruncateIfExceedsLimit). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"textNumberId",
"phoneNumber",
"message"
],
"properties": {
"fields": {
"type": "object",
"description": "Additional documented Text-Em-All fields to send verbatim in the JSON write body, using the API's PascalCase names (e.g. CallerID, TextNumberID, Lists, RetryTimes). Merged OVER the typed fields above.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"message": {
"type": "string",
"description": "The text message body. Required."
},
"lastName": {
"type": "string",
"description": "Recipient last name (Contact.LastName)."
},
"firstName": {
"type": "string",
"description": "Recipient first name (Contact.FirstName)."
},
"phoneNumber": {
"type": "string",
"description": "The recipient's phone number (e.g. 9725551212). Required."
},
"textNumberId": {
"type": [
"string",
"number"
],
"description": "The TextNumberID of the toll-free number to send from (see text_em_all_list_text_numbers). Required."
},
"truncateIfExceedsLimit": {
"type": "boolean",
"description": "Truncate the message if it exceeds the length limit (TruncateIfExceedsLimit)."
}
}
}