intercom-mcp
README.md
# intercom-mcp
Dedalus MCP server for Intercom support and customer communications. It exposes contact search, contact lookup, conversation listing, conversation lookup, customer-visible replies, and internal notes.
## Tools
- `search_contacts` - Search contacts by field/operator/value or list recent contacts when no value is provided.
- `get_contact` - Fetch one contact by ID.
- `list_conversations` - List conversations, optionally filtered by state.
- `get_conversation` - Fetch one conversation by ID.
- `reply_to_conversation` - Send a customer-visible admin reply.
- `create_note` - Add an internal note to a conversation.
## Safety Notes
`reply_to_conversation` contacts real users. Confirm the conversation, admin identity, and body before calling it. `create_note` is separate and documented as internal-only so agents do not accidentally send private triage notes to customers.
Intercom conversation data may contain personal data and support history. Do not commit OAuth tokens, client secrets, conversation exports, or customer messages.
## Authentication
This is a Dedalus Type 4 OAuth server. The server declares one DAuth connection named `intercom-mcp` with secret key `INTERCOM_ACCESS_TOKEN`. Dedalus handles OAuth authorization, token exchange, and runtime credential injection.
Deployment variables:
```bash
OAUTH_ENABLED=true
OAUTH_AUTHORIZE_URL=https://app.intercom.com/oauth
OAUTH_TOKEN_URL=https://api.intercom.io/auth/eagle/token
OAUTH_CLIENT_ID=...
OAUTH_CLIENT_SECRET=...
OAUTH_SCOPES_AVAILABLE=read_admins,read_contacts,write_contacts,read_conversations,write_conversations
OAUTH_BASE_URL=https://api.intercom.io
INTERCOM_VERSION=2.14
DEDALUS_AS_URL=https://as.dedaluslabs.ai
```
Adjust scopes to the minimum needed for your Intercom app and workspace approval flow.
## Run Locally
```bash
uv run python src/main.py
```
In another terminal:
```bash
MCP_SERVER_URL=http://127.0.0.1:8080/mcp uv run python src/_client.py
```
`src/_client.py` explicitly calls every tool. Use `INTERCOM_TEST_CONTACT_ID`, `INTERCOM_TEST_CONVERSATION_ID`, and `INTERCOM_TEST_ADMIN_ID` to point the smoke test at safe records.
## Deploy
Publish as `dedalus-labs/intercom-mcp`, configure OAuth in Dedalus, deploy, then run:
```bash
DEDALUS_MCP_SERVER_ONLY=1 DEDALUS_MCP_SERVER=dedalus-labs/intercom-mcp uv run python src/_client.py
```
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues