This MCP server provides comprehensive management of Intercom Help Center articles and collections through CRUD operations, multilingual support, and search functionality.
Article Management:
Get a single article by ID (title, body, author, state, etc.)
List articles with pagination (configurable page/per-page, up to 50)
Create articles with required title, HTML body, and author ID; optional description, draft/published state, parent collection, and multilingual content
Update articles with partial changes — title, body, state, author, or translations — without affecting other fields
Search articles by keyword, filtering by state or Help Center ID, with optional match highlighting
Collection Management:
List all Help Center collections with pagination
Get a single collection by ID
Update collection names, descriptions, and multilingual translations
Delete a collection permanently
Multilingual Support: Create and update both articles and collections with translated content for multiple locales via translated_content.
Integration: Configure with Claude Desktop or Claude Code CLI using an Intercom Access Token, then manage content via natural language commands.
Provides tools for managing Intercom Help Center articles, enabling users to list, retrieve, create, and update articles, including support for multilingual content and draft/published states.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Intercom Articles MCP Serverlist my first 10 help center articles"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Intercom MCP Server
Intercom MCP server for Help Center content management and CS workflow automation.
Version
v0.6.0 - Added CS workflow tools (reply conversation, add note, close conversation, update ticket)
Features
Articles
✅
get_article- Get a single article by ID✅
list_articles- List articles with pagination✅
search_articles- Search articles by keywords with highlighting support✅
create_article- Create new articles with multilingual content✅
update_article- Update existing articles with partial updates
Collections
✅
list_collections- List all Help Center collections✅
get_collection- Get a single collection by ID✅
update_collection- Update collection info and translations✅
delete_collection- Delete a collection (permanent)
CS Workflow
✅
reply_conversation- Reply to a conversation as an admin✅
add_conversation_note- Add an internal note to a conversation✅
close_conversation- Close a conversation✅
update_ticket- Update a ticket's state or attributes
Installation
Clone the repository:
git clone https://github.com/kaosensei/intercom-mcp.git
cd intercom-mcpInstall dependencies:
npm installBuild the project:
npm run buildConfiguration
Get Intercom Access Token
Go to Intercom Settings → Developers → Developer Hub
Create a new app or use existing one
Get an Access Token with Articles and Conversations read and write permissions
Environment Variables
Variable | Required | Description |
| ✅ Always | Your Intercom API access token |
| ✅ For CS tools | Admin ID used for |
Configure with Claude Code (Recommended)
If you're using Claude Code CLI, you can easily add the MCP server:
claude mcp add --transport stdio intercom-mcp \
--env INTERCOM_ACCESS_TOKEN=<your_token> \
--env INTERCOM_ADMIN_ID=<your_admin_id> \
-- node /ABSOLUTE/PATH/TO/intercom-mcp/dist/index.jsReplace:
<your_token>with your Intercom Access Token/ABSOLUTE/PATH/TO/with your actual project path
To verify it's configured:
claude mcp listConfigure Claude Desktop Manually
Alternatively, edit your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Add this configuration:
{
"mcpServers": {
"intercom-mcp": {
"command": "node",
"args": [
"/ABSOLUTE/PATH/TO/intercom-mcp/dist/index.js"
],
"env": {
"INTERCOM_ACCESS_TOKEN": "your_intercom_access_token_here",
"INTERCOM_ADMIN_ID": "your_admin_id_here"
}
}
}
}Important:
Replace
/ABSOLUTE/PATH/TO/intercom-mcpwith your actual project pathReplace
your_intercom_access_token_herewith your actual tokenReplace
your_admin_id_herewith your Intercom admin ID (required for CS tools)
Restart Claude Desktop
Completely quit Claude Desktop and restart it.
Usage
Once configured, you can use these commands in Claude Desktop:
List Articles
List Intercom articlesor
Show me the first 20 Intercom articlesGet Article Details
Get Intercom article with ID 9876543Search Articles
Search for Intercom articles about "subscription"or
Search published articles containing "播客" with highlighted matchesor
Find articles with keyword "訂閱" in ChineseCreate Article
Create a new Intercom article titled "Getting Started Guide" with content "Welcome to our platform" by author ID 123456, save as draftUpdate Article
Update article 9876543 and change its state to publishedList Collections
List all Intercom Help Center collectionsGet Collection
Get collection with ID 14608214Update Collection
Update collection 14608214 and add Japanese translationDelete Collection
Delete collection 16036040Use Case: Translation Management
One of the key features of v0.4.0 is the ability to manage multilingual collections efficiently.
Add Missing Translations
You can easily add translations to collections that are missing certain languages:
Update collection 14608214 and add the missing Japanese translation: name "アカウント管理", description "アカウント設定を管理する"Bulk Translation Updates
Check which collections are missing translations:
List all collections and show me which ones are missing Japanese translationsThen update them one by one or create a plan to update multiple collections.
Verify Translations
After updating, verify the changes:
Get collection 14608214 and show me all available translationsTools Reference
get_article
Get a single article by ID.
Parameters:
id(string, required): Article ID
Example:
{
"id": "9876543"
}list_articles
List articles with pagination.
Parameters:
page(number, optional): Page number (default: 1)per_page(number, optional): Articles per page (default: 10, max: 50)
Example:
{
"page": 1,
"per_page": 20
}search_articles
Search for articles using keywords. Supports full-text search across article content with multilingual support (English, Chinese, Japanese, etc.).
Parameters:
phrase(string, required): Search keywords/phrase to find in articlesstate(string, optional): Filter by article state - "published", "draft", or "all" (default: "all")help_center_id(string, optional): Filter by specific Help Center IDhighlight(boolean, optional): Return highlighted matching content snippets (default: false)
Example (Simple search):
{
"phrase": "subscription"
}Example (Search with filters):
{
"phrase": "播客",
"state": "published",
"highlight": true
}Example (Chinese keyword search):
{
"phrase": "訂閱制",
"state": "all",
"highlight": true
}Response includes:
total_count: Total number of matching articlesdata.articles: Array of matching articles with full contentpages: Pagination information with next page URLHighlighted content snippets (when
highlight: true)
Use Cases:
Find all articles about a specific topic
Search for Chinese/Japanese content in multilingual help centers
Locate articles that need updating
Discover related content for cross-linking
create_article
Create a new article with multilingual support.
Parameters:
title(string, required): Article titlebody(string, required): Article content in HTML formatauthor_id(number, required): Author ID (must be a valid Intercom team member)description(string, optional): Article descriptionstate(string, optional): "draft" or "published" (default: "draft")parent_id(string, optional): Collection or section IDparent_type(string, optional): "collection" (default)translated_content(object, optional): Multilingual content
Example (Simple):
{
"title": "Getting Started Guide",
"body": "<p>Welcome to our platform</p>",
"author_id": 123456,
"state": "draft"
}Example (Multilingual):
{
"title": "Getting Started Guide",
"body": "<p>Welcome to our platform</p>",
"author_id": 123456,
"state": "published",
"translated_content": {
"zh-TW": {
"title": "入門指南",
"body": "<p>歡迎使用我們的平台</p>",
"author_id": 123456,
"state": "published"
},
"ja": {
"title": "スタートガイド",
"body": "<p>プラットフォームへようこそ</p>",
"author_id": 123456,
"state": "published"
}
}
}update_article
Update an existing article. Only provided fields will be updated.
Parameters:
id(string, required): Article IDtitle(string, optional): Updated titlebody(string, optional): Updated contentdescription(string, optional): Updated descriptionstate(string, optional): "draft" or "published"author_id(number, optional): Updated author IDtranslated_content(object, optional): Updated translations
Example (Change state):
{
"id": "9876543",
"state": "published"
}Example (Update content):
{
"id": "9876543",
"title": "Updated Title",
"body": "<p>Updated content</p>"
}Example (Add translation):
{
"id": "9876543",
"translated_content": {
"zh-TW": {
"title": "更新的標題",
"body": "<p>更新的內容</p>"
}
}
}list_collections
List all Help Center collections (top-level categories).
Parameters:
page(number, optional): Page number (default: 1)per_page(number, optional): Collections per page (default: 50, max: 150)
Example:
{
"page": 1,
"per_page": 50
}get_collection
Get a single collection by ID.
Parameters:
id(string, required): Collection ID
Example:
{
"id": "14608214"
}update_collection
Update an existing collection. Only provided fields will be updated. Perfect for adding missing translations!
Parameters:
id(string, required): Collection IDname(string, optional): Updated collection name (updates default language)description(string, optional): Updated description (updates default language)parent_id(string, optional): Parent collection ID (null for top-level)translated_content(object, optional): Updated translations
Example (Update name and description):
{
"id": "14608214",
"name": "Account Management",
"description": "Manage your account settings"
}Example (Add missing Japanese translation):
{
"id": "14608214",
"translated_content": {
"ja": {
"name": "アカウント管理",
"description": "アカウント設定を管理"
}
}
}Example (Update multiple language translations):
{
"id": "14608214",
"translated_content": {
"ja": {
"name": "アカウント管理",
"description": "アカウント設定を管理する"
},
"id": {
"name": "Manajemen Akun",
"description": "Kelola pengaturan akun Anda"
}
}
}delete_collection
Delete a collection permanently. WARNING: This action cannot be undone!
Parameters:
id(string, required): Collection ID to delete
Example:
{
"id": "16036040"
}⚠️ Important Notes:
Deleted collections cannot be restored
All content within the collection may be affected
Always backup important data before deletion
Development
Build
npm run buildWatch mode
npm run watchTroubleshooting
Claude Desktop doesn't show the tools
Check config file path is correct
Verify JSON format (no trailing commas)
Completely restart Claude Desktop
Check absolute path to
dist/index.js
API errors
Verify your Access Token is correct
Ensure token has Articles read permissions
Check Intercom API status
Build errors
Ensure TypeScript version >= 5.0
Delete
node_modulesanddist, then:
npm install && npm run buildProject Structure
intercom-mcp/
├── package.json # Project configuration
├── tsconfig.json # TypeScript configuration
├── src/
│ └── index.ts # Main server code
├── dist/ # Compiled output
└── README.md # This fileRoadmap
Completed
✅ Get Article (v0.1.0)
✅ List Articles (v0.1.0)
✅ Create Article (v0.2.0)
✅ Update Article (v0.2.0)
✅ Multilingual support for Articles (v0.2.0)
✅ List Collections (v0.3.1)
✅ Get Collection (v0.3.1)
✅ Update Collection (v0.4.0)
✅ Delete Collection (v0.4.0)
✅ Multilingual support for Collections (v0.4.0)
✅ Search Articles with keyword matching and highlighting (v0.5.0)
✅ Reply to conversations (v0.6.0)
✅ Add internal notes to conversations (v0.6.0)
✅ Close conversations (v0.6.0)
✅ Update ticket state and attributes (v0.6.0)
Planned
🔜 Delete Article
🔜 Batch operations
🔜 Better error handling
🔜 Modular file structure
Resources
License
MIT