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
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
A similar tool with a larger community: Bitrix24 MCP Server, 65 ★ on the repository
Install
- Works in
- Services
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/ericvanin-bitrix24-mcp-serverDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad 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 confirmingMCP
- Transport
- http
- Authentication
- OAuth
Environment variables
BITRIX_CLIENT_IDrequired, secret- Your own Bitrix24 OAuth app's client ID
BITRIX_CLIENT_SECRETrequired, secret- The Bitrix24 OAuth app's client secret
TOKEN_ENCRYPTION_KEYrequired, secret- A stable token encryption key for the lifetime of the database
MCP_AUTH_TOKENrequired, 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.
Related
All Bitrix24 toolsBitrix24 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
Bitrix24 MCP by Bit2Beat
Bitrix24 MCP Server
Bitrix24 MCP server over an inbound webhook: CRM, tasks, disk, calendar, chat, business processes and config migration between portals
Bitrix24 MCP Server (lstkhN)
Bitrix24 MCP Server
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
Bitrix24 MCP server: tasks, CRM and lists
Bitrix24 Tasks, CRM & Lists MCP Server
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
A read and write MCP server for the Bitrix24 REST API: CRM, tasks, scrum, calendar, disk, messaging and portal events
Bitrix24 MCP server with real calls
MCP Server for Bitrix24
A Bitrix24 MCP server with 43 tools and about 870 actions that executes real REST API calls instead of just serving documentation
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Bitrix24 MCP with confirmation-gated writes (this card) | no | OAuth | 0 | |
| Bitrix24 MCP by Bit2Beat | no | API key | 6 | CRM, tasks, drive |
| Bitrix24 MCP Server on an OAuth app | no | OAuth | 1 | knowledge base |
| Bitrix24 MCP server with call transcription | no | API key | 1 | tasks, 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.