Live at mcp.sent.dm

Sent for AI agents.

The Model Context Protocol server for Sent. Core messaging workflows — send, lookup, contacts, templates, account state, and analytics — are reachable from any MCP-capable agent. Same identity, same audit trail, same compliance gates.

26 tools 3 channels — SMS · WhatsApp · RCS OAuth 2.1 + PKCE · DCR

Install

Paste one of these into your MCP client. The first call opens a Sent consent page where you select an organization and sender profile. Revoke the connection at any time from the dashboard.

claude mcp add --transport http sent https://mcp.sent.dm/mcp

Claude Desktop and Cursor read from ~/Library/Application Support/Claude/claude_desktop_config.json and ~/.cursor/mcp.json respectively. VS Code reads from .vscode/mcp.json in the workspace.

Tool catalog

Each tool maps to a Sent REST capability with the same input shape and the same customer-scoped compliance and consent controls. Drift between MCP and REST is a bug.

Messaging

  • messages.sendsmart routing, SMS, WhatsApp, or RCS; async acceptance
  • messages.getcustomer-safe message lookup by id
  • messages.activities.listlifecycle timeline (queued → delivered)

Contacts

  • contacts.listpaginated, phone search + default-channel filter
  • contacts.getsingle contact by id
  • contacts.create_manybulk-add by E.164 number + capability discovery
  • contacts.deletesoft-delete account association
  • contacts.message_summaryaggregates + per-channel success

Templates

  • templates.listowned, inherited, and shared; status / category filters
  • templates.get
  • templates.get_by_name
  • templates.deleteowned templates only; hard or soft delete by references

Lookup & analytics

  • numbers.lookuppaid external recipient-network lookup; daily quota
  • dashboard.messages_sentdelivered/read SMS + WhatsApp counts by time bucket
  • dashboard.deliverabilityall-time outbound sent/delivered/read percentage
  • dashboard.contactstotal contact count

Sender profiles

  • sender_profiles.createclaims a sender; idempotency key required; document markets refused with the field names
  • sender_profiles.listprofiles the organization owns, with channel readiness
  • sender_profiles.getone profile by id; found=false when it is not yours
  • sender_profiles.updatename, short name, description; omitted fields unchanged
  • sender_profiles.deletedestructive: can disconnect WhatsApp, release numbers, disable routes
  • compliance.requirementswhat a market demands before a sender can be provisioned there
  • compliance.setup_planthe sender_profiles.create call for a market, prefilled; says when documents make it dashboard-only

Account

  • account.getid, type, name, parent org, created
  • balance.getread-only; respects profile billing inheritance; unfunded accounts return zero
  • onboarding.statuslatest conversion-flow status

How authentication works

  1. Your client registers itself with Sent over RFC 7591 Dynamic Client Registration.
  2. It opens an OAuth 2.1 authorization request with PKCE (S256).
  3. Sent redirects you to app.sent.dm/mcp-authorization to select an organization or sender profile and approve access.
  4. Your client receives an access token scoped to the selected Sent account context.

Revoke a connection at any time from the Sent dashboard.