# Intercom MCP connector

The Intercom connector lets Claude, ChatGPT, Cursor, or any MCP client read and act on your Intercom conversations, contacts, and companies as the signed-in person, with every call recorded in an audit log.

Source: https://elaichi.ai/connectors/intercom/

## Facts

| | |
| --- | --- |
| Application | Intercom |
| Category | Helpdesk |
| AI tools | 98 |
| Authentication | OAuth or API key |
| Needs your own OAuth app | Yes |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 98 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Intercom is connected

- Which companies opened the most conversations last week?
- List conversations tagged billing and still unassigned.
- Show open conversation counts by Intercom team.

## Connect Intercom in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Intercom.
2. Optionally set Share with, then press Connect.
3. Supply your own Intercom app, then approve. Intercom needs an OAuth app you register yourself, so bring its client ID and secret. One person does this once for the organization.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Intercom tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Intercom to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Intercom to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Intercom to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Intercom to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Intercom tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Intercom through Elaichi

### Catch up on a conversation before replying

Support. Ask for the full thread with a customer, get the gist of what has happened so far, and send a reply from your own Intercom seat without opening the inbox.

### Route and close conversations in bulk

Support. Hand a batch of conversations to the right Intercom team, snooze the ones waiting on the customer, and close the ones that are done, all from one request.

### Prepare for a renewal call

Customer Success. Pull the company record, the people attached to it, and their recent conversations so you walk into the call knowing what they have asked about lately.

### Create the contact and company after a demo

Sales. Add the new lead and their company to Intercom, fill in the fields you learned on the call, and tag them so the follow-up sequence picks them up.

### Keep company and contact records clean

Operations. Find contacts with missing or mismatched details, update them, and remove duplicate companies without paging through the Intercom admin one record at a time.

### Find what customers are asking about

Product. Ask which open conversations mention a feature or a bug this week and get a plain summary, grouped by company, to bring to planning.

## Frequently asked questions

### How do I connect Intercom to Claude?

First, in Elaichi, choose Intercom and register an OAuth application inside your Intercom workspace, then paste that app's client ID and secret into Elaichi once; an API key works too if you prefer. Second, in Claude go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Each person then signs in to Intercom with their own login, and nobody else on the team ever needs to see that client ID or secret again.

### Does Intercom work with ChatGPT and Cursor as well as Claude?

Yes. Once Intercom is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, is what you add to Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect Intercom once and every client picks it up.

### What can an AI agent actually do with my Intercom data?

With Intercom connected, an agent can read and summarize conversations, reply to a customer, assign or close conversations, and start a new one. It can look up, create, update, and delete contacts and companies, apply and manage tags, and see which admins and teams exist in your workspace. Because Intercom exposes many actions, short concrete asks such as "reply to the open conversation with Acme" work better than long paragraphs.

### Does connecting Intercom give the AI everything in my workspace?

No. Access follows the person who signed in, so an agent working through Intercom sees only the conversations, contacts, and companies that person's Intercom seat already allows. Elaichi can narrow that further with restrictions, and it can never widen it beyond what Intercom itself grants.

### Can my team share one Intercom connection?

Yes. One person connects Intercom in Elaichi and shares it with a team, and nobody else has to handle the client ID, secret, or API key. Each teammate still signs in to Intercom as themselves, so every reply and record change in the audit log carries the right person's name.

### Can I stop an agent from deleting or changing things in Intercom?

Yes. Restrictions in Elaichi work per action, so you can allow reading Intercom conversations and contacts while blocking replies, updates, or deletes of contacts and companies. A blocked action is never shown to Claude, ChatGPT, or Cursor at all, so no prompt, however worded, can reach it.

### What happens to an Intercom connection when someone leaves?

Offboarding a person in Elaichi ends their access to Intercom through every connected client immediately. If they were using a shared Intercom connection, it keeps working for everyone else on the team. When you eventually want Intercom gone entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other client at the same time.

## All 98 Intercom tools

