# Intercom MCP Server - Tools Summary **Total Tools: 71** All tool files have been successfully created under `src/tools/` with proper Zod validation schemas and MCP tool definitions. ## Tool Files (12) ### 1. contacts.ts (10 tools) - `intercom_list_contacts` - List all contacts with cursor pagination - `intercom_get_contact` - Retrieve a specific contact by ID - `intercom_create_contact` - Create a new contact (user or lead) - `intercom_update_contact` - Update an existing contact - `intercom_delete_contact` - Permanently delete a contact - `intercom_search_contacts` - Search contacts using filters - `intercom_scroll_contacts` - Scroll through all contacts (large datasets) - `intercom_merge_contacts` - Merge one contact into another - `intercom_archive_contact` - Archive a contact - `intercom_unarchive_contact` - Unarchive a contact ### 2. conversations.ts (11 tools) - `intercom_list_conversations` - List all conversations - `intercom_get_conversation` - Retrieve a specific conversation with parts - `intercom_create_conversation` - Create a new conversation - `intercom_search_conversations` - Search conversations using filters - `intercom_reply_conversation` - Reply with comment or note - `intercom_assign_conversation` - Assign to admin or team - `intercom_close_conversation` - Close a conversation - `intercom_open_conversation` - Reopen a conversation - `intercom_snooze_conversation` - Snooze until specific time - `intercom_tag_conversation` - Add a tag to conversation - `intercom_untag_conversation` - Remove a tag from conversation ### 3. companies.ts (7 tools) - `intercom_list_companies` - List all companies - `intercom_get_company` - Retrieve a specific company - `intercom_create_company` - Create a new company - `intercom_update_company` - Update an existing company - `intercom_scroll_companies` - Scroll through all companies - `intercom_attach_contact_to_company` - Link contact to company - `intercom_detach_contact_from_company` - Unlink contact from company ### 4. articles.ts (5 tools) - `intercom_list_articles` - List all help center articles - `intercom_get_article` - Retrieve a specific article - `intercom_create_article` - Create a new article - `intercom_update_article` - Update an existing article - `intercom_delete_article` - Permanently delete an article ### 5. help-center.ts (10 tools) - `intercom_list_help_centers` - List all help centers - `intercom_get_help_center` - Retrieve a specific help center - `intercom_list_collections` - List all collections - `intercom_get_collection` - Retrieve a specific collection - `intercom_create_collection` - Create a new collection - `intercom_update_collection` - Update an existing collection - `intercom_delete_collection` - Delete a collection - `intercom_list_sections` - List sections in a collection - `intercom_get_section` - Retrieve a specific section - `intercom_create_section` - Create a new section ### 6. tickets.ts (7 tools) - `intercom_list_tickets` - List all tickets - `intercom_get_ticket` - Retrieve a specific ticket - `intercom_create_ticket` - Create a new ticket - `intercom_update_ticket` - Update an existing ticket - `intercom_search_tickets` - Search tickets using filters - `intercom_list_ticket_types` - List available ticket types - `intercom_get_ticket_type` - Retrieve ticket type with attributes ### 7. tags.ts (8 tools) - `intercom_list_tags` - List all tags - `intercom_get_tag` - Retrieve a specific tag - `intercom_create_tag` - Create a new tag - `intercom_delete_tag` - Delete a tag - `intercom_tag_contact` - Apply tag to contact - `intercom_untag_contact` - Remove tag from contact - `intercom_tag_company` - Apply tag to company - `intercom_untag_company` - Remove tag from company ### 8. segments.ts (2 tools) - `intercom_list_segments` - List all segments - `intercom_get_segment` - Retrieve a specific segment ### 9. events.ts (2 tools) - `intercom_submit_event` - Submit a data event for a user - `intercom_list_event_summaries` - List event summaries for user/company ### 10. messages.ts (4 tools) - `intercom_send_message` - Send in-app, email, or push message - `intercom_send_inapp_message` - Send in-app message (shortcut) - `intercom_send_email_message` - Send email message (shortcut) - `intercom_send_push_message` - Send push notification (shortcut) ### 11. teams.ts (2 tools) - `intercom_list_teams` - List all teams - `intercom_get_team` - Retrieve a specific team ### 12. admins.ts (3 tools) - `intercom_list_admins` - List all admins - `intercom_get_admin` - Retrieve a specific admin - `intercom_set_admin_away` - Set admin away mode status ## Technical Details ### Architecture - Each tool file exports `getTools(client: IntercomClient)` function - Returns array of objects with `definition` (MCP Tool) and `handler` (async function) - All inputs validated using Zod schemas - Consistent naming: `intercom_verb_noun` ### Index File `src/tools/index.ts` provides: - `getAllTools(client)` - Returns all 71 tools with handlers - `getToolDefinitions(client)` - Returns only MCP tool definitions - `getToolHandler(client, toolName)` - Returns specific tool handler ### Intercom API Features Covered - ✅ Contacts (list, get, create, update, delete, search, scroll, merge, archive) - ✅ Conversations (list, get, create, search, reply, assign, close, open, tag) - ✅ Companies (list, get, create, update, scroll, attach/detach contacts) - ✅ Articles (list, get, create, update, delete) - ✅ Help Center (collections, sections) - ✅ Tickets (list, get, create, update, search, types) - ✅ Tags (list, get, create, delete, tag/untag contacts and companies) - ✅ Segments (list, get) - ✅ Events (submit, list summaries) - ✅ Messages (in-app, email, push) - ✅ Teams (list, get) - ✅ Admins (list, get, away mode) ### TypeScript Compilation ✅ All files pass `npx tsc --noEmit` with no errors ## Usage Example ```typescript import { getAllTools } from './tools/index.js'; import { IntercomClient } from './clients/intercom.js'; const client = new IntercomClient({ accessToken: 'your-token' }); const tools = getAllTools(client); // Register tools with MCP server tools.forEach(({ definition, handler }) => { server.registerTool(definition, handler); }); ``` ## Next Steps To integrate these tools into the main server: 1. Update `src/server.ts` to use `getAllTools()` from `./tools/index.js` 2. Replace the manual tool registration with the modular approach 3. Test each tool category with real Intercom API calls