# How to connect Intercom MCP with VS Code

```json
{
  "title": "How to connect Intercom MCP with VS Code",
  "toolkit": "Intercom",
  "toolkit_slug": "intercom",
  "framework": "VS Code",
  "framework_slug": "vscode",
  "url": "https://composio.dev/toolkits/intercom/framework/vscode",
  "markdown_url": "https://composio.dev/toolkits/intercom/framework/vscode.md",
  "updated_at": "2026-05-06T08:16:46.856Z"
}
```

## Introduction

### How to connect Intercom MCP with VS Code
VS Code is the most popular code editor out there. With its recent AI makeover, it can do more than just help you write code. You can connect your applications to it and let LLMs automate many of the mundane tasks in your workflow.
In this guide, I will explain how to connect Intercom with VS Code in the most secure and robust way possible via Composio.

## Also integrate Intercom with

- [ChatGPT](https://composio.dev/toolkits/intercom/framework/chatgpt)
- [OpenAI Agents SDK](https://composio.dev/toolkits/intercom/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/intercom/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/intercom/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/intercom/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/intercom/framework/codex)
- [Cursor](https://composio.dev/toolkits/intercom/framework/cursor)
- [OpenCode](https://composio.dev/toolkits/intercom/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/intercom/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/intercom/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/intercom/framework/cli)
- [Google ADK](https://composio.dev/toolkits/intercom/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/intercom/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/intercom/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/intercom/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/intercom/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/intercom/framework/crew-ai)

## TL;DR

### Why use Composio?
Composio provides:
- Access to 1,000+ managed apps from a single MCP endpoint. This makes it convenient for agents to run cross-app workflows.
- Programmatic tool calling. Allows LLMs to write its code in a remote workbench to handle complex tool chaining. Reduces to-and-fro with LLMs for frequent tool calling.
- Large tool response handling outside the LLM context. This minimizes context bloat from large tool responses.
- Dynamic just-in-time access to thousands of tools across hundreds of apps. Composio loads the tools your agent needs, so LLMs are not overwhelmed by tools they do not need.

## Connect Intercom to VS Code

### Integrate Intercom MCP with VS Code
### 1. Install with one click
Click the button below to add Composio to VS Code. You will be prompted to authorize. This requires VS Code 1.99+ with GitHub Copilot.
[+Install in VS Code](vscode:mcp/install?%7B%22name%22%3A%22composio%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fconnect.composio.dev%2Fmcp%22%7D)
### 2. Or add manually
Open or create .vscode/mcp.json in your project root and add the following configuration:

```bash
{
  "servers": {
    "composio": {
      "type": "http",
      "url": "https://connect.composio.dev/mcp"
    }
  }
}
```

## What is the Intercom MCP server, and what's possible with it?

The Intercom MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Intercom account. It provides structured and secure access to your customer engagement platform, so your agent can perform actions like managing conversations, tagging contacts, creating articles, and updating company records on your behalf.
- Conversation management and assignment: Let your agent assign conversations to teams or admins, create new conversations, and close them when resolved, streamlining your support workflow.
- Contact tagging and note creation: Effortlessly tag contacts with relevant labels or add detailed notes for context, making customer follow-ups more organized and actionable.
- Automated company and contact updates: Enable your agent to attach contacts to companies, create or update company records, and keep your Intercom data clean and up to date.
- Article and collection creation: Let your agent publish new articles or create help center collections to expand your self-serve support resources without manual effort.
- Subscription and message preferences management: Allow your agent to add or manage subscriptions for contacts, helping you personalize communication and respect user preferences automatically.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `INTERCOM_ADD_SUBSCRIPTION_TO_A_CONTACT` | Add subscription to a contact | You can add a specific subscription to a contact. in intercom, we have two different subscription types based on user consent - opt-out and opt-in: 1.attaching a contact to an opt-out subscription type will opt that user out from receiving messages related to that subscription type. 2.attaching a contact to an opt-in subscription type will opt that user in to receiving messages related to that subscription type. this will return a subscription type model for the subscription type that was added to the contact. |
| `INTERCOM_ADD_TAG_TO_A_CONTACT` | Add tag to a contact | You can tag a specific contact. this will return a tag object for the tag that was added to the contact. |
| `INTERCOM_ASSIGN_CONVERSATION` | Assign conversation | Assigns a conversation to a specific admin or team in intercom |
| `INTERCOM_ATTACH_A_CONTACT_TO_A_COMPANY` | Attach a contact to a company | You can attach a company to a single contact. |
| `INTERCOM_CLOSE_CONVERSATION` | Close conversation | Closes a conversation in intercom, marking it as resolved |
| `INTERCOM_CREATE_A_COLLECTION` | Create a collection | You can create a new collection by making a post request to `https://api.intercom.io/help center/collections.` |
| `INTERCOM_CREATE_AN_ARTICLE` | Create an article | You can create a new article by making a post request to `https://api.intercom.io/articles`. |
| `INTERCOM_CREATE_A_NOTE` | Create a note | You can add a note to a single contact. |
| `INTERCOM_CREATE_CONVERSATION` | Create conversation | Creates a new conversation in intercom |
| `INTERCOM_CREATE_OR_UPDATE_A_COMPANY` | Create or update a company | You can create or update a company. companies will be only visible in intercom when there is at least one associated user. companies are looked up via `company id` in a `post` request, if not found via `company id`, the new company will be created, if found, that company will be updated. {% admonition type="attention" name="using `company id`" %} you can set a unique `company id` value when creating a company. however, it is not possible to update `company id`. be sure to set a unique value once upon creation of the company. {% /admonition %} |
| `INTERCOM_DELETE_A_COLLECTION` | Delete a collection | You can delete a single collection by making a delete request to `https://api.intercom.io/collections/`. |
| `INTERCOM_DELETE_A_COMPANY` | Delete a company | You can delete a single company. |
| `INTERCOM_DELETE_A_CONTACT` | Delete a contact | You can delete a single contact. |
| `INTERCOM_DELETE_AN_ARTICLE` | Delete an article | You can delete a single article by making a delete request to `https://api.intercom.io/articles/`. |
| `INTERCOM_DETACH_A_CONTACT_FROM_A_COMPANY` | Detach a contact from a company | You can detach a company from a single contact. |
| `INTERCOM_GET_A_CONTACT` | Get a contact | You can fetch the details of a single contact. |
| `INTERCOM_GET_CONVERSATION` | Get conversation | Retrieves a specific conversation by id with all messages and details |
| `INTERCOM_IDENTIFY_AN_ADMIN` | Identify an admin | You can view the currently authorised admin along with the embedded app object (a "workspace" in legacy terminology). > 🚧 single sign on > > if you are building a custom "log in with intercom" flow for your site, and you call the `/me` endpoint to identify the logged-in user, you should not accept any sign-ins from users with unverified email addresses as it poses a potential impersonation security risk. |
| `INTERCOM_LIST_ALL_ACTIVITY_LOGS` | List all activity logs | You can get a log of activities by all admins in an app. |
| `INTERCOM_LIST_ALL_ADMINS` | List all admins | You can fetch a list of admins for a given workspace. |
| `INTERCOM_LIST_ALL_ARTICLES` | List all articles | You can fetch a list of all articles by making a get request to `https://api.intercom.io/articles`. > 📘 how are the articles sorted and ordered? > > articles will be returned in descending order on the `updated at` attribute. this means if you need to iterate through results then we'll show the most recently updated articles first. |
| `INTERCOM_LIST_ALL_COLLECTIONS` | List all collections | You can fetch a list of all collections by making a get request to `https://api.intercom.io/help center/collections`. collections will be returned in descending order on the `updated at` attribute. this means if you need to iterate through results then we'll show the most recently updated collections first. |
| `INTERCOM_LIST_ALL_COMPANIES` | List all companies | You can list companies. the company list is sorted by the `last request at` field and by default is ordered descending, most recently requested first. note that the api does not include companies who have no associated users in list responses. when using the companies endpoint and the pages object to iterate through the returned companies, there is a limit of 10,000 companies that can be returned. if you need to list or iterate on more than 10,000 companies, please use the [scroll api](https://developers.intercom.com/reference#iterating-over-all-companies). {% admonition type="warning" name="pagination" %} you can use pagination to limit the number of results returned. the default is `20` results per page. see the [pagination section](https://developers.intercom.com/docs/build-an-integration/learn-more/rest-apis/pagination/#pagination-for-list-apis) for more details on how to use the `starting after` param. {% /admonition %} |
| `INTERCOM_LIST_ALL_HELP_CENTERS` | List all help centers | You can list all help centers by making a get request to `https://api.intercom.io/help center/help centers`. |
| `INTERCOM_LIST_ALL_NOTES` | List all notes | You can fetch a list of notes that are associated to a contact. |
| `INTERCOM_LIST_ATTACHED_COMPANIES_FOR_CONTACT` | List attached companies for contact | You can fetch a list of companies that are associated to a contact. |
| `INTERCOM_LIST_ATTACHED_CONTACTS` | List attached contacts | You can fetch a list of all contacts that belong to a company. |
| `INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_COMPANIES` | List attached segments for companies | You can fetch a list of all segments that belong to a company. |
| `INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_CONTACT` | List attached segments for contact | You can fetch a list of segments that are associated to a contact. |
| `INTERCOM_LIST_CONVERSATIONS` | List conversations | Lists conversations from intercom with filtering and pagination support |
| `INTERCOM_LIST_SUBSCRIPTIONS_FOR_A_CONTACT` | List subscriptions for a contact | You can fetch a list of subscription types that are attached to a contact. these can be subscriptions that a user has 'opted-in' to or has 'opted-out' from, depending on the subscription type. this will return a list of subscription type objects that the contact is associated with. the data property will show a combined list of: 1.opt-out subscription types that the user has opted-out from. 2.opt-in subscription types that the user has opted-in to receiving. |
| `INTERCOM_LIST_TAGS_ATTACHED_TO_A_CONTACT` | List tags attached to a contact | You can fetch a list of all tags that are attached to a specific contact. |
| `INTERCOM_MERGE_A_LEAD_AND_A_USER` | Merge a lead and a user | You can merge a contact with a `role` of `lead` into a contact with a `role` of `user`. |
| `INTERCOM_REMOVE_SUBSCRIPTION_FROM_A_CONTACT` | Remove subscription from a contact | You can remove a specific subscription from a contact. this will return a subscription type model for the subscription type that was removed from the contact. |
| `INTERCOM_REMOVE_TAG_FROM_A_CONTACT` | Remove tag from a contact | You can remove tag from a specific contact. this will return a tag object for the tag that was removed from the contact. |
| `INTERCOM_REOPEN_CONVERSATION` | Reopen conversation | Reopens a closed conversation in intercom |
| `INTERCOM_REPLY_TO_CONVERSATION` | Reply to conversation | Sends a reply to an existing conversation in intercom |
| `INTERCOM_RETRIEVE_A_COLLECTION` | Retrieve a collection | You can fetch the details of a single collection by making a get request to `https://api.intercom.io/help center/collections/`. |
| `INTERCOM_RETRIEVE_A_COMPANY_BY_ID` | Retrieve a company by id | You can fetch a single company. |
| `INTERCOM_RETRIEVE_A_HELP_CENTER` | Retrieve a help center | You can fetch the details of a single help center by making a get request to `https://api.intercom.io/help center/help center/`. |
| `INTERCOM_RETRIEVE_AN_ADMIN` | Retrieve an admin | You can retrieve the details of a single admin. |
| `INTERCOM_RETRIEVE_AN_ARTICLE` | Retrieve an article | You can fetch the details of a single article by making a get request to `https://api.intercom.io/articles/`. |
| `INTERCOM_RETRIEVE_COMPANIES` | Retrieve companies | You can fetch a single company by passing in `company id` or `name`. `https://api.intercom.io/companies?name={name}` `https://api.intercom.io/companies?company id={company id}` you can fetch all companies and filter by `segment id` or `tag id` as a query parameter. `https://api.intercom.io/companies?tag id={tag id}` `https://api.intercom.io/companies?segment id={segment id}` |
| `INTERCOM_SCROLL_OVER_ALL_COMPANIES` | Scroll over all companies | The `list all companies` functionality does not work well for huge datasets, and can result in errors and performance problems when paging deeply. the scroll api provides an efficient mechanism for iterating over all companies in a dataset. - each app can only have 1 scroll open at a time. you'll get an error message if you try to have more than one open per app. you can get the first page of companies by simply sending a get request to the scroll endpoint. for subsequent requests you will need to use the scroll parameter from the response type="danger" name="scroll network timeouts". since scroll is often used on large datasets network errors such as timeouts can be encountered. when this occurs you will see a http 500 error with the following message: "request failed due to an internal network error. please restart the scroll operation." if this happens, you will need to restart your scroll query. |
| `INTERCOM_SEARCH_CONVERSATIONS` | Search conversations | Searches for conversations using query string with support for filtering and sorting |
| `INTERCOM_SEARCH_FOR_ARTICLES` | Search for articles | You can search for articles by making a get request to `https://api.intercom.io/articles/search`. |
| `INTERCOM_SET_AN_ADMIN_TO_AWAY` | Set an admin to away | You can set an admin as away for the inbox. |
| `INTERCOM_UPDATE_A_COLLECTION` | Update a collection | You can update the details of a single collection by making a put request to `https://api.intercom.io/collections/`. |
| `INTERCOM_UPDATE_A_COMPANY` | Update a company | You can update a single company using the intercom provisioned `id`. {% admonition type="attention" name="using `company id`" %} when updating a company it is not possible to update `company id`. this can only be set once upon creation of the company. {% /admonition %} |
| `INTERCOM_UPDATE_A_CONTACT` | Update a contact | You can update an existing contact (ie. user or lead). |
| `INTERCOM_UPDATE_AN_ARTICLE` | Update an article | You can update the details of a single article by making a put request to `https://api.intercom.io/articles/`. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

Once connected, VS Code can access the Intercom MCP server via Composio to run the app actions you authorize, directly from your coding workflow.

## Complete Code

None listed.

## Conclusion

### Way Forward
Now that Intercom is connected, extend your setup by connecting the other apps you already use every day, so your agent can run true cross-app workflows end to end.
- Connect Calendar to turn threads into scheduled meetings automatically.
- Connect Slack or Teams to post summaries, approvals, and alerts where your team works.
- Connect Notion, Linear, Jira, or Asana to convert requests into tickets, tasks, and docs.
- Connect Drive, Dropbox, or OneDrive to fetch, file, and share attachments without manual steps.
- Connect HubSpot or Salesforce to log customer context, update records, and draft follow-ups.
Start with one workflow you do repeatedly, then keep adding apps as you find new handoffs. With everything behind a single MCP endpoint, your agent can coordinate multiple tools safely and reliably in one conversation.

## How to build Intercom MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/intercom/framework/chatgpt)
- [OpenAI Agents SDK](https://composio.dev/toolkits/intercom/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/intercom/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/intercom/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/intercom/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/intercom/framework/codex)
- [Cursor](https://composio.dev/toolkits/intercom/framework/cursor)
- [OpenCode](https://composio.dev/toolkits/intercom/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/intercom/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/intercom/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/intercom/framework/cli)
- [Google ADK](https://composio.dev/toolkits/intercom/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/intercom/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/intercom/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/intercom/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/intercom/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/intercom/framework/crew-ai)

## Related Toolkits

- [Aeroleads](https://composio.dev/toolkits/aeroleads) - Aeroleads is a B2B lead generation platform for finding business emails and phone numbers. Grow your sales pipeline faster with powerful prospecting tools.
- [Autobound](https://composio.dev/toolkits/autobound) - Autobound is an AI-powered sales engagement platform that crafts hyper-personalized outreach and insights. It helps sales teams boost response rates and close more deals through tailored content and recommendations.
- [Better proposals](https://composio.dev/toolkits/better_proposals) - Better Proposals is a web-based tool for crafting and sending professional proposals. It helps teams impress clients and close deals faster with slick, easy-to-use templates.
- [Bidsketch](https://composio.dev/toolkits/bidsketch) - Bidsketch is a proposal software that helps businesses create professional proposals quickly and efficiently. It streamlines the proposal process, saving time while boosting client win rates.
- [Bolna](https://composio.dev/toolkits/bolna) - Bolna is an AI platform for building conversational voice agents. It helps businesses automate support and streamline interactions through natural, voice-powered conversations.
- [Botsonic](https://composio.dev/toolkits/botsonic) - Botsonic is a no-code AI chatbot builder for easily creating and deploying chatbots to your website. It empowers businesses to offer conversational experiences without writing code.
- [Botstar](https://composio.dev/toolkits/botstar) - BotStar is a comprehensive chatbot platform for designing, developing, and training chatbots visually on Messenger and websites. It helps businesses automate conversations and customer interactions without coding.
- [Callerapi](https://composio.dev/toolkits/callerapi) - CallerAPI is a white-label caller identification platform for branded caller ID and fraud prevention. It helps businesses boost customer trust while stopping spam, fraud, and robocalls.
- [Callingly](https://composio.dev/toolkits/callingly) - Callingly is a lead response management platform that automates immediate call and text follow-ups with new leads. It helps sales teams boost response speed and close more deals by connecting seamlessly with CRMs and lead sources.
- [Callpage](https://composio.dev/toolkits/callpage) - Callpage is a lead capture platform that lets businesses instantly connect with website visitors via callback. It boosts lead generation and increases your sales conversion rates.
- [Clearout](https://composio.dev/toolkits/clearout) - Clearout is an AI-powered service for verifying, finding, and enriching email addresses. It boosts deliverability and helps you discover high-quality leads effortlessly.
- [Clientary](https://composio.dev/toolkits/clientary) - Clientary is a platform for managing clients, invoices, projects, proposals, and more. It streamlines client work and saves you serious admin time.
- [Convolo ai](https://composio.dev/toolkits/convolo_ai) - Convolo ai is an AI-powered communications platform for sales teams. It accelerates lead response and improves conversion rates by automating calls and integrating workflows.
- [Delighted](https://composio.dev/toolkits/delighted) - Delighted is a customer feedback platform based on the Net Promoter System®. It helps you quickly gather, track, and act on customer sentiment.
- [Docsbot ai](https://composio.dev/toolkits/docsbot_ai) - Docsbot ai is a platform that lets you build custom AI chatbots trained on your documentation. It automates customer support and content generation, saving time and improving response quality.
- [Emelia](https://composio.dev/toolkits/emelia) - Emelia is an all-in-one B2B prospecting platform for cold-email, LinkedIn outreach, and prospect research. It streamlines outbound campaigns so you can find, engage, and warm up leads faster.
- [Findymail](https://composio.dev/toolkits/findymail) - Findymail is a B2B data provider offering verified email and phone contacts for sales prospecting. Enhance outreach with automated exports, email verification, and CRM enrichment.
- [Freshdesk](https://composio.dev/toolkits/freshdesk) - Freshdesk is customer support software with ticketing and automation tools. It helps teams streamline helpdesk operations for faster, better customer support.
- [Fullenrich](https://composio.dev/toolkits/fullenrich) - FullEnrich is a B2B contact enrichment platform that aggregates emails and phone numbers from 15+ data vendors. Instantly find and verify lead contact data to boost your outreach.
- [Gatherup](https://composio.dev/toolkits/gatherup) - GatherUp is a customer feedback and online review management platform. It helps businesses boost their reputation by streamlining how they collect and manage customer feedback.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Intercom MCP?

With a standalone Intercom MCP server, the agents and LLMs can only access a fixed set of Intercom tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Intercom and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with VS Code?

Yes, you can. VS Code fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Intercom tools.

### Can I manage the permissions and scopes for Intercom while using Tool Router?

Yes, absolutely. You can configure which Intercom scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Intercom data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
