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
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
Install
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/amo-crm-mcpDetects 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 -- nodeOr 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.
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.
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>' -- nodeOr 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 nodeOr 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.
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 startBuilding 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 statusLimitations
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 | |
|---|---|
| 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.
Related
Salesforce's official DX MCP server: work with orgs, metadata, data, users and Apex tests from your agent
Yandex Kit skills for store management
kit-skills
Yandex's official skill set: catalog, prices, stock, orders, storefront and a weekly checkup for a Yandex Kit store, through Claude Code or Codex
YouGile MCP by Indalo
YouGile MCP
Full 65-operation YouGile API coverage with configurable permissions, write confirmation and a shared company rate limit
Bitrix24 portal MCP server
MCP-сервер портала Битрикс24
Bitrix24's official per-portal MCP: an external agent uses OAuth or a token to read and change tasks, deals, meetings and mail