Bitrix24 MCP with confirmation-gated writes

bitrix24-mcp-server

A self-hosted Bitrix24 MCP with federated OAuth 2.1, encrypted tokens and a two-step confirmation for every write

  • 0 ★ on the repository
  • Last commit
  • MIT
MCP server

Broad access

Why this level

  • With write_with_confirmation mode enabled, it can create and change CRM entities after confirmation
  • Stores encrypted portal users' OAuth tokens in its own PostgreSQL database
All reasons and checks
Russian stack

ericvanin/bitrix24-mcp-server

A similar tool with a larger community: Bitrix24 MCP Server, 65 ★ on the repository

Install

Services

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/ericvanin-bitrix24-mcp-server

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

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

  • With write_with_confirmation mode enabled, it can create and change CRM entities after confirmation
  • Stores encrypted portal users' OAuth tokens in its own PostgreSQL database

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

What it does

The server is self-hosted (Docker Compose or Coolify) with its own Bitrix24 OAuth app and a PostgreSQL database. Each MCP client goes through its own OAuth 2.1 authorization with PKCE and dynamic registration; Bitrix24 tokens are encrypted with AES-256-GCM and refreshed in a concurrency-safe way. Read tools discover a specific portal's schema: CRM entity types including smart processes via crm.type.list, fields, pipelines, stages, users, and items through the universal crm.item.* methods. Writes are deliberately two-step: a prepare tool (create, update, stage move) returns a human-readable summary and a pending operation, which only executes after a separate confirmation call; the operation is atomic and cannot run twice under concurrent requests, and pending operations expire after ten minutes. Every write leaves an audit record with its status. Raw REST calls, deletion, schema administration, robots, business processes and event binding are deliberately not exposed in this release.

Who it is for. For teams that need per-client multi-user authorization and tight control over CRM writes with confirmation on every operation.

Good fit when

  • Several people need to connect each under their own Bitrix24 authorization, not one shared webhook
  • It matters that no CRM write happens without a separate confirmation call
  • You need an audit log of every prepared, completed, failed and cancelled write

Not a fit when

  • You cannot deploy Docker with PostgreSQL and a public HTTPS domain
  • You need raw REST calls, robots, business processes or entity deletion: none of that is here
  • A plain inbound webhook with no OAuth and no database is enough for you

Example request

Prepare moving deal 4821 to the "Paid" stage and show a summary before confirming

MCP

Transport
http
Authentication
OAuth

Environment variables

BITRIX_CLIENT_ID required, secret
Your own Bitrix24 OAuth app's client ID
BITRIX_CLIENT_SECRET required, secret
The Bitrix24 OAuth app's client secret
TOKEN_ENCRYPTION_KEY required, secret
A stable token encryption key for the lifetime of the database
MCP_AUTH_TOKEN required, secret
A static bearer token for operator access and recovery, minimum 32 characters

Limitations

This is an independent project, not an official Bitrix24 product, and the author recommends testing against a non-production portal first. Requires Node.js 20.11+, PostgreSQL 14+ and your own Bitrix24 OAuth app with a public HTTPS handler URL. Version 0.3.1 accepts hosted *.bitrix24.* cloud domains and exactly one configured custom portal domain; other on-premise domains are currently rejected. Effective access is always limited by the rights of the Bitrix24 user who completed OAuth and the OAuth app's own scopes.

How to disable. Stop the deployed server (docker compose down), remove the OAuth app in the portal, and revoke the MCP_AUTH_TOKEN.

FAQ

Can the agent write data without confirmation?

No, the default read_only mode denies both preparation and execution; preparation is allowed only with explicit mode=write_with_confirmation, and the write executes via a separate bitrix_confirm_operation call.

What if two requests try to confirm the same operation at once?

Confirmation is atomic, concurrent requests cannot execute the same operation twice.

Discussion

No questions or reviews yet.

Russian stack

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 serverBroad access

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 (lstkhN)

Bitrix24 MCP Server

Russian stack

A module for on-premise Bitrix24: an agent safely reads CRM, the MySQL schema, code and business processes over SSH stdio or HTTP with a Bearer token

MCP serverExtended access

Bitrix24 MCP server: tasks, CRM and lists

Bitrix24 Tasks, CRM & Lists MCP Server

Russian stack

A modular Bitrix24 MCP server with 46 tools for tasks and kanban, CRM deals and contacts, and universal lists, running in Docker with no third-party cache

MCP serverBroad access1Repository stars
Russian stack

A read and write MCP server for the Bitrix24 REST API: CRM, tasks, scrum, calendar, disk, messaging and portal events

MCP serverBroad access1Repository stars
Russian stack

A Bitrix24 MCP server with 43 tools and about 870 actions that executes real REST API calls instead of just serving documentation

MCP serverBroad access3Repository stars

Comparison with similar tools

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

ToolOfficialAuthenticationRepository starsMain difference
Bitrix24 MCP with confirmation-gated writes (this card)noOAuth0
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 lists what is included (a bring-your-own OAuth app, token encryption, read-only tools, SPA discovery, a schema metadata cache, confirmation-gated write operations, an audit trail, stateless Streamable HTTP with OAuth 2.1), a quick start with environment variables, setting up the Bitrix24 local app, connecting clients (Claude custom connector, Claude Code, Codex, generic static-bearer), a full configuration table, Docker and Coolify instructions, and an architecture diagram. It points to SECURITY.md before production deployment.

README badge

Report a problem