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
- Go to Intercom Developer Hub
- Create a new OAuth application
- Configure your redirect URI
- 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