MCP Connector ✓ Linked by author

Access Intercom Customer Data for AI

An MCP server that gives AI assistants access to Intercom customer support data: search conversations and tickets by customer, status, date, or keyword.

Works with intercom

89
Spark score
out of 100
Status Verified
Updated Apr 2025
Source checked Oct 3, 2026
Version 1.0.0
Models
universal

Add to Favorites

Why it matters

Enable AI assistants to access and analyze customer support data from Intercom, including conversations and tickets. Provides advanced filtering capabilities for efficient data retrieval.

Outcomes

What it gets done

01

Retrieve conversations with keyword and content filtering.

02

Search conversations and tickets by customer email or ID.

03

Filter tickets by status and date range.

04

Integrate with MCP-compatible AI assistants.

Source

Get it from source

Spark does not host a copy of it.

Open source

Reports

Agent outcome reports

No reports yet

Capabilities

Tools your agent gets

list_conversations

Retrieves all conversations within a specified date range with content filtering by keywords and exclusions.

search_conversations_by_customer

Finds conversations for a specific customer by email or Intercom ID with optional date range filtering.

search_tickets_by_status

Retrieves tickets by their status (open, pending, or resolved) with optional date range filtering.

search_tickets_by_customer

Finds tickets associated with a specific customer by email or Intercom ID with optional date range filtering.

Overview

Intercom MCP Server

This MCP-compliant server allows AI assistants to access and analyze customer support data from Intercom. It provides tools to search conversations and tickets with advanced filtering options, including by customer, status, date range, and keywords. It can even search by email content when no contact exists. Use this server when you need to integrate AI assistants with Intercom customer support data. It's ideal for scenarios requiring programmatic access to conversations and tickets for analysis, reporting, or automated response generation.

What it does

An MCP-compliant server that lets AI assistants access and analyze customer support data from Intercom. Four tools: list_conversations retrieves conversations within a date range (max 7 days) with keyword include/exclude filtering; search_conversations_by_customer finds conversations for a specific customer by email or Intercom ID, even resolving conversations found by email content when no contact record exists; search_tickets_by_status retrieves tickets by status (open, pending, or resolved), optionally within a date range; search_tickets_by_customer finds tickets tied to a specific customer.

Inputs and outputs

Requires Node.js 18+ and an Intercom API token. Install and run via npm:

npm install -g mcp-server-for-intercom
export INTERCOM_ACCESS_TOKEN="your_token_here"
intercom-mcp

Or via Docker (a Glama-optimized default image and a lighter Dockerfile.standard are both provided). Configure in claude_desktop_config.json:

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

All search tools use Intercom's server-side search API for efficient filtering rather than pulling full result sets client-side.

Who it's for

Support and customer-success teams who want an AI assistant to pull and analyze Intercom conversation/ticket data directly, without building a custom Intercom integration. Apache 2.0 licensed; an independent integration, not affiliated with or endorsed by Intercom Inc.

Docker deployment

Two Docker images are provided: a default one optimized for Glama platform compatibility, and a lighter Dockerfile.standard without Glama-specific dependencies.

docker build -t mcp-intercom .
docker run --rm -it -p 3000:3000 -p 8080:8080 -e INTERCOM_ACCESS_TOKEN="your_token_here" mcp-intercom:latest

After starting, validate the deployment:

curl -v http://localhost:8080/.well-known/glama.json
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"mcp.capabilities"}' http://localhost:3000

For detailed technical information about how the server integrates with Intercom's API - parameter mapping, endpoint usage, and implementation notes - see src/services/INTERCOM_API_NOTES.md in the repository.

Example calls

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

for list_conversations, filtering to conversations mentioning "billing" in a one-week window;

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

for search_conversations_by_customer, which resolves an email to a contact ID for efficient searching even when the keyword match came from message content rather than a stored contact field; and

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

for search_tickets_by_status, one of "open", "pending", or "resolved".

When to use - and when NOT to

Use it when an AI assistant needs real Intercom data - recent conversations, open tickets, a specific customer's history - to answer a support or account question. Date ranges are capped at 7 days for conversation search, so a broader historical analysis needs multiple calls stitched together rather than one wide query.

Source README

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

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

FAQ

Common questions

Trust

How it checks out

Official By maintainer
Downloads 4

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.