Relay MCP server
Remote Model Context Protocol server for Relay, a business phone and SMS app for teams, built in Montreal.
It lets Claude, or any MCP client, work with your team's phone: list calls and texts, read call transcripts, search and update contacts, send an SMS from the team number, and draft call-routing flows.
| Endpoint | https://api.yesrelay.com/api/mcp |
| Transport | Streamable HTTP (spec 2025-06-18), stateless |
| Authentication | Authorization: Bearer <Relay API key> |
| Tools | 16 |
| Plans | Every plan, free included |
| Documentation | https://yesrelay.com/en/api-docs |
This repository holds no server code: the server is hosted by Relay. Nothing to install on the server side.
Get an API key
- Create a free account at https://app.yesrelay.com.
- In the app, open Administration, then Integrations & API, and create a key.
- The key starts with
rk_live_and is shown once. Keep it in a secrets manager.
Revoking the key in the app cuts MCP and REST access at the same instant.
Connect a client
Claude Code
claude mcp add --transport http relay https://api.yesrelay.com/api/mcp \
--header "Authorization: Bearer rk_live_..."
Claude Desktop
claude_desktop_config.json, through mcp-remote:
{
"mcpServers": {
"relay": {
"command": "npx",
"args": ["mcp-remote", "https://api.yesrelay.com/api/mcp",
"--header", "Authorization:${AUTH}"],
"env": { "AUTH": "Bearer rk_live_..." }
}
}
}
Any other client
Point it at https://api.yesrelay.com/api/mcp with the Authorization header above.
Tools
Calls and messages
| Tool | What it does |
|---|---|
relay_list_numbers | Lists the organization's teams and their phone numbers |
relay_list_calls | Recent calls of a team, newest first |
relay_get_transcript | Transcript of a call, with the AI summary and action items |
relay_list_messages | Recent texts of a team, newest first, filterable by contact |
relay_send_sms | Sends a text from the team number. Real, billed and irreversible |
Contacts and team
| Tool | What it does |
|---|---|
relay_search_contacts | Searches a team's address book by first name, last name or company |
relay_create_contact | Adds a contact to the team's address book |
relay_update_contact | Replaces the fields of an existing contact |
relay_list_members | People in the organization and their identifiers |
Flow (call routing, Business and Scale plans)
| Tool | What it does |
|---|---|
relay_list_flows | Lists the organization's call flows |
relay_get_flow | Reads the live graph and the draft of a flow |
relay_flow_schema | Block types, expected fields and routing-engine rules |
relay_create_flow | Creates a number's flow from a template |
relay_save_flow_draft | Replaces the draft. Changes nothing callers hear |
relay_check_flow | Tests a graph without writing anything |
relay_discard_flow_draft | Throws away the draft and returns to what is live |
No tool publishes a flow. An agent can draft and check a call path; a person puts it live from the app.
Safeguards
A text sent through MCP goes through the same checks as a text sent from the app:
| Refusal code | When |
|---|---|
recipient_opted_out | The recipient replied STOP (or ARRET, UNSUBSCRIBE) to this team |
daily_limit_reached | The team's daily cap is reached (the customer's own limit, or the automatic one) |
workspace_budget_reached | The team's spending cap is reached |
sending_suspended | Outbound sending is paused by the circuit breaker; receiving continues |
What you can do also follows your plan: sending texts needs a paid plan, and the Flow tools need Business or Scale.
Limits
| Plan | Requests per minute per key | Keys |
|---|---|---|
| Free | 30 | 2 |
| Paid | 120 | 5 |
Each message in a JSON-RPC batch counts as one request.
Troubleshooting
The client shows a read error, or curl fails with error 56 ("chunk hex-length"). Some
antivirus software that inspects HTTPS traffic corrupts MCP responses; we have seen it with
Avast. The server answered correctly. Exclude api.yesrelay.com from your antivirus HTTPS
scanning, then try again.
401 Invalid API key. The key is missing, revoked or expired. Create a new one in the app.
Also available
- REST API:
https://api.yesrelay.com/api/v1, reference at https://api.yesrelay.com/docs - Signed webhooks (HMAC SHA-256) for call and SMS events