Sent provides programmable customer messaging across SMS, WhatsApp, and RCS. Send personalized or template-based messages to individual or bulk recipients, schedule deliveries, manage contacts and sender profiles, check phone number validity, monitor delivery statuses, and track messaging performance and compliance requirements.
Try asking
Encrypted at rest, isolated from the model
Resolved from an AES-256-GCM vault at the moment of the call and attached to the request — the model never sees the secrets.
Returns the account associated with the calling API key (organization, user, or profile). Includes id, name, email, type, parent organization id, and creation timestamp.
Returns the calling account's own balance row and its effective sending balance. For sender profiles, effective balance follows the billing configuration: profile-only, parent-organization-only, or the combined profile and organization balances. An account with no balance row of its own reports balance 0 with initialized false, which is the normal state for a sender profile that bills to its organization. This tool cannot credit or debit funds.
Returns what a market requires before a sender can be provisioned there: the fields to supply, which are mandatory, and the names of any documents that must be attached. With hasRegime true, an empty requirements list means the market demands nothing. With hasRegime false no requirements are published here, which is not proof that none apply; notes then names the obligation the list leaves out, such as toll-free verification for US toll-free numbers.
Returns the exact call that sets a market up, with every compliance key the market wants already present and blank. Use this after compliance.requirements when you want the call rather than the table. The call is sender_profiles.create, which creates a new profile in that market; adding a market to a profile that already exists is done in the Sent dashboard or through the REST API. When the market requires uploaded documents, or Sent cannot provision that number type through this server, canCompleteHere is false and blocker says where to finish rather than handing you a request that would be refused. call is null when this connection creates Sender Profiles in the Sent dashboard.
Creates or restores associations between the calling customer and up to 10 contacts. Each phone number is normalized and resolved through Sent's contact index, which may perform external capability lookups for a new number. Every submitted number is returned in exactly one list: created, alreadyExisting (already a contact for this customer, skipped rather than duplicated), or failed (could not be resolved, nothing was added). An empty created list means nothing was added — do not report a submitted number as created.
Soft-deletes only the calling customer's association with a contact. The shared contact and its channel-capability records remain in Sent. Returns false when the association is not found.
Looks up a single contact by id. Structured output returns found plus the contact item; found is false when no contact with that id belongs to the caller.
Lists the calling customer's contacts with pagination. Search matches the contact's national-format phone number; the optional channel filter matches the stored default channel.
Returns the per-contact message summary: total/by-channel counts, first/last seen, and per-channel success rates. Throws when the contact does not belong to the caller.
Returns total contact count for the calling customer.
Returns the calling customer's all-time outbound deliverability percentage, rounded to two decimals. The numerator is messages in SENT, DELIVERED, or READ status; the denominator is all outbound messages except policy-filtered or account-blocked messages.
Returns time-bucketed SMS and WhatsApp counts for the calling customer's outbound messages whose status is DELIVERED or READ. Presets cover 24 hours, 7 days, 30 days, or 3 months; a complete from/to pair overrides the preset, supports at most 365 days, and determines 15-minute, hourly, or daily buckets.
Sends feedback about Sent's tools to the Sent team: a missing capability, a wrong, confusing, or unexpected result, an unresolved error, or praise. Intended for feedback the user has asked to send and has approved as written. The message is stored and read by Sent staff; it does not open a support ticket and returns no reply. A useful message says what was attempted and what happened. Phone numbers and email addresses are redacted before the message is stored; message bodies and other personal data are not redacted and do not belong in it.
List the lifecycle activity timeline for a message (QUEUED, PROCESSED, SENT, DELIVERED, READ, FAILED, ...). Throws if the message does not belong to the caller.
Returns a customer-safe view of one message by id, including recipient and sender, template summary, requested and resolved channels, schedule, rendered content, segment count, status, direction, and timestamps. Structured output returns found plus the message item; found is false when the message is not visible to the caller.
Accepts messages for asynchronous delivery through Sent smart routing ("sent"), SMS, WhatsApp, or RCS. Sends are template-only: there is no free-form text argument, and template must reference a template that already exists on this account. Call templates.list first to get the ids, names, and variables this account can send. Multiple recipients fan out into separate messages, and multiple explicit channels broadcast on each channel. Recipients who have opted out are refused before anything is queued. Acceptance does not mean delivery; returns per-recipient message IDs to monitor with messages.activities.list.
Performs an external, paid, quota-consuming lookup for a phone number. Returns normalized validity plus the recipient network's carrier, line type, country, mobile network codes, VoIP, and porting details. Carrier means the recipient's network, not Sent's delivery provider, and is not a channel or pricing recommendation.
Returns the calling customer's most recent onboarding/conversion-flow status (e.g. SIGNED_UP, KYC_COMPLETED, ONBOARDED). Structured output returns found plus the status item; found is false when the account has no recorded conversion flow, which is the normal state for an account created outside the signup flow.
Creates a sender profile under the calling organization. Provisioning a dedicated sender claims a phone number and may incur registration fees, so idempotencyKey is required: a retry without one would create a second profile. Markets that require uploaded documents cannot be completed here — the call is refused before anything is written, naming the fields to attach through the dashboard.
Deletes a sender profile owned by the calling organization. This is destructive and affects live messaging: it can disconnect WhatsApp, release the profile's phone numbers, and disable its routes. Returns deleted=false when no such profile belongs to the caller. Refused, with nothing torn down, while the profile's WhatsApp Business Account still carries one of the numbers the delete would release — only the customer can remove it, by deregistering and deleting it in WhatsApp Manager — and refused the same way when that account cannot be read at all.
Looks up one sender profile owned by the calling organization. Structured output returns found plus the profile; found is false when no profile with that id belongs to the caller.
Lists the sender profiles owned by the calling organization, with channel readiness for each. Profile API keys own no profiles and receive an empty list.
Updates a sender profile's name, short name, or description. Omitted fields are left unchanged. Sending description as null clears it; name and short name cannot be cleared.
Deletes a template the calling account owns from Sent without deleting it from Meta. LOB templates and required OPT_IN, OPT_OUT, or HELP auto-reply templates cannot be deleted. Templates referenced by messages are soft-deleted; unreferenced templates are permanently deleted.
Returns one template owned by the calling account by id. Structured output returns found plus the template item; found is false when the account owns no template with that id.
Returns the newest template owned by the calling account with the given display name. Structured output returns found plus the template item; found is false when the account owns no template with that name.
Lists the templates the calling account owns, with pagination and optional name, status, and category filters. Accounts are isolated: an organization's list never includes its sender profiles' templates, and a profile's list never includes the organization's.
One endpoint, the same key, whichever client you use.
~/Library/Application Support/Claude/claude_desktop_config.json (Mac) · %APPDATA%\Claude\claude_desktop_config.json (Windows)
Replace API_KEY with your own key.
Already have an "mcpServers" section in your config? Just add the server entry inside it.
Discovery, routing, credentials, tool scoping and execution logs all happen at the gateway→connections stay ACTIVE with no work from you
Sent MCP runs through a gateway that holds the credentials, scopes the access and records every call.
Managed auth, hosted MCP servers, and every Sent MCP tool your agent needs.
Free to start.
Scan the next five weekdays, find your open blocks of 90 minutes or more, and book recurring deep work time.