Trumpia MCP by usefulapi
Read Trumpia lists, subscribers, keywords and reports; add contacts and send SMS or email campaigns.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (2)
- LOWen trumpia_list_scheduled_messages
- LOWen trumpia_cancel_scheduled_message
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"trumpia": {
"url": "https://trumpia.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://trumpia.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (22)
🟢trumpia_get_credit_balance
The account's remaining domestic and international text credits. GET /balance/credit.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trumpia_get_request_report(request_id)
The outcome of an earlier write request (list/contact/message changes are processed asynchronously). Pass the request_id that the write tool returned; the reply holds the result (for example the new list_id) or says it is still processing or failed. GET /report/{request_id}.
Esquema de entrada
{
"type": "object",
"properties": {
"request_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "The request_id from a write reply."
}
},
"required": [
"request_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trumpia_list_lists
All distribution lists (id and name). Lists group subscriptions for targeted messages. GET /list.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trumpia_get_list(list_id)
One distribution list: display name, description, message frequency and subscription / mobile / email counts. GET /list/{list_id}.
Esquema de entrada
{
"type": "object",
"properties": {
"list_id": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Distribution list id (from trumpia_list_lists)."
}
},
"required": [
"list_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴trumpia_create_list(list_name, display_name, frequency, description)
WRITE: create a distribution list. Trumpia requires disclosing how often subscribers get messages and what for. Returns request_id and list_id. The list name must not contain spaces or special characters. PUT /list.
Esquema de entrada
{
"type": "object",
"properties": {
"list_name": {
"type": "string",
"minLength": 1,
"maxLength": 30,
"description": "List name (no spaces or special characters), e.g. GeneralList."
},
"display_name": {
"type": "string",
"minLength": 1,
"maxLength": 50,
"description": "Name subscribers see when they sign up (max 50 characters)."
},
"frequency": {
"type": "integer",
"minimum": 1,
"maximum": 999,
"description": "Messages per month subscribers will receive (disclosure required by mobile regulations)."
},
"description": {
"type": "string",
"minLength": 1,
"maxLength": 20,
"description": "What the list sends, e.g. 'promo alerts' (max 20 characters)."
}
},
"required": [
"list_name",
"display_name",
"frequency",
"description"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴trumpia_update_list(list_id, list_name, display_name, frequency, description)
WRITE: change a distribution list's name, display name, frequency or description. Only the fields you pass change. POST /list/{list_id}.
Esquema de entrada
{
"type": "object",
"properties": {
"list_id": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Distribution list id."
},
"list_name": {
"type": "string",
"minLength": 1,
"maxLength": 30
},
"display_name": {
"type": "string",
"minLength": 1,
"maxLength": 50
},
"frequency": {
"type": "integer",
"minimum": 1,
"maximum": 999
},
"description": {
"type": "string",
"minLength": 1,
"maxLength": 20
}
},
"required": [
"list_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trumpia_list_subscriptions(row_size, page)
Subscription (contact) ids, newest first. Returns ids only; use trumpia_get_subscription for the details. Pages of 100-10000 ids; next_page is set when a full page came back. GET /subscription.
Esquema de entrada
{
"type": "object",
"properties": {
"row_size": {
"description": "Ids per page, 100-10000 (default 100).",
"type": "integer",
"minimum": 100,
"maximum": 10000
},
"page": {
"description": "Page number from 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trumpia_get_subscription(subscription_id)
One subscription (contact): name, email, mobile and landline (with verified flags), list ids, created date and custom data. Contains personal data. GET /subscription/{subscription_id}.
Esquema de entrada
{
"type": "object",
"properties": {
"subscription_id": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Subscription id (from a list or search)."
}
},
"required": [
"subscription_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trumpia_search_subscriptions(search_type, search_data, list_id, row_size, page)
Find subscription ids by email, mobile number, landline, country code, created date, first name or last name; optionally within one list. search_data 'all' returns every subscription that has data of that type. Returns ids; use trumpia_get_subscription for details. GET /subscription/search.
Esquema de entrada
{
"type": "object",
"properties": {
"search_type": {
"type": "string",
"enum": [
"email",
"mobile",
"landline",
"country_code",
"created_date",
"first_name",
"last_name"
],
"description": "Which field to search."
},
"search_data": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The value to find, or 'all' (every subscription that has data of that type; email, mobile and landline only). For search_type created_date a range is required: 'YYYY-MM-DD hh:mm:ss~YYYY-MM-DD hh:mm:ss', e.g. '2026-03-01 00:00:00~2026-04-01 00:00:00'."
},
"list_id": {
"description": "Limit the search to this distribution list.",
"type": "string",
"pattern": "^\\d{1,20}$"
},
"row_size": {
"description": "Ids per page, 100-10000 (default 100).",
"type": "integer",
"minimum": 100,
"maximum": 10000
},
"page": {
"description": "Page number from 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"required": [
"search_type",
"search_data"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴trumpia_add_subscriptions(list_names, subscriptions)
WRITE: add contacts to one or more distribution lists (comma-separated list names that already exist). Each contact needs a mobile number, an email or a landline. Only add people who gave express consent to receive messages (TCPA, CAN-SPAM, CTIA rules apply); Trumpia may require a submitted API contract. Returns a request_id; check trumpia_get_request_report. PUT /subscription.
Esquema de entrada
{
"type": "object",
"properties": {
"list_names": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 30
},
"description": "Names of existing distribution lists to add the contacts to."
},
"subscriptions": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"first_name": {
"type": "string",
"maxLength": 100
},
"last_name": {
"type": "string",
"maxLength": 100
},
"email": {
"type": "string",
"maxLength": 200,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"mobile": {
"type": "object",
"properties": {
"number": {
"type": "string",
"pattern": "^\\d{4,20}$",
"description": "Mobile number, digits only (US: 10 digits)."
},
"country_code": {
"description": "Country code (default 1).",
"type": "string",
"pattern": "^\\d{1,4}$"
}
},
"required": [
"number"
]
},
"landline": {
"type": "object",
"properties": {
"number": {
"type": "string",
"pattern": "^\\d{4,20}$",
"description": "Landline number, digits only (10 digits)."
},
"country_code": {
"type": "string",
"pattern": "^\\d{1,4}$"
}
},
"required": [
"number"
]
},
"voice_device": {
"description": "Number to reach by voice (US, Canada, Guam, Puerto Rico).",
"type": "string",
"enum": [
"mobile",
"landline"
]
},
"customdata": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"customdata_id": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Custom data field id (from trumpia_list_custom_fields)."
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 4000,
"description": "The value; its format depends on the field type."
}
},
"required": [
"customdata_id",
"value"
]
}
}
}
},
"description": "1-100 contacts."
}
},
"required": [
"list_names",
"subscriptions"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴trumpia_update_subscription(subscription_id, list_names, first_name, last_name, email, ...)
WRITE: change a contact's name, email, mobile, landline, custom data or list membership. Only the fields you pass change. Returns a request_id. POST /subscription/{subscription_id}.
Esquema de entrada
{
"type": "object",
"properties": {
"subscription_id": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Subscription id."
},
"list_names": {
"description": "Existing distribution list names the contact should be added to.",
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 30
}
},
"first_name": {
"type": "string",
"maxLength": 100
},
"last_name": {
"type": "string",
"maxLength": 100
},
"email": {
"type": "string",
"maxLength": 200,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"mobile": {
"type": "object",
"properties": {
"number": {
"type": "string",
"pattern": "^\\d{4,20}$",
"description": "Mobile number, digits only (US: 10 digits)."
},
"country_code": {
"description": "Country code (default 1).",
"type": "string",
"pattern": "^\\d{1,4}$"
}
},
"required": [
"number"
]
},
"landline": {
"type": "object",
"properties": {
"number": {
"type": "string",
"pattern": "^\\d{4,20}$",
"description": "Landline number, digits only (10 digits)."
},
"country_code": {
"type": "string",
"pattern": "^\\d{1,4}$"
}
},
"required": [
"number"
]
},
"customdata": {
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"customdata_id": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Custom data field id (from trumpia_list_custom_fields)."
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 4000,
"description": "The value; its format depends on the field type."
}
},
"required": [
"customdata_id",
"value"
]
}
}
},
"required": [
"subscription_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trumpia_list_custom_fields
All custom data fields (id and name) that can be stored on subscriptions and used as mail-merge values. GET /customdata.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trumpia_get_custom_field(customdata_id)
One custom data field: type, options (allowed values, max length), whether required, and its mail-merge text. GET /customdata/{customdata_id}.
Esquema de entrada
{
"type": "object",
"properties": {
"customdata_id": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Custom data field id."
}
},
"required": [
"customdata_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trumpia_list_keywords
All mobile keywords with id, keyword and the short or long code. GET /keyword.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trumpia_get_keyword(keyword_id)
One mobile keyword in detail: auto-response message, code, alternative messages. GET /keyword/{keyword_id}.
Esquema de entrada
{
"type": "object",
"properties": {
"keyword_id": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Keyword id (from trumpia_list_keywords)."
}
},
"required": [
"keyword_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trumpia_list_org_names
Registered organization names as { org_names: [ { org_name_id, name, default } ] } (Trumpia returns a bare array; it is wrapped). The id can be set as org_name_id on messages. GET /orgname.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trumpia_list_email_senders
Registered email sender addresses (the From / Reply-To addresses allowed for email messages) as { senders: [ { sender_id, address, default } ] } (Trumpia returns a bare array; it is wrapped). GET /email/sender.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trumpia_get_message(message_id)
Delivery statistics of a message sent with trumpia_send_message: status (sent / scheduled / canceled), totals, sent and failed counts per channel and credits used. GET /message/{message_id}.
Esquema de entrada
{
"type": "object",
"properties": {
"message_id": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Message id returned by trumpia_send_message."
}
},
"required": [
"message_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trumpia_list_scheduled_messages(order, offset, limit)
Messages that are scheduled and not yet sent (id, description, scheduled time, recipient counts). Use offset and limit to page; total_count says how many exist. GET /message/scheduled.
Esquema de entrada
{
"type": "object",
"properties": {
"order": {
"description": "scheduled_at = oldest first (default), -scheduled_at = newest first.",
"type": "string",
"enum": [
"scheduled_at",
"-scheduled_at"
]
},
"offset": {
"description": "Messages to skip (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"description": "Messages to return, 1-1000 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 1000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴trumpia_send_message(description, recipient_type, recipient_ids, sms, email_subject, ...)
WRITE, SENDS REAL MESSAGES that spend credits and cannot be recalled once sent: send an SMS and/or an email to distribution lists or specific subscriptions, now or scheduled (a scheduled one can be cancelled with trumpia_cancel_scheduled_message). Subscribers must have opted in (TCPA, CAN-SPAM, CTIA). Confirm the recipients and text with the user first. Mail merge tokens: [$FirstName], [$LastName], [$FullName], [$CustomData-NAME]. Returns request_id and message_id. PUT /message.
Esquema de entrada
{
"type": "object",
"properties": {
"description": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Internal description of the message."
},
"recipient_type": {
"type": "string",
"enum": [
"list",
"subscription"
],
"description": "Whether recipient_ids are distribution list ids or subscription ids."
},
"recipient_ids": {
"minItems": 1,
"maxItems": 300,
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Numeric id, as returned by Trumpia."
},
"description": "1-300 ids (at most 100 lists or 300 subscriptions)."
},
"sms": {
"description": "SMS text (140 bytes per segment in US/Canada, up to 980 bytes concatenated).",
"type": "string",
"minLength": 1,
"maxLength": 980
},
"email_subject": {
"description": "Email subject (needs email_body).",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"email_body": {
"description": "Email body (needs email_subject).",
"type": "string",
"minLength": 1,
"maxLength": 100000
},
"email_reply_to": {
"description": "Reply-to address (a registered sender).",
"type": "string",
"maxLength": 100,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"org_name_id": {
"description": "Organization name id to include in the mobile message (default organization name if omitted).",
"type": "string",
"pattern": "^\\d{1,20}$"
},
"send_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$",
"description": "Schedule time as YYYY-MM-DD hh:mm:ss (24-hour clock; the account's time zone). Omit to send immediately."
},
"mail_merge_first_name": {
"description": "Replacement when a contact has no first name.",
"type": "string",
"maxLength": 30
},
"mail_merge_last_name": {
"description": "Replacement when a contact has no last name.",
"type": "string",
"maxLength": 30
},
"mail_merge_full_name": {
"description": "Replacement when a contact has no full name.",
"type": "string",
"maxLength": 61
}
},
"required": [
"description",
"recipient_type",
"recipient_ids"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴trumpia_send_sms(mobile_number, country_code, message, sender, org_name_id)
WRITE, SENDS A REAL TEXT that spends a credit and cannot be recalled: one SMS to one mobile number without adding the contact first. The recipient must have consented; Trumpia may require API Certification for contacts that have not opted in. Confirm number and text with the user first. Returns request_id and sms_id. PUT /sms.
Esquema de entrada
{
"type": "object",
"properties": {
"mobile_number": {
"type": "string",
"pattern": "^\\+?\\d{4,20}$",
"description": "US: the 10-digit number without leading 0 or 1. With country_code 0 the number must be E.164 with a leading +, e.g. +17774443210."
},
"country_code": {
"description": "Country code (default 1). 0 = infer it from the number, which then must start with +.",
"type": "string",
"pattern": "^\\d{1,4}$"
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 980,
"description": "The text (the SMS header and footer count toward the length)."
},
"sender": {
"description": "Short/long code or registered landline to send from (default: the account's code).",
"type": "string",
"pattern": "^\\d{4,20}$"
},
"org_name_id": {
"description": "Organization name id (default organization name if omitted).",
"type": "string",
"pattern": "^\\d{1,20}$"
}
},
"required": [
"mobile_number",
"message"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴trumpia_cancel_scheduled_message(message_id)
WRITE: cancel a message that is scheduled and has not been sent yet (see trumpia_list_scheduled_messages). Does nothing for a message already sent. DELETE /message/scheduled/{message_id}.
Esquema de entrada
{
"type": "object",
"properties": {
"message_id": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "Scheduled message id."
}
},
"required": [
"message_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia