Skip to main content
Glama
Kommo CRM MCP Server

Kommo CRM MCP Server

by E0DUAR

Kommo CRM MCP Server & SDK

Model Context Protocol (MCP) server and TypeScript/JavaScript SDK for Kommo CRM (formerly AmoCRM) API v4.

npm version License: MIT

This package provides a dual-purpose solution:

  1. MCP Server: Connect Kommo CRM to AI agents like Claude Desktop, providing them with tools to manage Leads, Contacts, Companies, Tasks, and more.

  2. SDK: A type-safe, complete TypeScript SDK for interacting with the Kommo API v4 in your own applications.


🚀 Features

  • Complete CRUD: Full management of Leads, Contacts, Companies, Deals, Tasks, and Notes.

  • Advanced Features:

    • Manage Pipelines and Statuses.

    • Handle Custom Fields intelligently (search by name, metadata awareness).

    • Catalogs & Products support (including linking products to leads).

  • AI-Ready: Designed with semantic tools optimized for LLM usage.

  • Type-Safe: Built with TypeScript and Zod for robust validation.

  • Dual Build: Supports both ESM (import) and CommonJS (require).


Related MCP server: AI-Assisted CRM MCP Server

📦 Installation

npm install @syncraengine/kommo-mcp

🤖 Usage as MCP Server (Claude Desktop)

To use this with Claude Desktop or any MCP client, add the following configuration to your claude_desktop_config.json (Mac: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\).

Configuration

{
  "mcpServers": {
    "kommo-crm": {
      "command": "npx",
      "args": [
        "-y",
        "@syncraengine/kommo-mcp"
      ],
      "env": {
        "KOMMO_SUBDOMAIN": "your-subdomain",
        "KOMMO_ACCESS_TOKEN": "your-long-lived-access-token"
      }
    }
  }
}

Environment Variables

Variable

Description

Required

KOMMO_ACCESS_TOKEN

OAuth 2.0 Access Token (Long-lived recommended for MCP)

✅ Yes

KOMMO_SUBDOMAIN

Your Kommo subdomain (e.g., mycompany for mycompany.kommo.com)

✅ Yes (or BASE_URL)

KOMMO_BASE_URL

