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

  • 0 ★ on the repository
  • Last commit
MCP server

Broad access

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

Services

Manual install

pip install -e ".[webhook]"

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

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • 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

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

MCP

Transport
stdio
Authentication
key is optional

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

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.

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.

Discussion

No questions or reviews yet.

Russian stack

An MCP server for Bitrix24 CRM contacts and deals via an inbound webhook: search, lists and deal stage changes

MCP serverBroad access65Repository stars

Bitrix24 MCP by Bit2Beat

Bitrix24 MCP Server

Russian stack

Bitrix24 MCP server over an inbound webhook: CRM, tasks, disk, calendar, chat, business processes and config migration between portals

MCP serverBroad access6Repository stars

Bitrix24 MCP Server (gunnit)

Bitrix24 MCP Server

Russian stack

A TypeScript MCP server for Bitrix24 CRM: contacts, companies, leads, deals, tasks and sales rep performance reports

MCP serverBroad access35Repository stars

Bitrix24 MCP Server (qwito)

Bitrix24 MCP Server

Russian stack

A TypeScript MCP server with 45-plus tools for Bitrix24 CRM: contacts, deals, leads, companies, tasks and activity analytics

MCP serverBroad access
Russian stack

Bitrix24 MCP server in TypeScript with a broad set of CRM tools plus a dedicated group for monitoring manager activity and performance

MCP serverExtended access

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
Bitrix24 MCP with a local CRM cache (this card)nokey is optional0
Bitrix24 MCP by Bit2BeatnoAPI key6CRM, tasks, drive
Bitrix24 MCP Server on an OAuth appnoOAuth1knowledge base
Bitrix24 MCP server with call transcriptionnoAPI key1tasks, CRM and call transcripts

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.

README badge

Report a problem