Trumpia MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.0.0 · published by io.usefulapi
Read Trumpia lists, subscribers, keywords and reports; add contacts and send SMS or email campaigns.
22 tools: 7 can delete or cancel things and 15 only read.
Scanned Oct 21, 2026
- Deletes or cancels7Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads15Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http trumpia https://trumpia.usefulapi.io/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
22 tools
Deletes or cancels 7Claude Code: deny
trumpia_add_subscriptionsWRITE: add contacts to one or more distribution lists (comma-separated list names that already exist).No findings
Why it is in this group
- The name "trumpia_add_subscriptions" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Add subscriptions
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
trumpia_cancel_scheduled_messageWRITE: cancel a message that is scheduled and has not been sent yet (see trumpia_list_scheduled_messages).No findings
Why it is in this group
- The name "trumpia_cancel_scheduled_message" says "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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}.
Annotations the server declares
- title: Cancel scheduled message
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
trumpia_create_listWRITE: create a distribution list.No findings
Why it is in this group
- The name "trumpia_create_list" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Create distribution list
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
trumpia_send_messageWRITE, 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 sch…No findings
Why it is in this group
- The name "trumpia_send_message" says "send": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Send message
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
trumpia_send_smsWRITE, SENDS A REAL TEXT that spends a credit and cannot be recalled: one SMS to one mobile number without adding the contact first.No findings
Why it is in this group
- The name "trumpia_send_sms" says "send": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Send direct SMS
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
trumpia_update_listWRITE: change a distribution list's name, display name, frequency or description.No findings
Why it is in this group
- The name "trumpia_update_list" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: change a distribution list's name, display name, frequency or description. Only the fields you pass change. POST /list/{list_id}.
Annotations the server declares
- title: Update distribution list
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
trumpia_update_subscriptionWRITE: change a contact's name, email, mobile, landline, custom data or list membership.No findings
Why it is in this group
- The name "trumpia_update_subscription" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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}.
Annotations the server declares
- title: Update subscription
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
Only reads 15Claude Code: allow
trumpia_get_credit_balanceThe account's remaining domestic and international text credits.No findings
Why it is in this group
- The name "trumpia_get_credit_balance" says "get": a word for reading.
Description, as the server wrote it The account's remaining domestic and international text credits. GET /balance/credit.
Annotations the server declares
- title: Get credit balance
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
trumpia_get_custom_fieldOne custom data field: type, options (allowed values, max length), whether required, and its mail-merge text.No findings
Why it is in this group
- The name "trumpia_get_custom_field" says "get": a word for reading.
Description, as the server wrote it One custom data field: type, options (allowed values, max length), whether required, and its mail-merge text. GET /customdata/{customdata_id}.
Annotations the server declares
- title: Get custom data field
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
trumpia_get_keywordOne mobile keyword in detail: auto-response message, code, alternative messages.No findings
Why it is in this group
- The name "trumpia_get_keyword" says "get": a word for reading.
Description, as the server wrote it One mobile keyword in detail: auto-response message, code, alternative messages. GET /keyword/{keyword_id}.
Annotations the server declares
- title: Get keyword
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
trumpia_get_listOne distribution list: display name, description, message frequency and subscription / mobile / email counts.No findings
Why it is in this group
- The name "trumpia_get_list" says "get": a word for reading.
Description, as the server wrote it One distribution list: display name, description, message frequency and subscription / mobile / email counts. GET /list/{list_id}.
Annotations the server declares
- title: Get distribution list
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
trumpia_get_messageDelivery statistics of a message sent with trumpia_send_message: status (sent / scheduled / canceled), totals, sent and failed counts per channel and credits used.No findings
Why it is in this group
- The name "trumpia_get_message" says "get": a word for reading.
Description, as the server wrote it 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}.
Annotations the server declares
- title: Get message statistics
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
trumpia_get_request_reportThe outcome of an earlier write request (list/contact/message changes are processed asynchronously).No findings
Why it is in this group
- The name "trumpia_get_request_report" says "get": a word for reading.
Description, as the server wrote it 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}.
Annotations the server declares
- title: Get request status report
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
trumpia_get_subscriptionOne subscription (contact): name, email, mobile and landline (with verified flags), list ids, created date and custom data.No findings
Why it is in this group
- The name "trumpia_get_subscription" says "get": a word for reading.
Description, as the server wrote it 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}.
Annotations the server declares
- title: Get subscription
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
trumpia_list_custom_fieldsAll custom data fields (id and name) that can be stored on subscriptions and used as mail-merge values.No findings
Why it is in this group
- The name "trumpia_list_custom_fields" says "list": a word for reading.
Description, as the server wrote it All custom data fields (id and name) that can be stored on subscriptions and used as mail-merge values. GET /customdata.
Annotations the server declares
- title: List custom data fields
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
trumpia_list_email_sendersRegistered email sender addresses (the From / Reply-To addresses allowed for email messages) as { senders: [ { sender_id, address, default } ] } (Trumpia returns a bare array; it i…No findings
Why it is in this group
- The name "trumpia_list_email_senders" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List email sender addresses
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
trumpia_list_keywordsAll mobile keywords with id, keyword and the short or long code.No findings
Why it is in this group
- The name "trumpia_list_keywords" says "list": a word for reading.
Description, as the server wrote it All mobile keywords with id, keyword and the short or long code. GET /keyword.
Annotations the server declares
- title: List keywords
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
trumpia_list_listsAll distribution lists (id and name).No findings
Why it is in this group
- The name "trumpia_list_lists" says "list": a word for reading.
Description, as the server wrote it All distribution lists (id and name). Lists group subscriptions for targeted messages. GET /list.
Annotations the server declares
- title: List distribution lists
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
trumpia_list_org_namesRegistered organization names as { org_names: [ { org_name_id, name, default } ] } (Trumpia returns a bare array; it is wrapped).No findings
Why it is in this group
- The name "trumpia_list_org_names" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List organization names
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
trumpia_list_scheduled_messagesMessages that are scheduled and not yet sent (id, description, scheduled time, recipient counts).No findings
Why it is in this group
- The name "trumpia_list_scheduled_messages" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List scheduled messages
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
trumpia_list_subscriptionsSubscription (contact) ids, newest first.No findings
Why it is in this group
- The name "trumpia_list_subscriptions" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List subscription ids
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
trumpia_search_subscriptionsFind subscription ids by email, mobile number, landline, country code, created date, first name or last name; optionally within one list.No findings
Why it is in this group
- The name "trumpia_search_subscriptions" says "search": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Search subscriptions
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http trumpia https://trumpia.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__trumpia__trumpia_get_credit_balance",
"mcp__trumpia__trumpia_get_request_report",
"mcp__trumpia__trumpia_list_lists",
"mcp__trumpia__trumpia_get_list",
"mcp__trumpia__trumpia_list_subscriptions",
"mcp__trumpia__trumpia_get_subscription",
"mcp__trumpia__trumpia_search_subscriptions",
"mcp__trumpia__trumpia_list_custom_fields",
"mcp__trumpia__trumpia_get_custom_field",
"mcp__trumpia__trumpia_list_keywords",
"mcp__trumpia__trumpia_get_keyword",
"mcp__trumpia__trumpia_list_org_names",
"mcp__trumpia__trumpia_list_email_senders",
"mcp__trumpia__trumpia_get_message",
"mcp__trumpia__trumpia_list_scheduled_messages"
],
"ask": [],
"deny": [
"mcp__trumpia__trumpia_create_list",
"mcp__trumpia__trumpia_update_list",
"mcp__trumpia__trumpia_add_subscriptions",
"mcp__trumpia__trumpia_update_subscription",
"mcp__trumpia__trumpia_send_message",
"mcp__trumpia__trumpia_send_sms",
"mcp__trumpia__trumpia_cancel_scheduled_message"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as trumpia. Review it before you use it.