Full URL (e.g., https://mycompany.kommo.com)

Optional


📚 Usage as Library (SDK)

You can use the exported functions directly in your TypeScript/Node.js projects.

import { 
  searchContactByPhone, 
  createLead, 
  getKommoConfig,
  type KommoConfig 
} from '@syncraengine/kommo-mcp';

// 1. Configure
const config: KommoConfig = {
  baseUrl: 'https://your-subdomain.kommo.com',
  accessToken: process.env.KOMMO_ACCESS_TOKEN!
};

// 2. Use functions
async function main() {
  // Search for a contact
  const searchResult = await searchContactByPhone({ phone: '+1234567890' }, config);
  
  if (searchResult.success && searchResult.contacts.length > 0) {
    const contact = searchResult.contacts[0];
    console.log(`Found contact: ${contact.name}`);
    
    // Create a lead for this contact
    const leadResult = await createLead({
      name: 'New Deal from Website',
      price: 500,
      _embedded: {
        contacts: [{ id: contact.id }]
      }
    }, config);
    
    console.log('Lead created:', leadResult);
  }
}

main();

🛠️ Available Tools (MCP)

The server exposes ~40 tools to the AI, covering:

  • Contacts: kommo_search_contact_by_phone, kommo_create_contact, kommo_update_contact, etc.

  • Leads: kommo_list_leads, kommo_create_lead, kommo_update_lead, kommo_update_lead_custom_fields, etc.

  • Companies: kommo_search_company, kommo_create_company, kommo_update_company.

  • Tasks: kommo_list_tasks, kommo_create_task, kommo_update_task.

  • Notes: kommo_list_notes, kommo_create_note.

  • Pipelines: kommo_list_pipelines, kommo_get_pipeline_statuses.

  • Products: kommo_list_catalogs, kommo_link_product_to_lead.


👨‍💻 Development

If you want to contribute or modify the package:

  1. Clone the repository:

    git clone https://github.com/syncraengine/kommo-mcp.git
    cd kommo-mcp
  2. Install dependencies:

    npm install
  3. Build:

    npm run build

    This generates both ESM (dist/esm) and CommonJS (dist/cjs) builds.

  4. Test locally (MCP): You can use the MCP Inspector to test the server.

    npx @modelcontextprotocol/inspector npx tsx src/bin/mcp-server.ts

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


Built with ❤️ by Eduardo Mendez

Available Tools

39 tools
kommo_create_companyC

Create a new company

Inputs: name (required), responsible_user_id.

kommo_create_contactC

Create a new contact

Inputs: name (required), first_name, last_name, responsible_user_id.

kommo_create_dealD

Create a new deal

Inputs: name (required), price, status_id, pipeline_id.

kommo_create_leadC

Create a new lead

Inputs: name, price, status_id, pipeline_id.

kommo_create_noteC

Create a new note for an entity

Inputs: entityType (required), entityId (required), text (required).

kommo_create_taskC

Create a new task

Inputs: text (required), complete_till (required), entity_id (required), entity_type (required).

kommo_get_companyC

Get a company by ID

Inputs: companyId (required).

kommo_get_contactB

Get a contact by ID

Inputs: contactId (required).

kommo_get_dealB

Get a deal by ID

Inputs: dealId (required).

kommo_get_leadC

Get a lead by ID

Inputs: leadId (required).

kommo_get_leads_by_contactB

Get all leads associated with a contact

Inputs: contactId (required).

kommo_get_noteC

Get a specific note

Inputs: noteId (required), entityType (required).

kommo_get_pipeline_statusesA

Get all statuses (stages) for a specific pipeline. IMPORTANT: Use this to find a valid status_id before moving a lead to a different pipeline.

Inputs: pipelineId (required).

kommo_get_select_field_optionsB

Get valid options for a select/dropdown custom field

Inputs: leadId (required), fieldId (required).

kommo_get_taskB

Get a task by ID

Inputs: taskId (required).

kommo_list_catalog_elementsC

List elements (products) within a catalog

Inputs: catalog_id (required), page, limit.

kommo_list_catalogsA

List all catalogs (e.g., Products, Services)

Inputs: no named parameters.

kommo_list_companiesC

List all companies

Inputs: page, limit.

kommo_list_contactsC

List contacts with filters

Inputs: page, limit, query, responsible_user_id.

kommo_list_dealsC

List deals with filters

Inputs: page, limit, responsible_user_id.

kommo_list_leadsC

List leads with filters

Inputs: status_id, pipeline_id, responsible_user_id, page, +1 more.

kommo_list_notesC

List notes for a specific entity

Inputs: entityType (required), entityId, page, limit.

kommo_list_pipelinesB

List all pipelines

Inputs: no named parameters.

kommo_list_tasksC

List tasks with filters

Inputs: entity_type, entity_id, is_completed.

kommo_search_companyC

Search for companies by query

Inputs: query (required).

kommo_search_contact_by_emailC

Search for contacts by email

Inputs: email (required).

kommo_search_contact_by_phoneC

Search for contacts by phone number

Inputs: phone (required), name.

kommo_search_dealC

Search for deals by query

Inputs: query (required).

kommo_search_leadC

Search for leads by query

Inputs: query (required), pipeline_id.

kommo_update_companyC

Update an existing company

Inputs: companyId (required), name, responsible_user_id.

kommo_update_contactC

Update an existing contact

Inputs: contactId (required), name, first_name, last_name.

kommo_update_dealD

Update an existing deal

Inputs: dealId (required), name, price, status_id, +1 more.

kommo_update_leadC

Update an existing lead

Inputs: leadId (required), name, price, status_id, +1 more.

kommo_update_lead_custom_fieldsC

Update lead custom fields by name

Inputs: leadId (required), fields (required).

kommo_update_noteC

Update an existing note

Inputs: noteId (required), entityType (required), text (required).

kommo_update_taskC

Update an existing task

Inputs: taskId (required), text, is_completed.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.8/5.0

    Scored across 39 tools

    Disambiguation4/5

    Most tools target distinct entities and actions. There is minor overlap between 'list' and 'search' tools for the same entity (e.g., kommo_list_leads vs kommo_search_lead), but descriptions clarify their different use cases.

    Naming Consistency5/5

    All tools follow the consistent pattern 'kommo_[verb]_[entity]' using snake_case. Minor deviations like 'search_contact_by_email' are predictable and do not harm coherence.

    Tool Count4/5

    With 39 tools, the set is on the higher end but still scoped appropriately for a comprehensive CRM. Each major entity has several operations, and the count feels justified.

    Completeness2/5

    The tool set lacks delete operations for all entities (company, contact, deal, lead, note, task) and is missing create/update operations for pipelines and catalog elements. These are significant gaps for full lifecycle management.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      B
      quality
      D
      maintenance
      Enables AI assistants to autonomously interact with Kommo CRM, providing tools for managing pipelines, leads, contacts, and custom fields via the Kommo API v4.
      27
      1
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to perform CRM operations like creating contacts, managing deals, and updating leads through natural language using the Model Context Protocol.
      4
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to interact with amoCRM, providing access to deals, contacts, companies, notes, tasks, and custom fields via natural language.
      13 npm
      MIT
    • F
      license
      Not graded
      quality
      B
      maintenance
      Enables AI models to interact with Zoho CRM via Model Context Protocol, supporting CRUD operations, COQL queries, search, and deal stage management.
      -