MCP Server
The Sendiee MCP server lets any Model Context Protocol-aware AI tool — Claude Desktop, Cursor, Antigravity, Continue, and others — drive your Sendiee account in natural language. Set up assistants, configure templates, schedule campaigns, pull reports, and audit billing without touching the dashboard.
We host it for you. There’s nothing to install on your machine — just point your AI tool at the URL below with your Sendiee API key.
Hosted Endpoint
The server exposes both transports on the same domain so old and new clients work:
https://mcp.sendiee.com/mcp— Streamable HTTP (the 2025 standard). Use this for Claude Desktop, Cursor, claude.ai integrations, Antigravity.https://mcp.sendiee.com/sse— legacy SSE fallback for older MCP clients.https://mcp.sendiee.com/health— public liveness probe.
Machine-readable discovery card (serverInfo, transport, auth, capabilities): /.well-known/mcp/server-card.json.
Authentication
Two ways to authenticate. Sign in with Sendiee (OAuth) is the default for Claude, ChatGPT, Cursor and Gemini: paste the URL, sign in, pick the organization and the permissions. No keys to copy. An API key in the Authorization header still works for scripts and clients that only support static headers.
Sign in with Sendiee (OAuth 2.1)
The MCP server is an OAuth resource server. When a client connects without a token it answers 401 with a WWW-Authenticate pointer to https://mcp.sendiee.com/.well-known/oauth-protected-resource/mcp, which names the Sendiee authorization server (api.sendiee.com). The client opens a browser tab on app.sendiee.com/oauth/consent; you sign in, choose the organization and tick the permissions to grant, and you are sent back.
- PKCE (S256) is required. Refresh tokens are issued and rotated automatically.
- Clients identify themselves via a Client ID Metadata Document or Dynamic Client Registration — nothing to configure. Fixed
client_id/client_secretpairs are available for tools that need them (Gemini Enterprise, Claude Team “Advanced settings”) — contact support. - Only owners, admins and editors of an organization can connect an app, and the organization’s plan must include API access.
- Every connection has its own credentials limited to the permissions granted. Disconnect any time from Dashboard → API & Webhooks → Connected apps; it takes effect immediately.
API key (static header)
Pass a Sendiee API key in a standard Authorization header:
Authorization: Bearer YOUR_SENDIEE_API_KEYGet your key from Sendiee Dashboard → Settings → API Keys. The MCP server scopes your key to your session in memory only — it’s never logged and never shared across users.
Setup by client
Claude (web, Desktop, mobile, Cowork)
Settings → Connectors → Add custom connector, name it “Sendiee”, paste https://mcp.sendiee.com/mcpand click Connect. A Sendiee sign-in tab opens; approve and you are done. Custom connectors are available on Free (one connector), Pro, Max, Team and Enterprise. On Team/Enterprise an Owner adds the connector once and each member connects with their own Sendiee login.
Connections follow your Claude account
Claude Code
claude mcp add --transport http sendiee https://mcp.sendiee.com/mcp
# then inside Claude Code:
/mcp # → select "sendiee" → AuthenticateChatGPT
Settings → Apps & Connectors → Advanced settings → Developer mode (Business/Enterprise admins must enable this first), then Create: name “Sendiee”, URL https://mcp.sendiee.com/mcp, authentication OAuth. ChatGPT does not accept API keys — OAuth is the only option there.
Cursor, VS Code, Windsurf
Add an HTTP MCP server with the URL only; the editor opens the Sendiee sign-in automatically. Cursor: ~/.cursor/mcp.json
{
"mcpServers": {
"sendiee": {
"url": "https://mcp.sendiee.com/mcp"
}
}
}Gemini
- Gemini CLI:
gemini mcp add --transport http sendiee https://mcp.sendiee.com/mcp— OAuth is discovered automatically. Static headers with an API key also work. - Gemini Enterprise (Business edition): a team admin adds a custom MCP server with OAuth 2.0 (Streamable HTTP). It needs a fixed client ID and secret plus the authorize/token URLs — ask Sendiee support for a client.
- The consumer Gemini app does not support custom MCP servers.
Setup with an API key
For scripts, older clients, or when you prefer a static credential. Get a scoped key from Dashboard → API & Webhooks → API Keys.
Claude Desktop (local config file)
Prefer the custom connector above. If you must use the local config file, edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows). Claude Desktop runs MCP servers as local stdio commands, so we bridge to the hosted URL through mcp-remote:
{
"mcpServers": {
"sendiee": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.sendiee.com/mcp",
"--header",
"Authorization:Bearer YOUR_SENDIEE_API_KEY"
]
}
}
}Restart Claude Desktop. The Sendiee tools (hammer icon) and the 3 playbook prompts (typing /) appear within a few seconds.
No space inside the header value
Authorization:Bearer KEY with no space between the colon and Bearer, and no space between Bearer and the key — that’s how mcp-remote parses each --header argument.Claude Team/Enterprise (organization-wide key)
Claude supports an admin-entered request header (beta) on custom connectors. An Owner adds the connector with header Authorization: Bearer YOUR_SENDIEE_API_KEY; the key is then shared by the whole organization. Per-member OAuth is usually the better choice.
Cursor (API key)
Edit ~/.cursor/mcp.json (or workspace .cursor/mcp.json):
{
"mcpServers": {
"sendiee": {
"url": "https://mcp.sendiee.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_SENDIEE_API_KEY"
}
}
}
}Other tools (Antigravity, Continue, etc.)
Any MCP-aware client that supports a remote URL + custom headers works. Use:
- URL:
https://mcp.sendiee.com/mcp(or/sseif your client is older). - Header:
Authorization: Bearer YOUR_SENDIEE_API_KEY.
What the AI agent can do
The MCP server exposes 75 tools covering the full v2.0 surface, plus 3 named playbook prompts. Selected capabilities:
| Category | Tools |
|---|---|
| send_template_message, send_freeform_message, get_message_status | |
| Contacts | list/filter/get/upsert + tags + custom fields + lead categories |
| Templates | list_templates, create_template, find_template_by_name |
| Campaigns | preview_campaign_audience, create_campaign, list_campaigns, get_campaign_report |
| Chats | get_chat_history, list_conversations, list_conversation_statuses, set_conversation_status |
| Insights | get_daily_summary, get_pipeline_snapshots |
| Billing | get_current_plan, list_subscriptions, list_payments |
| Assistants | options, list, get, create, update, toggle, delete, history, restore |
| Helpers | get_org_summary (plan + balance + channels in one call) |
| Playbooks | setup_whatsapp_assistant, launch_campaign_to_segment, weekly_org_report |
Example prompts to try
Once connected, just talk to the AI in plain English:
- “Set up a friendly WhatsApp customer-support assistant called ‘Acme Support’ using Claude Haiku.” — invokes the
setup_whatsapp_assistantplaybook. - “How many people will receive a campaign to all VIP-tagged contacts in Mumbai?” — calls
preview_campaign_audience. - “Generate this week’s WhatsApp activity report.” — invokes the
weekly_org_reportplaybook. - “Show me what 919876543210 has been chatting about.” — calls
get_chat_history. - “What’s my current plan, balance, and channel health?” — calls
get_org_summary. - “Create a marketing template diwali_sale_2026 in en_US with body ‘Hi {{1}}, get 25% off. Use code {{2}}’ and a Shop Now button.” — calls
create_template.
Health Check
Confirm connectivity from your machine before configuring the client:
curl https://mcp.sendiee.com/health{
"ok": true,
"service": "sendiee-mcp",
"version": "1.1.0",
"time": "2026-04-29T20:54:33.232Z"
}Security
- API keys are scoped per session and held in memory only — never logged, never shared between sessions.
- All traffic is HTTPS-only. The server enforces TLS via Cloudflare + Certbot.
- To revoke access, delete the API key in Sendiee Dashboard → Settings → API Keys. Active sessions on that key fail immediately on the next API call.
- Plan limits, rate limits, and per-org quotas all apply identically to MCP traffic — the AI agent can’t exceed them.
Troubleshooting
| Symptom | Fix |
|---|---|
| Claude Desktop says “Some MCP servers could not be loaded” | Use the npx mcp-remote bridge form (above). Claude Desktop only accepts stdio commands directly. |
Tool calls return INVALID_API_KEY | Regenerate your key in Sendiee Dashboard and update the config. |
| Stream ends after ~100s | Cloudflare proxy timeout on Free plan. Reconnects are automatic — long-running tasks will resume. |
| No tools appear in Claude Desktop | Restart Claude Desktop fully (quit + reopen). Check ~/Library/Logs/Claude/mcp*.log for stderr from the bridge. |
/health works but tool calls fail | Confirm the Authorization header reaches the server (some clients drop custom headers on redirects). Use the URL exactly as https://mcp.sendiee.com/mcp. |
| The consent page says “Upgrade needed” or “no permission” | Only owners, admins and editors can connect apps, and the organization’s plan must include API access. Pick another organization on the consent page or ask an owner. |
| The client keeps asking to reconnect | The connection was disconnected under API & Webhooks → Connected apps, your membership or the plan changed, or a refresh token was reused (which revokes the connection for safety). Connect again from the client. |