View as Markdown

Intercom Integration

Manage Intercom contacts and conversations

The Intercom integration provides access to manage Intercom contacts and conversations through the Integrate MCP server.

Installation

The Intercom integration is included with the SDK:

import { intercomIntegration } from "integrate-sdk/server";

Setup

1. Create an Intercom OAuth App

  1. Go to Intercom Developer Hub
  2. Create a new OAuth application
  3. Configure your redirect URI
  4. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the Intercom integration to your server configuration. The integration automatically reads INTERCOM_CLIENT_ID and INTERCOM_CLIENT_SECRET from your environment variables:

import { createMCPServer, intercomIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    intercomIntegration({
    }),
  ],
});

You can override the environment variables by passing explicit values:

intercomIntegration({
  clientId: process.env.CUSTOM_INTERCOM_ID,
  clientSecret: process.env.CUSTOM_INTERCOM_SECRET,
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("intercom");
const result = await client.intercom.listContacts({});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, intercomIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [intercomIntegration()],
});

Configuration Options

export interface IntercomIntegrationConfig {
  /** Intercom OAuth client ID (defaults to INTERCOM_CLIENT_ID env var) */
  clientId?: string;

Tools

intercom_list_contacts

List contacts

export interface IntercomListContactsParams {
    /** Number of results per page */
    per_page?: number;

intercom_get_contact

Get contact details

export interface IntercomGetContactParams {
    /** Contact ID */
    contact_id: string;

intercom_create_contact

Create a new contact

export interface IntercomCreateContactParams {
    /** Contact role */
    role?: "user" | "lead";

intercom_list_conversations

List conversations

export interface IntercomListConversationsParams {
    /** Number of results per page */
    per_page?: number;

intercom_get_conversation

Get conversation details

export interface IntercomGetConversationParams {
    /** Conversation ID */
    conversation_id: string;

intercom_reply_conversation

Reply to a conversation

export interface IntercomReplyConversationParams {
    /** Conversation ID */
    conversation_id: string;

intercom_list_companies

List companies

export interface IntercomListCompaniesParams {
    /** Number of results per page */
    per_page?: number;

intercom_get_company

Get company details

export interface IntercomGetCompanyParams {
    /** Company ID */
    company_id: string;

intercom_search_contacts

Search for contacts

export interface IntercomSearchContactsParams {
    /** Search query */
    query: {
      /** Field to search */
      field: string;

Notes

  • Category: Business
  • Authentication mode: OAuth