Skip to main content
Glama
MCP Server for Intercom

MCP Server for Intercom

by raoulbia-ai

MCP Server for Intercom

An MCP-compliant server that enables AI assistants to access and analyze customer support data from Intercom.

Features

  • Search conversations and tickets with advanced filtering

  • Filter by customer, status, date range, and keywords

  • Search by email content even when no contact exists

  • Efficient server-side filtering via Intercom's search API

  • Seamless integration with MCP-compliant AI assistants

Related MCP server: jitbit-helpdesk-mcp

Installation

Prerequisites

  • Node.js 18.0.0 or higher

  • An Intercom account with API access

  • Your Intercom API token (available in your Intercom account settings)

Quick Setup

Using NPM

# Install the package globally
npm install -g mcp-server-for-intercom

# Set your Intercom API token
export INTERCOM_ACCESS_TOKEN="your_token_here"

# Run the server
intercom-mcp

Using Docker

The default Docker configuration is optimized for Glama compatibility:

# Start Docker (if not already running)
# On Windows: Start Docker Desktop application
# On Linux: sudo systemctl start docker

# Build the image
docker build -t mcp-intercom .

# Run the container with your API token and port mappings
docker run --rm -it -p 3000:3000 -p 8080:8080 -e INTERCOM_ACCESS_TOKEN="your_token_here" mcp-intercom:latest

Validation Steps:

# Test the server status
curl -v http://localhost:8080/.well-known/glama.json
# Test the MCP endpoint
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"mcp.capabilities"}' http://localhost:3000
Alternative Standard Version

If you prefer a lighter version without Glama-specific dependencies:

# Build the standard image
docker build -t mcp-intercom-standard -f Dockerfile.standard .

# Run the standard container
docker run --rm -it -p 3000:3000 -p 8080:8080 -e INTERCOM_ACCESS_TOKEN="your_token_here" mcp-intercom-standard:latest

The default version includes specific dependencies and configurations required for integration with the Glama platform, while the standard version is more lightweight.

Available MCP Tools

1. list_conversations

Retrieves all conversations within a date range with content filtering.

Parameters:

  • startDate (DD/MM/YYYY) – Start date (required)

  • endDate (DD/MM/YYYY) – End date (required)

  • keyword (string) – Filter to include conversations with this text

  • exclude (string) – Filter to exclude conversations with this text

Notes:

  • Date range must not exceed 7 days

  • Uses efficient server-side filtering via Intercom's search API

Example:

{
  "startDate": "15/01/2025",
  "endDate": "21/01/2025",
  "keyword": "billing"
}

2. search_conversations_by_customer

Finds conversations for a specific customer.

Parameters:

  • customerIdentifier (string) – Customer email or Intercom ID (required)

  • startDate (DD/MM/YYYY) – Optional start date

  • endDate (DD/MM/YYYY) – Optional end date

  • keywords (array) – Optional keywords to filter by content

Notes:

  • Can find conversations by email content even if no contact exists

  • Resolves emails to contact IDs for efficient searching

Example:

{
  "customerIdentifier": "customer@example.com",
  "startDate": "15/01/2025",
  "endDate": "21/01/2025",
  "keywords": ["billing", "refund"]
}

3. search_tickets_by_status

Retrieves tickets by their status.

Parameters:

  • status (string) – "open", "pending", or "resolved" (required)

  • startDate (DD/MM/YYYY) – Optional start date

  • endDate (DD/MM/YYYY) – Optional end date

Example:

{
  "status": "open",
  "startDate": "15/01/2025",
  "endDate": "21/01/2025"
}

4. search_tickets_by_customer

Finds tickets associated with a specific customer.

Parameters:

  • customerIdentifier (string) – Customer email or Intercom ID (required)

  • startDate (DD/MM/YYYY) – Optional start date

  • endDate (DD/MM/YYYY) – Optional end date

Example:

{
  "customerIdentifier": "customer@example.com",
  "startDate": "15/01/2025",
  "endDate": "21/01/2025"
}

Configuration with Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "intercom-mcp": {
      "command": "intercom-mcp",
      "args": [],
      "env": {
        "INTERCOM_ACCESS_TOKEN": "your_intercom_api_token"
      }
    }
  }
}

Implementation Notes

For detailed technical information about how this server integrates with Intercom's API, see src/services/INTERCOM_API_NOTES.md. This document explains our parameter mapping, Intercom endpoint usage, and implementation details for developers.

Development

# Clone and install dependencies
git clone https://github.com/raoulbia-ai/mcp-server-for-intercom.git
cd mcp-server-for-intercom
npm install

# Build and run for development
npm run build
npm run dev

# Run tests
npm test

Disclaimer

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.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Available Tools

4 tools
list_conversationsA

Retrieves Intercom conversations within a specific date range.

Required: startDate, endDate (DD/MM/YYYY format, max 7-day range) Optional: keyword, exclude (for content filtering)

Always ask for specific dates when user makes vague time references.

Inputs: endDate (required), startDate (required), exclude, keyword.

search_conversations_by_customerA

Searches for conversations by customer email or ID with optional date filtering.

Required: customerIdentifier (email/ID) Optional: startDate, endDate (DD/MM/YYYY format) Optional: keywords (array of terms to filter by)

Use when looking for conversation history with a specific customer.

Inputs: customerIdentifier (required), endDate, keywords, startDate.

search_tickets_by_customerB

Searches for tickets by customer email or ID with optional date filtering.

Required: customerIdentifier (email/ID) Optional: startDate, endDate (DD/MM/YYYY format)

Use when analyzing a customer's support history.

Inputs: customerIdentifier (required), endDate, startDate.

search_tickets_by_statusA

Searches for tickets by status with optional date filtering.

Required: status (one of: open, pending, resolved) Optional: startDate, endDate (DD/MM/YYYY format)

Use when analyzing support workload or tracking issue resolution.

Inputs: status (required), endDate, startDate.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 4 tools

    Disambiguation4/5

    The tools are mostly distinct with clear purposes: list_conversations retrieves all conversations in a date range, while the other three are specific searches (by customer for conversations/tickets, by status for tickets). However, search_conversations_by_customer and search_tickets_by_customer could be slightly confused since both target customers, but their descriptions clarify the resource difference (conversations vs. tickets).

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with snake_case: list_conversations, search_conversations_by_customer, search_tickets_by_customer, search_tickets_by_status. The naming is predictable and readable throughout the set.

    Tool Count3/5

    With only 4 tools, the set feels thin for an Intercom server, which typically handles a broader range of operations like creating/updating conversations, managing contacts, or sending messages. While the tools cover basic retrieval and search, the count is borderline low for the domain's potential scope.

    Completeness2/5

    The tool surface is significantly incomplete for an Intercom integration. It only provides search and list operations, missing essential CRUD actions like create_conversation, update_ticket, or delete operations. There are also gaps in managing other Intercom resources such as contacts, companies, or messages, which will limit agent capabilities.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      B
      maintenance
      An MCP server that provides searchable local storage for Claude conversation history, featuring automatic topic extraction and weekly insight summaries. It enables Claude to retrieve context from past sessions through full-text search and organized file storage.
      10
      3
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that enables AI assistants to interact with Freshservice service desk, supporting ticket search, retrieval, and creation via a configurable, Docker-first deployment.
      MIT