An MCP-compliant server for retrieving customer support tickets from Intercom. This tool enables AI assistants like Claude Desktop and Cline to access and analyze your Intercom support tickets.
- Retrieve all support tickets (open and closed) with full conversation history
- Filter tickets by creation date
- Pagination support for handling large volumes of tickets
- Seamless integration with MCP-compliant AI assistants
This project is an independent integration and is not affiliated with, officially connected to, or endorsed by Intercom Inc. "Intercom" is a registered trademark of Intercom Inc.
This project is designed to comply with Intercom's developer terms of service by:
- Securing API Tokens: Ensuring Intercom API tokens are kept confidential and secure
- Responsible Data Handling: Accessing and storing user data responsibly
- Limited Scope: Only implementing necessary functionality to retrieve ticket data
- Transparency: Clearly documenting data usage and application features
Users of this integration should review Intercom's Developer Terms to ensure their implementation complies with all requirements.
- Node.js 18.0.0 or higher
- An Intercom account with API access
-
Install the package globally:
npm install -g mcp-server-for-intercom
-
Set your Intercom API token:
# For Linux/Mac export INTERCOM_ACCESS_TOKEN="your_token_here" # For Windows Command Prompt set INTERCOM_ACCESS_TOKEN=your_token_here # For PowerShell $env:INTERCOM_ACCESS_TOKEN = "your_token_here"
-
Run the server:
intercom-mcp
-
Clone the repository:
git clone https://github.com/raoulbia-ai/mcp-server-for-intercom.git cd mcp-server-for-intercom
-
Install dependencies:
npm install
-
Build the project:
npm run build
-
Set your Intercom API token as an environment variable (see above)
-
Run the server in development mode:
npm run dev
Run tests with:
npm test
Run tests in watch mode:
npm run test:watch
You can run the MCP server using Docker:
- Docker installed on your system
- Intercom API access token
-
Build the Docker image:
docker build -t mcp-server .
-
Run the container:
docker run --rm -it -e INTERCOM_ACCESS_TOKEN="your_actual_api_key_here" mcp-server
Replace
"your_actual_api_key_here"
with your actual Intercom access token.
-
To list running containers:
docker ps
-
To stop a running container:
docker stop <container_id_or_name>
Replace
<container_id_or_name>
with the actual Container ID or Name fromdocker ps
.
- The container uses stdio (standard input/output) for MCP communication, not HTTP
- This server is designed to be used by MCP-compatible LLM systems (like Claude Desktop or Cline)
- The
--rm
flag in the run command automatically removes the container when it stops - No port mapping is needed as the server communicates via stdin/stdout
The MCP Inspector is a useful tool for debugging and testing your MCP server implementation. It provides a web interface to interact with your server and visualize the requests and responses.
The MCP Inspector is available as an npm package:
npm install -g @modelcontextprotocol/inspector
To inspect your MCP server, use the following command:
npx @modelcontextprotocol/inspector node build/index.js
This will:
- Start your MCP server
- Launch a web interface (typically at http://localhost:3000)
- Allow you to send requests and view responses
- When using the inspector with this server, you must prefix the command with
node
as shown above - Make sure your environment variables (like
INTERCOM_ACCESS_TOKEN
) are set properly - The web interface lets you:
- View available tools
- Send test requests
- Debug response formatting
- Monitor request/response flow
The inspector is particularly helpful when:
- Implementing new tools
- Debugging parameter handling issues
- Testing date format validation
- Verifying error messages
Retrieves all support tickets with their conversation history within a specific date range.
Request Parameters:
startDate
(DD/MM/YYYY format) – The start date for ticket retrieval (required)endDate
(DD/MM/YYYY format) – The end date for ticket retrieval (required)keyword
(string) – Optional filter to only include tickets containing this textexclude
(string) – Optional filter to exclude tickets containing this text
Important Notes:
- Date range must not exceed 7 days
- Both startDate and endDate are required
- Dates must use the DD/MM/YYYY format (e.g., "15/01/2025")
Example Request:
{
"startDate": "15/01/2025",
"endDate": "21/01/2025",
"keyword": "billing"
}
Response Format:
{
"result": [
{
"ticket_id": "12345",
"subject": "Billing Issue",
"status": "resolved",
"created_at": "2024-03-06T10:15:00Z",
"conversation": [
{
"from": "customer",
"text": "Hey, I was double charged!",
"timestamp": "2024-03-06T10:15:00Z"
},
{
"from": "support_agent",
"text": "We've refunded the duplicate charge.",
"timestamp": "2024-03-06T10:45:00Z"
}
]
}
]
}
To integrate the MCP Server for Intercom with Claude Desktop:
-
Get API Tokens: Ensure you have an Intercom API token. You can obtain this from your Intercom account settings.
-
Configure Claude Desktop: Add the following configuration to your
claude_desktop_config.json
file:{ "mcpServers": { "intercom-mcp": { "command": "intercom-mcp", "args": [], "env": { "INTERCOM_ACCESS_TOKEN": "your_intercom_api_token" } } } }
Replace
"your_intercom_api_token"
with your actual Intercom API token.
If you've cloned the repository and want to run a local version of the MCP Server for Intercom:
-
Clone the Repository:
git clone https://github.com/raoulbia-ai/mcp-server-for-intercom.git cd mcp-server-for-intercom
-
Install Dependencies:
npm install
-
Build the Project:
npm run build
-
Configure Claude Desktop: Add the following configuration to your
claude_desktop_config.json
file:{ "mcpServers": { "intercom-mcp-local": { "command": "npm", "args": ["run", "dev"], "env": { "INTERCOM_ACCESS_TOKEN": "your_intercom_api_token", "NODE_ENV": "development" }, "cwd": "/path/to/your/mcp-server-for-intercom" } } }
Replace
"your_intercom_api_token"
with your actual Intercom API token and"/path/to/your/mcp-server-for-intercom"
with the path to your cloned repository.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
For questions, feature requests, or bug reports, please open an issue in the Issues section of this repository. You can also reach out to me directly via my GitHub profile.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details. The Apache License 2.0 provides additional protections including patent grants, trademark protection, and modification notices, making it ideal for open-source projects that require more comprehensive legal safeguards.