Every tool below is callable through https://api.elaichi.ai/mcp once Intercom is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Intercom teams** (List). Get a list of all teams in Intercom. Returns team objects including key fields such as team id, name, and description.
- **Get single Intercom team by ID** (Get). Get details of a specific team in Intercom by id. Returns the team's information including an array of admins belonging to the team.
- **List all Intercom admins** (List). Get a list of admins in Intercom. Returns the admins array containing admin objects associated with the workspace.
- **Get single Intercom admin by ID** (Get). Get details of a single admin in Intercom by id. Returns admin fields including unique identifier and other admin details.
- **Intercom admins me** (Action). Get information about the currently authorised admin in Intercom. Returns admin details and embedded app object. Note: Do not accept sign-ins from users with unverified email addresses due to security risks.
- **Update a Intercom admin by ID** (Update). Set an admin's away status in Intercom using id. Requires away_mode_enabled to enable away mode and away_mode_reassign to assign new conversation replies to default inbox. Returns updated admin status.
- **List all Intercom companies** (List). Get companies filtered by company_id, name, segment_id, or tag_id in Intercom. Returns companies array with company details including id, name, and attributes.
- **Get single Intercom company by ID** (Get). Get information about a specific company by id in Intercom. Returns fields including company id, name, and attributes.
- **Create a Intercom company** (Create). Create or update a company in Intercom using company_id. Returns the company object including fields like company_id, name, plan, size, website, industry, custom_attributes, remote_created_at, and monthly_spend.
- **Update a Intercom company by ID** (Update). Update a company by id in Intercom. The response returns the updated company object including its id, name, and other attributes. Note: company_id cannot be updated once set.
- **Delete a Intercom company by ID** (Delete). Delete a company by id in Intercom. The response confirms the deletion of the company identified by id.
- **List all Intercom tags** (List). List all tags in Intercom. Returns an array of tags with their id, name, and description fields.
- **Get single Intercom tag by ID** (Get). Get details of a specific tag by id in Intercom. Returns the tag object including its unique identifier and attributes.
- **Delete a Intercom tag by ID** (Delete). Delete tag by id in Intercom.
- **List all Intercom contacts** (List). Get a list of all contacts in Intercom. Returns contacts array with each contact's details.
- **Get single Intercom contact by ID** (Get). Get contact details by id in Intercom. Returns fields including contact id, name, email, and creation date.
- **Create a Intercom contact** (Create). Create a new contact in Intercom with email. Returns contact id, email, name, phone, and custom attributes.
- **Update a Intercom contact by ID** (Update). Update a contact by id in Intercom. Returns updated contact fields including email, name, phone, role, owner_id, and custom_attributes.
- **Delete a Intercom contact by ID** (Delete). Delete a contact by id in Intercom.
- **List all Intercom conversations** (List). Get a list of all conversations in Intercom. Returns conversation id, created_at, updated_at, state, open status, priority, and other key conversation details.
- **Get single Intercom conversation by ID** (Get). Get details of a single conversation in Intercom by id. Returns fields including type, id, created_at, updated_at, source message, contacts, state, tags, priority, and conversation_parts with total_count.
- **Intercom conversations manage** (Action). Manage a conversation in Intercom by closing, snoozing, opening, or assigning it using id. Returns the updated conversation object including status and assignee details.
- **Intercom conversations reply** (Reply). Reply to a conversation in Intercom using id. Returns the updated conversation object including id, updated_at, and conversation parts.
- **Create a Intercom conversation** (Create). Create a conversation in Intercom with from.type, from.id, and body. Returns the created message including message content and sender details.
- **Update a Intercom conversation by ID** (Update). Update a conversation by id in Intercom. Returns the updated conversation including fields such as read status, title, and custom attributes.
- **Delete a Intercom conversation by ID** (Delete). Delete a conversation by id in Intercom.
- **List all Intercom conversation search** (List). Search conversations in Intercom using a query object with filters. Returns conversations matching the filters with fields like id, created_at, updated_at, source details, state, priority, and conversation_rating.
- **List all Intercom articles** (List). Get a list of all articles in Intercom. Returns articles sorted by updated_at in descending order with fields including article id, title, and updated_at timestamp.
- **Get single Intercom article by ID** (Get). Get details of a single article in Intercom by id. Returns fields including article id, title, body, and metadata.
- **Create a Intercom article** (Create). Create a new article in Intercom with required title and author_id. Returns translated_content including title, description, body, author_id, state, created_at, updated_at, and url for each language.
- **Update a Intercom article by ID** (Update). Update an article in Intercom by id. Returns the updated article including title, description, body, author_id, state, parent_id, parent_type, and translated_content.
- **Delete a Intercom article by ID** (Delete). Delete an article by id in Intercom.
- **List all Intercom articles search** (List). Search articles in Intercom by help_center_id, phrase, and state. Returns articles with fields including id, title, and body. Highlighted matching content is included if highlight is true.
- **List all Intercom help centers** (List). List all Help Centers in Intercom. Returns an array of help_centers with their details.
- **Get single Intercom help center by ID** (Get). Get details of a specific Help Center in Intercom by id. Returns the help_center object with its unique identifier and associated information.
- **List all Intercom news items** (List). List all news items in Intercom. Returns an array of news items with details such as id, title, and body.
- **Get single Intercom news item by ID** (Get). Get details of a specific news item in Intercom using id. Returns the news_item object with all relevant fields.
- **Create a Intercom news item** (Create). Create a news item in Intercom with title and sender_id. Returns the created news item including id, title, body, state, and sender_id.
- **Update a Intercom news item by ID** (Update). Update a news item by id in Intercom. Requires title, sender_id. Returns updated news item fields including title, body, sender_id, state, reactions, and newsfeed assignments.
- **Delete a Intercom news item by ID** (Delete). Delete a news item by id in Intercom.
- **List all Intercom help center collections** (List). List all help center collections in Intercom. Returns collections sorted by updated_at in descending order with fields including collection details.
- **Get single Intercom help center collection by ID** (Get). Get details of a single collection in Intercom by id. Returns collection fields including id, name, description, and created_at.
- **Create a Intercom help center collection** (Create). Create a new help-center-collection with name in Intercom. Returns the created collection including its id and name.
- **Update a Intercom help center collection by ID** (Update). Update a collection by id in Intercom. Requires id. Returns the updated collection with fields including name, description, translated_content, and parent_id.
- **Delete a Intercom help center collection by ID** (Delete). Delete a help center collection by id in Intercom.
- **List all Intercom activity logs** (List). List all activity logs filtered by created_at_after and created_at_before timestamps in Intercom. Returns activity_logs with details of admin activities within the specified time range.
- **List all Intercom scroll companies** (List). Get a scroll of all companies in Intercom using scroll_param. Returns companies array. Only one scroll can be open per app and scroll expires after 1 minute of inactivity or at end of data.
- **List all Intercom me** (List). Get information about the currently authorised admin in Intercom. Returns fields including admin details and embedded app object (workspace). Do not accept sign-ins from users with unverified email addresses.
- **List all Intercom search conversations** (List). Search conversations in Intercom using a query object with filters. Returns conversations matching the filters with fields like id, created_at, source.type, state, and conversation_rating.score. Supports up to 2 nested filters and 15 filters per group.
- **List all Intercom search contacts** (List). Search contacts in Intercom using a query object with filters. Returns contacts matching the filters with fields such as id, name, email, and created_at.
- **List all Intercom search articles** (List). Search articles in Intercom by phrase, state, and help_center_id. Returns articles with fields including id, title, and body. Requires phrase, state, and help_center_id parameters.
- **List all Intercom search tickets** (List). Search tickets in Intercom using a query object with filters. Returns an array of tickets matching the search criteria.
- **List all Intercom ticket types** (List). List all ticket types in Intercom. Returns ticket_types array with details of each ticket type.
- **Create a Intercom ticket type** (Create). Create a ticket type in Intercom. Requires name. Returns id, name, description, icon, workspace_id, category, archived, created_at, updated_at, is_internal, ticket_type_attributes (default_title and default_description), and ticket_states for the ticket type.
- **Get single Intercom ticket by ID** (Get). Get details of a specific ticket in Intercom using id. Returns ticket fields including id, subject, description, status, and created_at.
- **Create a Intercom ticket** (Create). Create a ticket in Intercom with ticket_type_id and contacts. Returns the created ticket including its id, type, contacts, and attributes.
- **Update a Intercom ticket by ID** (Update). Update a ticket by id in Intercom. Requires id. Returns updated ticket fields including ticket_attributes, assignment, open status, snoozed_until timestamp, and ticket_state_id.
- **Delete a Intercom ticket by ID** (Delete). Delete a ticket by id in Intercom. Requires the unique ticket identifier id. No content is returned in the response.
- **List all Intercom attachments** (List). Get details of a specific conversation in Intercom by id. Returns the Conversation model including up to 500 most recent conversation parts.
- **Intercom attachments download** (Download). Use this endpoint to fetch information and download the files attached to specific parts of a conversation.

