Model Context Protocol server

Twilio RCS, wired into your AI assistant

A hosted MCP server that lets a connected assistant send Rich Communication Services messages and SMS through Twilio. Point any MCP-capable client at the connection URL below and bring your own Twilio account.

No server-wide credentials set - clients must supply their own.
01

Connection URL

Add this as a remote MCP server (SSE transport) in your client. Replace the host with your live deployment URL.

SSE endpoint
https://twilio-rcs.<username>.poke.site/sse

The server opens an event stream at /sse and accepts JSON-RPC messages at /messages. Most clients only need the /sse URL.

02

Authentication

Each connection resolves its own Twilio credentials, so one deployment can serve many people. Resolution order is header, then query, then the server environment.

Request headers

Preferred

Kept out of URLs, browser history, and most access logs. Use either the bearer form or the two custom headers.

Authorization header
Authorization: Bearer <AccountSID>:<AuthToken>
or custom headers
X-Twilio-Account-Sid: ACxxxxxxxx… X-Twilio-Auth-Token: your_auth_token

Query parameters

Use with care

Supported for clients that can only customize the URL. The token then lives in the connection URL.

URL with credentials
https://twilio-rcs.<username>.poke.site/sse?accountSid=ACxxxx&authToken=xxxx

Tokens in a URL can end up in server logs, proxy logs, and client history. Prefer headers when your client supports them, and rotate the token if a URL leaks.

Server environment

Self-host only

This deployment does not ship static credentials - every connection brings its own. If you self-host, you can instead set TWILIO_ACCOUNT_SID and TWILIO_AUTH_TOKEN on the server for a single-tenant setup; the server falls back to them when no header or query credentials are present.

03

Tools

4 tools are exposed over the protocol. RCS sends fall back to SMS/MMS automatically where RCS is unavailable.

send_rcs_messageto, body, from?, mediaUrl?

Send a Rich Communication Services (RCS) message via Twilio. RCS delivers branded, rich text (and optional media) to supported devices and automatically falls back to SMS/MMS when RCS is unavailable. Provide an RCS-enabled sender as `from` (an 'rcs:' agent address or a Messaging Service SID beginning with 'MG').

send_smsto, body, from?, mediaUrl?

Send a plain SMS/MMS text message via Twilio. Use this when you specifically want SMS rather than RCS.

list_messageslimit?, to?

List recent messages sent or received on the connected Twilio account, newest first. Useful for checking delivery status.

check_twilio_credentialsno args

Verify that the Twilio credentials supplied for this connection are present and authenticate successfully. Returns the masked Account SID and friendly account name on success. Use this first if sends are failing.

04

Sending messages

To send, the account needs a sender. Pass from on each call, or set a default on the server with TWILIO_MESSAGING_SERVICE_SID (an MG… SID, recommended for RCS) or TWILIO_FROM (a phone number).

Example tool call (RCS)
send_rcs_message to: "+14155552671" body: "Your order has shipped." from: "MGxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Run check_twilio_credentials first if a send fails - it confirms the connection authenticates against your account.