
Intercom MCP
OfficialIntercom's hosted MCP server: search and fetch conversations and contacts from your US workspace over OAuth.
Add to your client
Copy the config for your MCP client and paste it into its config file.
npx mcp-remote https://mcp.intercom.com/mcpPaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"intercom-mcp": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.intercom.com/mcp"
]
}
}
}Claude Desktop connects to remote servers through the `mcp-remote` proxy (installed on first run via npx). Restart Claude Desktop after saving.
Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- An Intercom workspace hosted in the US region (other regions not yet supported)
- OAuth login in the browser, or an Intercom access token with 'read users and companies' and 'read conversations' scopes
- Node.js/npx if your client is stdio-only and needs the mcp-remote bridge (e.g. Claude Desktop)
About Intercom MCP
Intercom's MCP server follows the authenticated remote MCP spec: Intercom hosts it, your client connects to https://mcp.intercom.com/mcp over Streamable HTTP, and auth happens via browser OAuth or a bearer token in an Authorization header. The GitHub repo (intercom/intercom-mcp-server) is just the documentation home — there is no code to run, which is exactly the appeal for support teams that do not want infrastructure.
The interesting design choice is the query DSL in the universal search tool. You specify object_type:conversations or object_type:contacts, then chain field filters with operators (eq, neq, gt, lt, contains) and free text via q: — e.g. object_type:conversations source_body:contains:"refund" limit:20. Results come back as summaries with typed IDs (conversation_, contact_) that you hand to fetch for the full record, including conversation parts, custom attributes, and deep links into the Intercom app.
Four direct API tools round it out: search_conversations and get_conversation for support threads, search_contacts and get_contact for people (matching on email, phone, custom attributes, or email domain). Everything is read-only, which keeps the blast radius small — an agent can triage, summarize, and analyze but never reply to a customer or edit a record.
Limits: US-hosted workspaces only (EU/AU are out for now), Intercom API rate limits apply, and stdio-only clients need the mcp-remote bridge, which occasionally requires clearing ~/.mcp-auth when OAuth state goes stale. The docs include a troubleshooting section for exactly that.
Tools & capabilities (6)
searchUniversal query-DSL search across conversations or contacts (object_type required, field operators, pagination).
fetchRetrieve the full record for an ID returned by search, including conversation parts and custom attributes.
search_conversationsSearch conversations with filters for source type, author, state, and timing statistics.
get_conversationGet a single conversation by ID with all parts and metadata.
search_contactsSearch contacts by ID, name, email, phone, custom attributes, or email domain.
get_contactGet complete contact info including custom attributes, location, and activity timestamps.
When to use it
- Triage the support queue: find open email conversations about refunds and summarize the common threads
- Pull a customer's full history — contact record plus recent conversations — before a call or escalation
- Analyze patterns across conversations (states, sources, response stats) without exporting data
- Look up contacts by email domain to see everyone from one account and their activity
Quick setup
- 1Claude.ai: Settings → Integrations → Add integration, with URL https://mcp.intercom.com/mcp, then complete the OAuth prompt
- 2Claude Desktop / stdio clients: add a config running `npx mcp-remote https://mcp.intercom.com/mcp` and restart the app
- 3First connection opens a browser window — log in to Intercom and approve the requested read scopes
- 4Bearer-token alternative: append `--header "Authorization:${AUTH_HEADER}"` with AUTH_HEADER set to 'Bearer YOUR_INTERCOM_API_TOKEN'
- 5Verify with `npx @modelcontextprotocol/inspector` — Streamable HTTP, URL https://mcp.intercom.com/mcp; if auth loops, `pkill -f mcp-remote && rm -rf ~/.mcp-auth`
Security notes
Hosted by Intercom with OAuth (recommended) or a bearer API token; a token needs read scopes for users/companies and conversations, so treat it as production support-data access and keep it out of shared configs. Tools are read-only — the server cannot send or modify anything — and only US-hosted workspaces are supported.
Intercom MCP FAQ
Is the Intercom MCP server free and safe to connect?
There is no separate charge — it is part of the Intercom platform, gated by your existing workspace login and standard API rate limits. Safety-wise it is read-only (search and fetch only), OAuth-scoped to conversation and contact reads, and hosted by Intercom, so no customer data flows through third-party infrastructure.
Can it reply to customers or update records?
No. All six tools read data — search and fetch conversations and contacts. Sending replies, creating tickets, or editing attributes still requires the Intercom app or REST API; the MCP server is built for lookup, triage, and analysis.
Why can't my workspace connect?
Most likely region: only US-hosted Intercom workspaces are currently supported, so EU and AU workspaces cannot use the server yet. If you are US-hosted and still stuck, kill stale bridges (pkill -f mcp-remote), clear ~/.mcp-auth, and check that a bearer token carries the two required read scopes.
Alternatives to Intercom MCP
Compare all alternatives →Connect your personal WhatsApp: search, read and send messages and media locally
Lets agents read LinkedIn profiles, companies, jobs and messages through your own logged-in browser session.
Powerful Slack MCP with stdio/SSE/HTTP, DMs, group DMs and no-admin token auth