Skip to content

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.

Deletes · 7

22 tools: 7 can delete or cancel things and 15 only read.

Scanned Oct 21, 2026

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/mcp

Tools

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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.