Trumpia MCP by usefulapi
REMOTE · TRUMPIA.USEFULAPI.IO
Read Trumpia lists, subscribers, keywords and reports; add contacts and send SMS or email campaigns.
Available components
Last scanned (5 hours ago)
Scores higher than 47% of remote servers
Reachable. Last reached 25 Oct 2026.
Category Marketing and SEO
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security78
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven. View diagnostics → Unverified
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability0
- Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability83
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2398 tokens (~109/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management17
- Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage94
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 81% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 24 Oct 26 +1
- The server rewrote its instructions, which are the text every model session reads security
- Server version: 1.4.0 → 1.5.0 functional
- Server version: 1.3.0 → 1.4.0 functional
- Server version: 1.1.0 → 1.3.0 functional
- 23 Oct 26 0
- Server version: 1.0.1 → 1.1.0 functional
- 22 Oct 26 +1
- Server version: 1.0.0 → 1.0.1 functional
- 21 Oct 26 0
- Stability: unverified → 0.03 ▲ functional
- 20 Oct 26 62
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 25 Oct 2026 · Probed https://trumpia.usefulapi.io/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=usefulapi.io | CN=WE1,O=Google Trust Services,C=US | 13 Sept 2026 | 12 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | d9be3287b0fde9630e825ba1f79bff3f |
| SANs: usefulapi.io, *.usefulapi.io | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of trumpia.usefulapi.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 38690, 57355 | 8, 8 | Verified |
| usefulapi.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 302 |
WWW-Authenticate challenge Bearer realm="OAuth", resource_metadata="https://trumpia.usefulapi.io/.well-known/oauth-protected-resource/mcp"
Bearer realm="OAuth", resource_metadata="https://trumpia.usefulapi.io/.well-known/oauth-protected-resource/mcp" Protected resource metadata
| Document | https://trumpia.usefulapi.io/.well-known/oauth-protected-resource/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://trumpia.usefulapi.io/mcp |
| Authorisation server | https://trumpia.usefulapi.io |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://trumpia.usefulapi.io/mcp | Redirected | 302 | https://usefulapi.io/trumpia/ |
| http (plaintext) | http://trumpia.usefulapi.io/mcp | Inconclusive | 302 | http://trumpia.usefulapi.io/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
trumpia_add_subscriptions Add subscriptions ~122
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.
| Name | Type | Req | Description |
|---|---|---|---|
| list_names | array | yes | Names of existing distribution lists to add the contacts to. |
| subscriptions | array | yes | 1-100 contacts. |
No output schema declared.
No examples provided.
trumpia_cancel_scheduled_message Cancel scheduled message ~63
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| message_id | string | yes | Scheduled message id. |
No output schema declared.
No examples provided.
trumpia_create_list Create distribution list ~139
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.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | yes | What the list sends, e.g. 'promo alerts' (max 20 characters). |
| display_name | string | yes | Name subscribers see when they sign up (max 50 characters). |
| frequency | integer | yes | Messages per month subscribers will receive (disclosure required by mobile regulations). |
| list_name | string | yes | List name (no spaces or special characters), e.g. GeneralList. |
No output schema declared.
No examples provided.
trumpia_get_credit_balance Get credit balance ~27
The account's remaining domestic and international text credits. GET /balance/credit.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
trumpia_get_custom_field Get custom data field ~58
One custom data field: type, options (allowed values, max length), whether required, and its mail-merge text. GET /customdata/{customdata_id}.
| Name | Type | Req | Description |
|---|---|---|---|
| customdata_id | string | yes | Custom data field id. |
No output schema declared.
No examples provided.
trumpia_get_keyword Get keyword ~48
One mobile keyword in detail: auto-response message, code, alternative messages. GET /keyword/{keyword_id}.
| Name | Type | Req | Description |
|---|---|---|---|
| keyword_id | string | yes | Keyword id (from trumpia_list_keywords). |
No output schema declared.
No examples provided.
trumpia_get_list Get distribution list ~53
One distribution list: display name, description, message frequency and subscription / mobile / email counts. GET /list/{list_id}.
| Name | Type | Req | Description |
|---|---|---|---|
| list_id | string | yes | Distribution list id (from trumpia_list_lists). |
No output schema declared.
No examples provided.
trumpia_get_message Get message statistics ~65
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| message_id | string | yes | Message id returned by trumpia_send_message. |
No output schema declared.
No examples provided.
trumpia_get_request_report Get request status report ~81
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| request_id | string | yes | The request_id from a write reply. |
No output schema declared.
No examples provided.
trumpia_get_subscription Get subscription ~64
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| subscription_id | string | yes | Subscription id (from a list or search). |
No output schema declared.
No examples provided.
trumpia_list_custom_fields List custom data fields ~39
All custom data fields (id and name) that can be stored on subscriptions and used as mail-merge values. GET /customdata.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
trumpia_list_email_senders List email sender addresses ~62
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
trumpia_list_keywords List keywords ~28
All mobile keywords with id, keyword and the short or long code. GET /keyword.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
trumpia_list_lists List distribution lists ~29
All distribution lists (id and name). Lists group subscriptions for targeted messages. GET /list.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
trumpia_list_org_names List organization names ~60
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
trumpia_list_scheduled_messages List scheduled messages ~106
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Messages to return, 1-1000 (default 50). |
| offset | integer | – | Messages to skip (default 0). |
| order | string | – | scheduled_at = oldest first (default), -scheduled_at = newest first. |
No output schema declared.
No examples provided.
trumpia_list_subscriptions List subscription ids ~95
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.
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | – | Page number from 1 (default 1). |
| row_size | integer | – | Ids per page, 100-10000 (default 100). |
No output schema declared.
No examples provided.
trumpia_search_subscriptions Search subscriptions ~225
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.
| Name | Type | Req | Description |
|---|---|---|---|
| list_id | string | – | Limit the search to this distribution list. |
| page | integer | – | Page number from 1 (default 1). |
| row_size | integer | – | Ids per page, 100-10000 (default 100). |
| search_data | string | yes | 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:s… |
| search_type | string | yes | Which field to search. |
No output schema declared.
No examples provided.
trumpia_send_message Send message ~352
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.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | yes | Internal description of the message. |
| email_body | string | – | Email body (needs email_subject). |
| email_reply_to | string | – | Reply-to address (a registered sender). |
| email_subject | string | – | Email subject (needs email_body). |
| mail_merge_first_name | string | – | Replacement when a contact has no first name. |
| mail_merge_full_name | string | – | Replacement when a contact has no full name. |
| mail_merge_last_name | string | – | Replacement when a contact has no last name. |
| org_name_id | string | – | Organization name id to include in the mobile message (default organization name if omitted). |
| recipient_ids | array | yes | 1-300 ids (at most 100 lists or 300 subscriptions). |
| recipient_type | string | yes | Whether recipient_ids are distribution list ids or subscription ids. |
| send_date | string | – | Schedule time as YYYY-MM-DD hh:mm:ss (24-hour clock; the account's time zone). Omit to send immediately. |
| sms | string | – | SMS text (140 bytes per segment in US/Canada, up to 980 bytes concatenated). |
No output schema declared.
No examples provided.
trumpia_send_sms Send direct SMS ~219
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.
| Name | Type | Req | Description |
|---|---|---|---|
| country_code | string | – | Country code (default 1). 0 = infer it from the number, which then must start with +. |
| message | string | yes | The text (the SMS header and footer count toward the length). |
| mobile_number | string | yes | 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. |
| org_name_id | string | – | Organization name id (default organization name if omitted). |
| sender | string | – | Short/long code or registered landline to send from (default: the account's code). |
No output schema declared.
No examples provided.
trumpia_update_list Update distribution list ~81
WRITE: change a distribution list's name, display name, frequency or description. Only the fields you pass change. POST /list/{list_id}.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | – |
| display_name | string | – | – |
| frequency | integer | – | – |
| list_id | string | yes | Distribution list id. |
| list_name | string | – | – |
No output schema declared.
No examples provided.
trumpia_update_subscription Update subscription ~124
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}.
| Name | Type | Req | Description |
|---|---|---|---|
| customdata | array | – | – |
| string | – | – | |
| first_name | string | – | – |
| landline | object | – | – |
| last_name | string | – | – |
| list_names | array | – | Existing distribution list names the contact should be added to. |
| mobile | object | – | – |
| subscription_id | string | yes | Subscription id. |
No output schema declared.
No examples provided.
How do I install the Trumpia MCP by usefulapi server?
Trumpia MCP by usefulapi is a hosted endpoint at https://trumpia.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · trumpia.usefulapi.io
claude mcp add --transport http io-usefulapi-trumpia 'https://trumpia.usefulapi.io/mcp'
What is the Trumpia MCP by usefulapi server?
Trumpia MCP by usefulapi is listed in the public MCP registry as io.usefulapi/trumpia. Read Trumpia lists, subscribers, keywords and reports; add contacts and send SMS or email campaigns. This page covers its hosted endpoint (https://trumpia.usefulapi.io/mcp).
Is the Trumpia MCP by usefulapi server safe to use?
Trumpia MCP by usefulapi scores 64 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Trumpia MCP by usefulapi server expose?
Trumpia MCP by usefulapi exposes 22 tools: trumpia_get_credit_balance, trumpia_get_request_report, trumpia_list_lists, trumpia_get_list, trumpia_create_list, and 17 more. Their descriptions and schemas cost roughly 2,140 tokens of context every time the server is loaded.
Does the Trumpia MCP by usefulapi server require authentication?
Yes. Trumpia MCP by usefulapi asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the Trumpia MCP by usefulapi server still maintained?
Trumpia MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 25 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.