Bitrix24 MCP with a local CRM cache

bitrix24mcp

A Bitrix24 MCP server that keeps a CRM copy in PostgreSQL or SQLite and answers an agent from cache instead of hitting REST every time

MCP server

High risk

We rate an entry high when the tool writes to external systems, handles money, production databases or secrets, or runs arbitrary commands. The CLI installs it only with your consent.

Why this level

  • Creates contacts, deals and leads and changes deal stages in a live portal
  • Keeps a copy of CRM data, including customer data, in its own local database
All reasons and checks
Russian stack

andrewqvalon/bitrix24mcp

Install

Manual install

pip install -e ".[webhook]"

Installs with real-time webhook support; pip install -e . alone is enough for just the MCP server.

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

What it does

The server syncs contacts, companies, deals, leads, pipelines, stages and the activity feed from Bitrix24 into a local database and serves an agent's reads from that cache: search and lookups across all CRM entities, listing pipelines and a specific pipeline's stages, an aggregated client summary and CRM event feed, and a deal-portfolio report. Writes (creating a contact, deal, lead, a stage change, a feed comment) go to Bitrix24 directly and then update the local cache. Two auth methods: OAuth2 with a Bitrix24 login popup that fetches and stores tokens itself, or an inbound webhook with no app registration. An optional real-time HTTP webhook handler listens for contact, company, deal and lead change events so the cache updates instantly rather than only on manual sync.

Who it is for. For teams with a large CRM database who care about agent response speed and aggregated reports, not just one-off API calls.

Good fit when

  • You need a fast aggregated client summary or deal-portfolio report without many REST calls
  • You need instant cache updates through real-time webhooks
  • You want a choice between OAuth2 with a login popup and a plain webhook depending on the situation

Not a fit when

  • You are not ready to run a local database (PostgreSQL or SQLite) and keep it fresh
  • You need only the freshest data with no cache: the cache TTL can serve a slightly stale answer between syncs

Example request

Show an aggregated summary for client Ivanov: deals, activities and the current portfolio report

Limitations

Reads are served from the local cache rather than Bitrix24 directly, so data can lag slightly between syncs, with freshness controlled by the CACHE_TTL setting. Instant updates need a separate webhook handler process and registering Bitrix24 events pointing at it. An initial sync_crm_data run is needed before first use.

How to disable. Stop the server and the webhook handler, delete the SQLite database file or the PostgreSQL database, and revoke the webhook or OAuth app in the portal.

MCP

Transport
stdio
Authentication
API key
Environment variables
Environment variables
BITRIX24_WEBHOOK_URL
secret
The inbound webhook URL, an alternative to OAuth2
BITRIX24_CLIENT_ID
secret
The Bitrix24 server app's client ID for OAuth2
DATABASE_URL
required
The connection string for the local cache database, SQLite or PostgreSQL

Security check

  • Creates contacts, deals and leads and changes deal stages in a live portal
  • Keeps a copy of CRM data, including customer data, in its own local database

README in short

The README describes the caching architecture (REST API, local database, MCP tools, agent), the package's module layout, a table of nineteen CRM and reporting tools, install via pip with optional webhook support, two auth methods with step-by-step instructions, bringing up PostgreSQL via Docker Compose, running the server, checking auth status, the initial sync, setting up real-time webhooks, a Claude Desktop config, and the database schema with the read-from-cache, write-direct-to-Bitrix24 principle.

FAQ

Which auth method is simpler?

An inbound webhook: no app registration needed, just create a webhook under Developer Resources and paste its URL.

How does the cache learn about changes in real time?

Through a separate uvicorn handler on port 8080, registered in Bitrix24 for events like onCrmDealAdd, onCrmContactUpdate and similar.

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 AIBitrix24 MCP with a local CRM cache

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