- **List all Intercom data attributes** (List). List all data attributes for a specified model in Intercom. Requires model parameter to specify contact, company, or conversation. Returns attributes including id, name, and type.
- **Create a Intercom data attribute** (Create). Create a data attribute with name, model, and data_type in Intercom. Returns the created attribute's id, name, model, data_type, description, and messenger_writable status.
- **Update a Intercom data attribute by ID** (Update). Update a data attribute by id in Intercom. Returns updated fields including description, archived status, messenger_writable flag, and options for list attributes. Note: data type cannot be changed via API.
- **List all Intercom content import sources** (List). List all content import sources in Intercom. Returns an array of sources with fields including id, name, and type.
- **Get single Intercom content import source by ID** (Get). Get a content import source by id in Intercom. Returns fields including the unique identifier and source details.
- **Create a Intercom content import source** (Create). Create a content import source with sync_behavior and url in Intercom. Returns content_import_source with details including status and url.
- **Update a Intercom content import source by ID** (Update). Update a content import source by id in Intercom. Requires id, sync_behavior set to 'api', and url. Returns updated content import source with fields including id, sync_behavior, status, and url.
- **Delete a Intercom content import source by ID** (Delete). Delete a content import source by id in Intercom. This operation also deletes all external pages imported from this source.
- **List all Intercom external pages** (List). Get a list of all external pages in Intercom. Returns external_pages array with details about each external page.
- **Get single Intercom external page by ID** (Get). Get an external page by id in Intercom. Returns the external page's unique identifier and related content.
- **Create a Intercom external page** (Create). Create or update an external page in Intercom with source_id and external_id. Returns external_page with id, title, html, url, locale, ai_agent_availability, and ai_copilot_availability fields.
- **Update a Intercom external page by ID** (Update). Update an existing external page in Intercom by id. Requires title, html, url, locale, source_id, and optionally fin_availability and external_id. Returns the updated external_page with its details.
- **Delete a Intercom external page by ID** (Delete). Delete an external page by id in Intercom. Removes the page from the content library UI and disables its use for AI answers.
- **List all Intercom attached contacts** (List). Get a list of all contacts attached to a company in Intercom. Requires company id. Returns contacts array with contact details.
- **List all Intercom notes** (List). Get a list of notes associated with a contact in Intercom. Requires id. Returns notes with details such as id, body, and creation timestamps.
- **Create a Intercom note** (Create). Create a note for a contact in Intercom using id. Returns the created note including its text and identifiers.
- **Get single Intercom note by ID** (Get). Get details of a specific note by id in Intercom. Returns fields including note id, body, and associated user or admin information.
- **List all Intercom attached segments** (List). Get list of segments attached to a contact in Intercom. Requires contact id. Returns segments array with segment details.
- **List all Intercom contact subscriptions** (List). Get a list of subscription types for a contact in Intercom by contact_id. Returns subscription type objects showing opt-in and opt-out statuses.
- **Create a Intercom contact subscription** (Create). Add a subscription to a contact in Intercom using contact_id. Requires id and consent_type (opt_in or opt_out). Returns subscription_type model with details of the added subscription.
- **Delete a Intercom contact subscription by ID** (Delete). Remove a specific subscription from a contact in Intercom using contact_id and id. Returns the subscription type model for the removed subscription.
- **List all Intercom data events** (List). List all data events for a user in Intercom using user_id, email, or intercom_user_id. Returns event details including event name, created_at timestamp, and metadata. Only events less than 90 days old can be listed.
- **Create a Intercom data event** (Create). Submit a data event with event_name and created_at timestamp for a user identified by id, user_id, or email in Intercom. The response is 202 Accepted with an empty body.
- **Create a Intercom message** (Create). Create a message with message_type, subject, body, template, from (admin type and id), and to (user or lead type and id) in Intercom. Returns the created message including id, body, and created_at.
- **List all Intercom news feeds** (List). Get a list of all newsfeeds in Intercom. Returns an array of newsfeed objects including key fields such as id, type, and content. The response also includes total_count indicating the total number of newsfeeds.
- **Get single Intercom news feed by ID** (Get). Get details of a specific newsfeed in Intercom by id. Returns fields including the newsfeed's unique identifier, title, body, and creation date.
- **List all Intercom live news feeds** (List). Get all live newsfeed items for a newsfeed in Intercom using id. Returns fields including id, title, body, and created_at for each live newsfeed item.
- **List all Intercom segments** (List). Get a list of all segments in Intercom. Returns segments with their id, name, and optionally the count of contacts in each segment if include_count is true.
- **Get single Intercom segment by ID** (Get). Get details of a single segment by id in Intercom. Returns segment fields including id, name, and created_at.
- **Create a Intercom phone switch** (Create). Create a phone switch by sending an SMS with a Messenger link to the specified phone number in Intercom. Requires phone number in E.164 format. Returns phone_call_redirects with details of the SMS sent.
- **List all Intercom contact tags** (List). Get a list of all tags attached to a specific contact in Intercom. Requires contact id. Returns tags with their details.
- **Create a Intercom contact tag** (Create). Add a tag to a contact in Intercom using contact id and tag id. Returns the tag object added to the contact.
- **Delete a Intercom contact tag by ID** (Delete). Remove tag from a contact in Intercom using contact_id and id. Returns the tag object for the removed tag.
- **List all Intercom ticket states** (List). List all ticket states in Intercom. Returns ticket_states array with details of each ticket state.
- **Get single Intercom visitor by ID** (Get). Get details of a single visitor in Intercom by user_id. Returns visitor's id, user_id, anonymous status, email, phone, name, pseudonym, avatar, app_id, companies, location_data, timestamps, session_count, social_profiles, owner_id, email subscription status, spam and bounce status, tags, segments, custom_attributes, referrer, utm parameters, and do_not_track flag.
- **Update a Intercom visitor by ID** (Update). Update an existing visitor in Intercom by providing id or user_id. Returns the updated visitor object including id and name fields.
- **Create a Intercom ticket type attribute** (Create). Create a new ticket type attribute in Intercom for a specific ticket_type_id. Returns fields such as id (attribute id), workspace_id, name, description, data_type, input_options, order, required_to_create, required_to_create_for_contacts, visible_on_create, visible_to_contacts, default, ticket_type_id, archived, created_at, and updated_at in the response.
- **Update a Intercom ticket type attribute by ID** (Update). Update an existing ticket-type-attributes resource in Intercom using ticket_type_id and id. Returns fields such as id, workspace_id, name, description, data_type, order, required_to_create, required_to_create_for_contacts, visible_on_create, visible_to_contacts, default, ticket_type_id, archived, created_at, and updated_at in the response. You can use this endpoint to archive an attribute as well.
