amo-crm-mcp: a modular AmoCRM server

amo-crm-mcp

A TypeScript MCP server with a separate module for each AmoCRM entity: tasks, pipelines, leads, users, notes and events

MCP server

Medium risk

We rate an entry medium when the tool runs code, makes network calls or reads project files. Check what exactly it does before installing.

Why this level

  • The leads and notes modules can change data in AmoCRM
  • The integration key is stored in your own .env
All reasons and checks
Russian stack

makediff-dev/amo-crm-mcp

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/amo-crm-mcp

Detects the agents on your machine, checks the risk and pins the version.

Other ways to install

Assembled automatically, review before installing.

Run in a terminal

claude mcp add --transport stdio --env 'AMO_BASE_URL=<AMO_BASE_URL value>' --env 'AMO_INTEGRATION_ID=<your AMO_INTEGRATION_ID>' --env 'AMO_INTEGRATION_SECRET=<your AMO_INTEGRATION_SECRET>' --env 'AMO_INTEGRATION_KEY=<your AMO_INTEGRATION_KEY>' amo-crm-mcp -- node

Or add to the file .mcp.json, in the project

{
  "mcpServers": {
    "amo-crm-mcp": {
      "command": "node",
      "args": [],
      "env": {
        "AMO_BASE_URL": "<AMO_BASE_URL value>",
        "AMO_INTEGRATION_ID": "<your AMO_INTEGRATION_ID>",
        "AMO_INTEGRATION_SECRET": "<your AMO_INTEGRATION_SECRET>",
        "AMO_INTEGRATION_KEY": "<your AMO_INTEGRATION_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

AMO_BASE_URLrequired
https://<subdomain>.amocrm.ru/api/v4/
AMO_INTEGRATION_IDsecret, required
Данные интеграции
AMO_INTEGRATION_SECRETsecret, required
Данные интеграции
AMO_INTEGRATION_KEYsecret, required
Данные интеграции
AMO_MAX_CONCURRENCYoptional
лимит параллельных запросов (по умолчанию 5)
LOG_LEVELoptional
уровень логирования (debug|info|warn|error)
LOG_FILE_PATHoptional
путь до файла логов (по умолчанию mcp.log в рабочей директории)
APP_TIMEZONEoptional
IANA-таймзона для отображения дат (по умолчанию Europe/Moscow)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Install in Cursor

The button opens the agent and offers to add the server. If nothing happens, copy the config below.

Add to the file ~/.cursor/mcp.json, for all projects

{
  "mcpServers": {
    "amo-crm-mcp": {
      "command": "node",
      "args": [],
      "env": {
        "AMO_BASE_URL": "<AMO_BASE_URL value>",
        "AMO_INTEGRATION_ID": "<your AMO_INTEGRATION_ID>",
        "AMO_INTEGRATION_SECRET": "<your AMO_INTEGRATION_SECRET>",
        "AMO_INTEGRATION_KEY": "<your AMO_INTEGRATION_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key. For a single project, put the same block into .cursor/mcp.json.

Keys and settings

AMO_BASE_URLrequired
https://<subdomain>.amocrm.ru/api/v4/
AMO_INTEGRATION_IDsecret, required
Данные интеграции
AMO_INTEGRATION_SECRETsecret, required
Данные интеграции
AMO_INTEGRATION_KEYsecret, required
Данные интеграции
AMO_MAX_CONCURRENCYoptional
лимит параллельных запросов (по умолчанию 5)
LOG_LEVELoptional
уровень логирования (debug|info|warn|error)
LOG_FILE_PATHoptional
путь до файла логов (по умолчанию mcp.log в рабочей директории)
APP_TIMEZONEoptional
IANA-таймзона для отображения дат (по умолчанию Europe/Moscow)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Install in VS Code

The button opens the agent and offers to add the server. If nothing happens, copy the config below.

Run in a terminal

code --add-mcp '{"name":"amo-crm-mcp","type":"stdio","command":"node","args":[],"env":{"AMO_BASE_URL":"<AMO_BASE_URL value>","AMO_INTEGRATION_ID":"<your AMO_INTEGRATION_ID>","AMO_INTEGRATION_SECRET":"<your AMO_INTEGRATION_SECRET>","AMO_INTEGRATION_KEY":"<your AMO_INTEGRATION_KEY>"}}'

Or add to the file .vscode/mcp.json, in the project

{
  "servers": {
    "amo-crm-mcp": {
      "type": "stdio",
      "command": "node",
      "args": [],
      "env": {
        "AMO_BASE_URL": "<AMO_BASE_URL value>",
        "AMO_INTEGRATION_ID": "<your AMO_INTEGRATION_ID>",
        "AMO_INTEGRATION_SECRET": "<your AMO_INTEGRATION_SECRET>",
        "AMO_INTEGRATION_KEY": "<your AMO_INTEGRATION_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the servers key.

Keys and settings

AMO_BASE_URLrequired
https://<subdomain>.amocrm.ru/api/v4/
AMO_INTEGRATION_IDsecret, required
Данные интеграции
AMO_INTEGRATION_SECRETsecret, required
Данные интеграции
AMO_INTEGRATION_KEYsecret, required
Данные интеграции
AMO_MAX_CONCURRENCYoptional
лимит параллельных запросов (по умолчанию 5)
LOG_LEVELoptional
уровень логирования (debug|info|warn|error)
LOG_FILE_PATHoptional
путь до файла логов (по умолчанию mcp.log в рабочей директории)
APP_TIMEZONEoptional
IANA-таймзона для отображения дат (по умолчанию Europe/Moscow)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Run in a terminal

codex mcp add amo-crm-mcp --env 'AMO_BASE_URL=<AMO_BASE_URL value>' --env 'AMO_INTEGRATION_ID=<your AMO_INTEGRATION_ID>' --env 'AMO_INTEGRATION_SECRET=<your AMO_INTEGRATION_SECRET>' --env 'AMO_INTEGRATION_KEY=<your AMO_INTEGRATION_KEY>' -- node

Or add to the file ~/.codex/config.toml, for all projects

[mcp_servers.amo-crm-mcp]
command = "node"
args = []
env = { AMO_BASE_URL = "<AMO_BASE_URL value>", AMO_INTEGRATION_ID = "<your AMO_INTEGRATION_ID>", AMO_INTEGRATION_SECRET = "<your AMO_INTEGRATION_SECRET>", AMO_INTEGRATION_KEY = "<your AMO_INTEGRATION_KEY>" }

If the file already exists, append the block to the end.

Keys and settings

AMO_BASE_URLrequired
https://<subdomain>.amocrm.ru/api/v4/
AMO_INTEGRATION_IDsecret, required
Данные интеграции
AMO_INTEGRATION_SECRETsecret, required
Данные интеграции
AMO_INTEGRATION_KEYsecret, required
Данные интеграции
AMO_MAX_CONCURRENCYoptional
лимит параллельных запросов (по умолчанию 5)
LOG_LEVELoptional
уровень логирования (debug|info|warn|error)
LOG_FILE_PATHoptional
путь до файла логов (по умолчанию mcp.log в рабочей директории)
APP_TIMEZONEoptional
IANA-таймзона для отображения дат (по умолчанию Europe/Moscow)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Run in a terminal

gemini mcp add -s user -e 'AMO_BASE_URL=<AMO_BASE_URL value>' -e 'AMO_INTEGRATION_ID=<your AMO_INTEGRATION_ID>' -e 'AMO_INTEGRATION_SECRET=<your AMO_INTEGRATION_SECRET>' -e 'AMO_INTEGRATION_KEY=<your AMO_INTEGRATION_KEY>' amo-crm-mcp node

Or add to the file ~/.gemini/settings.json, for all projects

{
  "mcpServers": {
    "amo-crm-mcp": {
      "command": "node",
      "args": [],
      "env": {
        "AMO_BASE_URL": "<AMO_BASE_URL value>",
        "AMO_INTEGRATION_ID": "<your AMO_INTEGRATION_ID>",
        "AMO_INTEGRATION_SECRET": "<your AMO_INTEGRATION_SECRET>",
        "AMO_INTEGRATION_KEY": "<your AMO_INTEGRATION_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

AMO_BASE_URLrequired
https://<subdomain>.amocrm.ru/api/v4/
AMO_INTEGRATION_IDsecret, required
Данные интеграции
AMO_INTEGRATION_SECRETsecret, required
Данные интеграции
AMO_INTEGRATION_KEYsecret, required
Данные интеграции
AMO_MAX_CONCURRENCYoptional
лимит параллельных запросов (по умолчанию 5)
LOG_LEVELoptional
уровень логирования (debug|info|warn|error)
LOG_FILE_PATHoptional
путь до файла логов (по умолчанию mcp.log в рабочей директории)
APP_TIMEZONEoptional
IANA-таймзона для отображения дат (по умолчанию Europe/Moscow)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.config/devin/mcp_config.json, for all projects

{
  "mcpServers": {
    "amo-crm-mcp": {
      "command": "node",
      "args": [],
      "env": {
        "AMO_BASE_URL": "<AMO_BASE_URL value>",
        "AMO_INTEGRATION_ID": "<your AMO_INTEGRATION_ID>",
        "AMO_INTEGRATION_SECRET": "<your AMO_INTEGRATION_SECRET>",
        "AMO_INTEGRATION_KEY": "<your AMO_INTEGRATION_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Legacy Cascade keeps the MCP config in ~/.codeium/windsurf/mcp_config.json.

Keys and settings

AMO_BASE_URLrequired
https://<subdomain>.amocrm.ru/api/v4/
AMO_INTEGRATION_IDsecret, required
Данные интеграции
AMO_INTEGRATION_SECRETsecret, required
Данные интеграции
AMO_INTEGRATION_KEYsecret, required
Данные интеграции
AMO_MAX_CONCURRENCYoptional
лимит параллельных запросов (по умолчанию 5)
LOG_LEVELoptional
уровень логирования (debug|info|warn|error)
LOG_FILE_PATHoptional
путь до файла логов (по умолчанию mcp.log в рабочей директории)
APP_TIMEZONEoptional
IANA-таймзона для отображения дат (по умолчанию Europe/Moscow)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Formerly Windsurf.

Add to the file cline_mcp_settings.json, for all projects

{
  "mcpServers": {
    "amo-crm-mcp": {
      "command": "node",
      "args": [],
      "env": {
        "AMO_BASE_URL": "<AMO_BASE_URL value>",
        "AMO_INTEGRATION_ID": "<your AMO_INTEGRATION_ID>",
        "AMO_INTEGRATION_SECRET": "<your AMO_INTEGRATION_SECRET>",
        "AMO_INTEGRATION_KEY": "<your AMO_INTEGRATION_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Open the settings file in Cline: MCP Servers tab, Configure MCP Servers.

Keys and settings

AMO_BASE_URLrequired
https://<subdomain>.amocrm.ru/api/v4/
AMO_INTEGRATION_IDsecret, required
Данные интеграции
AMO_INTEGRATION_SECRETsecret, required
Данные интеграции
AMO_INTEGRATION_KEYsecret, required
Данные интеграции
AMO_MAX_CONCURRENCYoptional
лимит параллельных запросов (по умолчанию 5)
LOG_LEVELoptional
уровень логирования (debug|info|warn|error)
LOG_FILE_PATHoptional
путь до файла логов (по умолчанию mcp.log в рабочей директории)
APP_TIMEZONEoptional
IANA-таймзона для отображения дат (по умолчанию Europe/Moscow)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file .roo/mcp.json, in the project

{
  "mcpServers": {
    "amo-crm-mcp": {
      "command": "node",
      "args": [],
      "env": {
        "AMO_BASE_URL": "<AMO_BASE_URL value>",
        "AMO_INTEGRATION_ID": "<your AMO_INTEGRATION_ID>",
        "AMO_INTEGRATION_SECRET": "<your AMO_INTEGRATION_SECRET>",
        "AMO_INTEGRATION_KEY": "<your AMO_INTEGRATION_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

AMO_BASE_URLrequired
https://<subdomain>.amocrm.ru/api/v4/
AMO_INTEGRATION_IDsecret, required
Данные интеграции
AMO_INTEGRATION_SECRETsecret, required
Данные интеграции
AMO_INTEGRATION_KEYsecret, required
Данные интеграции
AMO_MAX_CONCURRENCYoptional
лимит параллельных запросов (по умолчанию 5)
LOG_LEVELoptional
уровень логирования (debug|info|warn|error)
LOG_FILE_PATHoptional
путь до файла логов (по умолчанию mcp.log в рабочей директории)
APP_TIMEZONEoptional
IANA-таймзона для отображения дат (по умолчанию Europe/Moscow)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

A fork of Roo Code, same .roo folders.

Add to the file opencode.json, in the project

{
  "mcp": {
    "amo-crm-mcp": {
      "type": "local",
      "command": [
        "node"
      ],
      "environment": {
        "AMO_BASE_URL": "<AMO_BASE_URL value>",
        "AMO_INTEGRATION_ID": "<your AMO_INTEGRATION_ID>",
        "AMO_INTEGRATION_SECRET": "<your AMO_INTEGRATION_SECRET>",
        "AMO_INTEGRATION_KEY": "<your AMO_INTEGRATION_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcp key.

Keys and settings

AMO_BASE_URLrequired
https://<subdomain>.amocrm.ru/api/v4/
AMO_INTEGRATION_IDsecret, required
Данные интеграции
AMO_INTEGRATION_SECRETsecret, required
Данные интеграции
AMO_INTEGRATION_KEYsecret, required
Данные интеграции
AMO_MAX_CONCURRENCYoptional
лимит параллельных запросов (по умолчанию 5)
LOG_LEVELoptional
уровень логирования (debug|info|warn|error)
LOG_FILE_PATHoptional
путь до файла логов (по умолчанию mcp.log в рабочей директории)
APP_TIMEZONEoptional
IANA-таймзона для отображения дат (по умолчанию Europe/Moscow)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.config/zed/settings.json, for all projects

{
  "context_servers": {
    "amo-crm-mcp": {
      "command": "node",
      "args": [],
      "env": {
        "AMO_BASE_URL": "<AMO_BASE_URL value>",
        "AMO_INTEGRATION_ID": "<your AMO_INTEGRATION_ID>",
        "AMO_INTEGRATION_SECRET": "<your AMO_INTEGRATION_SECRET>",
        "AMO_INTEGRATION_KEY": "<your AMO_INTEGRATION_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the context_servers key.

Keys and settings

AMO_BASE_URLrequired
https://<subdomain>.amocrm.ru/api/v4/
AMO_INTEGRATION_IDsecret, required
Данные интеграции
AMO_INTEGRATION_SECRETsecret, required
Данные интеграции
AMO_INTEGRATION_KEYsecret, required
Данные интеграции
AMO_MAX_CONCURRENCYoptional
лимит параллельных запросов (по умолчанию 5)
LOG_LEVELoptional
уровень логирования (debug|info|warn|error)
LOG_FILE_PATHoptional
путь до файла логов (по умолчанию mcp.log в рабочей директории)
APP_TIMEZONEoptional
IANA-таймзона для отображения дат (по умолчанию Europe/Moscow)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file .codeassistant/mcp.json, in the project

{
  "mcpServers": {
    "amo-crm-mcp": {
      "command": "node",
      "args": [],
      "env": {
        "AMO_BASE_URL": "<AMO_BASE_URL value>",
        "AMO_INTEGRATION_ID": "<your AMO_INTEGRATION_ID>",
        "AMO_INTEGRATION_SECRET": "<your AMO_INTEGRATION_SECRET>",
        "AMO_INTEGRATION_KEY": "<your AMO_INTEGRATION_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

AMO_BASE_URLrequired
https://<subdomain>.amocrm.ru/api/v4/
AMO_INTEGRATION_IDsecret, required
Данные интеграции
AMO_INTEGRATION_SECRETsecret, required
Данные интеграции
AMO_INTEGRATION_KEYsecret, required
Данные интеграции
AMO_MAX_CONCURRENCYoptional
лимит параллельных запросов (по умолчанию 5)
LOG_LEVELoptional
уровень логирования (debug|info|warn|error)
LOG_FILE_PATHoptional
путь до файла логов (по умолчанию mcp.log в рабочей директории)
APP_TIMEZONEoptional
IANA-таймзона для отображения дат (по умолчанию Europe/Moscow)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

You will need: Node.js

Checked against the repository on Sep 26, 2026, commit 840140d.

Text for your agent

Clone the repo, run npm install, fill .env from .env.example with AMO_BASE_URL, AMO_INTEGRATION_ID, AMO_INTEGRATION_SECRET and AMO_INTEGRATION_KEY, build with npm run build, and connect dist/index.js as a stdio MCP server.

Other ways from the author
npm install
npm run build
npm start

Building and running the compiled dist/index.js after filling in .env.

This is third-party code. Review the repository files before installing.

What it does

The server uses a modular architecture: a shared base layer (BaseServerContext, BaseModule, BaseController) with amo-tasks, amo-pipelines, amo-leads, amo-users, amo-notes and amo-events modules built on top, each with its own controller, service and schemas. The health module exposes a server-health tool with uptime, memory and server metadata. Logging goes to a file so it does not pollute stdout, which stdio transport requires to stay clean. Configuration is read from .env with zod validation, and the server refuses to start on invalid values. The README documents only the basic server-health and get_active_tasks tools, but the code also registers modules for pipelines, leads, users, notes and events.

Who it is for. For developers who want a clean modular base for their own AmoCRM MCP server and are ready to extend it with their own modules.

Good fit when

  • You want a modular MCP server architecture that is easy to extend with your own domain
  • You need AmoCRM tasks, pipelines, leads, users, notes and events in one server
  • You want strict zod-based configuration validation at startup

Not a fit when

  • You need exact documentation for every tool: the README lags behind the code and does not describe all modules
  • You need a ready npm package: the server is built and run from source

Example request

Show active AmoCRM tasks and the MCP server's own status

Limitations

The README documents only server-health and get_active_tasks out of the box, even though src/modules/index.ts registers five more modules: pipelines, leads, users, notes and events. The exact tool list and parameters for those modules must be read from the source, since they are undocumented. There is no ready npm package; the server is built locally with npm run build.

How to disable. Remove the server from your MCP client config and stop the dist/index.js process.

MCP

Transport
stdio
Authentication
API key
Environment variables
Environment variables
AMO_BASE_URL
required
The base API URL, like https://<subdomain>.amocrm.ru/api/v4/.
AMO_INTEGRATION_ID
required, secret
The AmoCRM integration identifier.
AMO_INTEGRATION_SECRET
required, secret
The integration secret key.
AMO_INTEGRATION_KEY
required, secret
The integration access key.

Security check

  • The leads and notes modules can change data in AmoCRM
  • The integration key is stored in your own .env

README in short

The README describes the modular architecture, Node.js 18+ requirements, npm install and run steps, zod-validated environment variables, the src layer structure (lib and core), and the server-health and get_active_tasks tools with their return data.

FAQ

Are there tools for leads and pipelines?

Yes in the code, the amo-leads and amo-pipelines modules are registered in src/modules/index.ts, but the README does not document them.

Why do logs go to a file instead of the console?

The stdio protocol needs a clean stdout for JSON messages only, so logs default to a file at LOG_FILE_PATH.

Official

Salesforce's official DX MCP server: work with orgs, metadata, data, users and Apex tests from your agent

MCP serverHigh risk483Repository stars
Official

Yandex's official skill set: catalog, prices, stock, orders, storefront and a weekly checkup for a Yandex Kit store, through Claude Code or Codex

PluginHigh riskRussian stackNo VPN needed28Repository stars
Editors’ pick

Full 65-operation YouGile API coverage with configurable permissions, write confirmation and a shared company rate limit

MCP serverHigh riskRussian stackNo VPN needed

Bitrix24 portal MCP server

MCP-сервер портала Битрикс24

Official

Bitrix24's official per-portal MCP: an external agent uses OAuth or a token to read and change tasks, deals, meetings and mail

MCP serverHigh riskRussian stackNo VPN needed
Foxx AIamo-crm-mcp: a modular AmoCRM server

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.