Sonny MCP
BetaGive AI tools a safe way to work in Sonny
Model Context Protocol is an open standard that lets compatible assistants discover and use Sonny actions with clear, machine-readable inputs. Claude and Cowork can connect with OAuth 2.1 and PKCE.
Remote MCP configuration
JSON{
"mcpServers": {
"sonny": {
"url": "https://www.usesonny.com/api/mcp"
}
}
}Configuration formats vary by client. Add the remote Streamable HTTP endpoint; compatible clients discover Sonny's OAuth setup automatically. Scoped API keys remain available for clients that cannot use OAuth.
Why MCP
The same Sonny, through your AI tools
Every MCP tool uses the same workflows as Sonny's public API, so your automation and your team get consistent results.
- Tools discover themselves
- Your assistant can see available Sonny actions, their required inputs, and whether an action reads, writes, or deletes data.
- Complete API coverage
- Every public API operation is available as an MCP tool, from listing contacts to retrying a webhook delivery.
- The same safety boundary
- MCP uses the same scopes, workspace boundaries, and business rules as every direct API request.
Tool catalog
Clear actions with narrow inputs
Read-only tools are marked for assistants. Destructive tools are identified separately, so your client can ask for confirmation before it acts.
- list_contacts
- Returns workspace contacts with tags and conversation counts.
- create_contact
- Creates a contact. Email addresses are unique within a workspace.
- get_contact
- Returns one workspace contact.
- update_contact
- Updates supplied contact fields.
- archive_contact
- Archives the contact without deleting conversation history.
- list_channels
- Returns the stable channel values accepted by conversation filters.
- list_sources
- Returns configured workspace sources and the conversation channels each source supports.
- list_conversations
- Returns non-trash, non-spam conversations.
- get_conversation
- Returns one conversation with contact, assignee, group, and tags.
- update_conversation
- Changes status, priority, or assignment while preserving audit, CSAT, notification, search, realtime, and webhook side effects.
- list_messages
- Returns a chronological page of messages, newest page first via the before cursor.
- create_internal_note
- Adds an internal note. This endpoint never sends a customer-facing message.
- send_message
- Sends a customer-facing reply as the API key's creator, delivered over the conversation's channel: realtime chat (with an email copy when the visitor is offline) or email from the source's sending identity. The customer sees it immediately. Requires the messages:send scope, granted separately from messages:write.
- list_webhooks
- Returns endpoints and recent delivery status. Secrets are never returned.
- create_webhook
- Creates an HTTPS endpoint. The signing secret is returned once.
- list_webhook_events
- Returns the canonical subscription catalog.
- update_webhook
- Changes endpoint configuration or enabled state.
- delete_webhook
- Deletes the endpoint and its delivery history.
- test_webhook
- Queues webhook.test for this enabled endpoint even when it is not subscribed to that event. Disabled endpoints return 409.
- list_webhook_deliveries
- Returns the 50 most recent delivery attempts.
- retry_webhook_delivery
- Resets a terminal failed delivery and queues it immediately. Disabled endpoints return 409.
Connect securely
One connection, only the access you choose
- Connect with OAuth
- Sign in, review the requested scopes, and choose a workspace.
- Add the MCP server
- Add the remote URL. OAuth-capable clients discover the rest.
- Stay in one workspace
- Sonny scopes every tool call to the workspace you approved.