What is MCP?
Model Context Protocol (MCP) is an open standard that lets AI agents discover and call tools from external systems in a structured, typed way. Think of it as USB-C for AI — one port, many devices.
The Wendesk MCP server runs at mcp.wendesk.com. Once your agent connects (via OAuth), it can list and call 42 tools scoped to your tenant — read leads, draft replies, move deals across pipeline stages, send WhatsApp messages, generate content, schedule voice calls.
Tenant-scoped
Every connection is bound to one Wendesk workspace. Tools only see your data; cross-tenant leakage is structurally impossible.
OAuth 2.1 + PKCE
Standard authorisation code flow with PKCE. No secrets to ship. Fine-grained scope grants per agent.
Streaming-first
Server-Sent Events (SSE) by default; stdio for desktop clients. Sub-200ms latency on tool calls.
Quickstart.
Connect Claude Desktop to your Wendesk workspace in under 3 minutes.
Open the MCP install page
In Wendesk: Settings → Developer → MCP server. You'll see a one-click install URL for each supported client.
Pick scopes
Default scopes are
crm:read,inbox:read,content:read. Toggle on write scopes (crm:write,wa:send) if you want the agent to take actions.Click "Connect to Claude"
Browser opens an OAuth consent screen → approve → redirected back to Claude with the connection live. Same flow for ChatGPT, Cursor, Copilot.
Try a query
In Claude: "List my hottest qualified leads from this week." Claude introspects available tools, calls
crm.lead.list, returns results.
OAuth setup (manual).
If you're building a custom MCP client (not Claude/ChatGPT/Cursor), here's the manual flow:
# 1. Generate code_verifier + code_challenge (PKCE)
code_verifier=$(openssl rand -base64 64 | tr -d "=+/" | cut -c1-128)
code_challenge=$(echo -n $code_verifier | openssl dgst -sha256 -binary | base64 | tr -d "=+/" | cut -c1-43)
# 2. Send user to authorize URL
AUTHORIZE_URL="https://mcp.wendesk.com/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT&scope=crm:read+inbox:read&code_challenge=$code_challenge&code_challenge_method=S256"
# 3. After user approves, exchange code for token
curl -X POST https://mcp.wendesk.com/oauth/token \
-d "grant_type=authorization_code" \
-d "code=AUTH_CODE_FROM_CALLBACK" \
-d "redirect_uri=YOUR_REDIRECT" \
-d "client_id=YOUR_CLIENT_ID" \
-d "code_verifier=$code_verifier"
# Response — 200 OK
{
"access_token": "wd_mcp_at_...",
"refresh_token": "wd_mcp_rt_...",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "crm:read inbox:read"
}The access token is bound to one tenant. To use the MCP server across multiple workspaces, complete the OAuth flow once per tenant; tokens are independent.
Tool catalog.
42 tools across 5 namespaces. R = read-only, W = write, RW = both. Each requires the corresponding scope.
+ 29 more tools across analytics, billing, integrations, tenant, and industry namespaces. Full catalog at mcp.wendesk.com/tools.
Scopes & permissions.
14 scopes total. Apply principle-of-least-privilege — only request what your agent needs.
crm:read·crm:write— leads, contacts, deals, activitiesinbox:read·inbox:write— conversations + messages across all channelswa:send— send templated WhatsApp messagescontent:read·content:write— Content Studio drafts + brand voicesvoice:schedule— schedule outbound voice agent callsanalytics:read— aggregate metrics (no PII)integrations:read·integrations:write— App Store connectionsworkflow:run— execute saved workflowstenant:read— workspace metadata + plan info
By default, write scopes (crm:write, wa:send, voice:schedule) require user confirmation before each tool call. Disable in Settings → Developer → MCP → Auto-approve, but consider the blast radius first.
Connect Claude.
Two paths — Claude Desktop (stdio) and Claude.ai (web, SSE-based).
Claude Desktop config
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"wendesk": {
"command": "npx",
"args": ["-y", "@wendesk/mcp-server"],
"env": {
"WENDESK_TOKEN": "wd_mcp_at_...",
"WENDESK_TENANT": "acmecorp"
}
}
}
}Restart Claude Desktop. The Wendesk tools appear in the 🔌 menu, ready to use.
Other clients.
ChatGPT (Desktop / Web)
Settings → Connectors → Wendesk → OAuth
Cursor
Settings → MCP → Add server → wendesk
GitHub Copilot
VS Code → Copilot → Tools → Wendesk
Claude (Desktop / Code)
claude_desktop_config.json or oauth flow
Rate limits.
Per-token rate limits — generous, but bounded:
- Read tools — 600 calls/min, 30,000 calls/hour
- Write tools — 60 calls/min, 1,800 calls/hour
- Expensive tools (
content.generate,voice.call.schedule) — 30 calls/min
Exceeded? You get 429 Too Many Requests with a Retry-After header. Wait that many seconds and try again.
Errors.
401 Unauthorized— token expired or revoked → refresh via OAuth refresh flow403 Forbidden— token has insufficient scope for this tool → request additional scope and re-auth404 Not Found— entity ID doesn't exist in this tenant422 Unprocessable— input failed Zod validation; check theerrors[]array in the response429 Too Many Requests— rate-limited; wait and retry500 Internal Server Error— log the trace ID and email [email protected]
@wendesk/mcp-server — official Node binary for desktop clients. @wendesk/mcp-sdk — TypeScript helpers for building custom MCP clients. Both at npmjs.com/org/wendesk.