SimpleTexting MCP by usefulapi
Send SMS/MMS, manage contacts, and read campaigns, messages and media on SimpleTexting.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"simpletexting": {
"url": "https://simpletexting.usefulapi.io/mcp"
}
}
}Remote endpoints
https://simpletexting.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (11)
🟢simpletexting_list_contacts(page, size, since, direction)
List the account's contacts as a paged collection, optionally filtered by a `since` cursor and sort `direction`. SimpleTexting REST: GET /contacts.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Zero-based page number.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Page size (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"since": {
"description": "Return contacts created/updated since this cursor or timestamp.",
"type": "string"
},
"direction": {
"description": "Sort direction (e.g. ASC | DESC).",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢simpletexting_get_contact(contact)
Get a single contact by its id or phone number, including profile fields, list memberships, and custom fields. SimpleTexting REST: GET /contacts/{contactIdOrNumber}.
Input Schema
{
"type": "object",
"properties": {
"contact": {
"type": "string",
"description": "Contact id or phone number."
}
},
"required": [
"contact"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢simpletexting_list_campaigns(page, size, accountPhone, state, listNameOrId, ...)
List the account's campaigns as a paged collection, optionally filtered by sending number, state, list, and start-date range. Note: only immediate campaigns are returned — scheduled/recurring campaigns are NOT included. SimpleTexting REST: GET /campaigns.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Zero-based page number.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Page size (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"accountPhone": {
"description": "Filter by the sending account phone number.",
"type": "string"
},
"state": {
"description": "Filter by campaign state (e.g. SENT | SCHEDULED | DRAFT).",
"type": "string"
},
"listNameOrId": {
"description": "Filter by recipient list name or id.",
"type": "string"
},
"startDateFrom": {
"description": "Filter to campaigns starting on/after this date.",
"type": "string"
},
"startDateTo": {
"description": "Filter to campaigns starting on/before this date.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢simpletexting_get_campaign(campaign_id)
Get a single campaign by its id, including its message, recipients, and status. SimpleTexting REST: GET /campaigns/{id}.
Input Schema
{
"type": "object",
"properties": {
"campaign_id": {
"type": "string",
"description": "Campaign id."
}
},
"required": [
"campaign_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢simpletexting_list_messages(page, size)
List the account's messages as a paged collection (inbound + outbound message history). SimpleTexting REST: GET /messages.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Zero-based page number.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Page size (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢simpletexting_get_message(message_id)
Get a single message by its id, including its text, direction, status, and timestamps. SimpleTexting REST: GET /messages/{id}.
Input Schema
{
"type": "object",
"properties": {
"message_id": {
"type": "string",
"description": "Message id."
}
},
"required": [
"message_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢simpletexting_list_media(page, size)
List the account's media items (MMS assets) as a paged collection. SimpleTexting REST: GET /media.
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Zero-based page number.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"size": {
"description": "Page size (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢simpletexting_get_media(media_id)
Get a single media item (MMS asset) by its id, including its URL and metadata. SimpleTexting REST: GET /media/{id}.
Input Schema
{
"type": "object",
"properties": {
"media_id": {
"type": "string",
"description": "Media item id."
}
},
"required": [
"media_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢simpletexting_evaluate_message(text, mode)
DRY-RUN a message body to compute its segment count, whether it sends as SMS or MMS, and its estimated cost — WITHOUT sending anything. Safe and read-only. SimpleTexting REST: POST /messages/evaluate with JSON body {text, mode?}.
Input Schema
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The message body to evaluate."
},
"mode": {
"description": "Optional send mode to evaluate against (e.g. AUTO | SMS | MMS).",
"type": "string"
}
},
"required": [
"text"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴simpletexting_send_message(contactPhone, text, accountPhone, mode, subject, ...)
SENDS A REAL SMS or MMS to a recipient — this MODIFIES live data and consumes message credits. Provide only the optional fields you need. SimpleTexting REST: POST /messages with JSON body {contactPhone, text, accountPhone?, mode?, subject?, fallbackText?, mediaItems?}.
Input Schema
{
"type": "object",
"properties": {
"contactPhone": {
"type": "string",
"description": "Recipient phone number (E.164 or national format)."
},
"text": {
"type": "string",
"description": "Message body to send."
},
"accountPhone": {
"description": "Sending account phone number — omit to use the account default.",
"type": "string"
},
"mode": {
"description": "Send mode: AUTO | SMS | MMS | MMS_PREFERRED.",
"type": "string"
},
"subject": {
"description": "MMS subject line.",
"type": "string"
},
"fallbackText": {
"description": "Fallback text if MMS cannot be delivered.",
"type": "string"
},
"mediaItems": {
"description": "Media URLs or media ids to attach (makes it an MMS).",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"contactPhone",
"text"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴simpletexting_update_contact(contact, contactPhone, firstName, lastName, email, ...)
UPDATES a live contact — its profile fields, list memberships, and custom fields. This MODIFIES live data. Provide only the fields you want to change. SimpleTexting REST: PUT /contacts/{contactIdOrNumber}.
Input Schema
{
"type": "object",
"properties": {
"contact": {
"type": "string",
"description": "Contact id or phone number to update."
},
"contactPhone": {
"description": "New phone number for the contact.",
"type": "string"
},
"firstName": {
"description": "Contact first name.",
"type": "string"
},
"lastName": {
"description": "Contact last name.",
"type": "string"
},
"email": {
"description": "Contact email address.",
"type": "string"
},
"birthday": {
"description": "Contact birthday (YYYY-MM-DD).",
"type": "string"
},
"comment": {
"description": "Free-text note on the contact.",
"type": "string"
},
"listIds": {
"description": "List ids or names to assign the contact to.",
"type": "array",
"items": {
"type": "string"
}
},
"customFields": {
"description": "Custom field values, as a map of field name → value.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"contact"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence