- Mcp Server For Bitrix24
Mcp Server For Bitrix24
# mcp-bitrix24
MCP server for Bitrix24 Tasks, Workgroups, and Users. Implements MCP/JSON-RPC over STDIO.
## Features
- Tasks: create, update, close, reopen, list
- Workgroups: create, list
- Users: list, current user, available fields
- Task fields: available fields + validation for `create_task.fields`
## Requirements
- Node.js >= 18
- Bitrix24 webhook URL
## Install / Build
```bash
npm install
npm run build
```
Run via npm:
```bash
npx mcp-bitrix24
```
## Configuration
Set the Bitrix24 webhook URL via environment variable:
```
BITRIX24_WEBHOOK_URL=https://<your-domain>/rest/<user_id>/<webhook>/
```
Example Codex MCP config:
```toml
[mcp_servers.bitrix24]
command = "npx"
args = ["-y", "mcp-bitrix24"]
[mcp_servers.bitrix24.env]
BITRIX24_WEBHOOK_URL = "https://<your-domain>/rest/<user_id>/<webhook>/"
```
## Tools
### Tasks
- `create_task`
- Input: `title` (string, required), `description?` (string), `responsible_id?` (number), `group_id?` (number), `fields?` (object)
- Output: `{ task_id: number }`
- Note: if `fields` is provided, keys are validated against `get_task_fields`.
- `update_task`
- Input: `task_id` (number, required) + at least one of: `title?`, `description?`, `responsible_id?`, `group_id?`
- Output: `{ task_id: number }`
- `close_task`
- Input: `task_id` (number, required)
- Output: `{ task_id: number }`
- `reopen_task`
- Input: `task_id` (number, required)
- Output: `{ task_id: number }`
- `list_tasks`
- Input: `responsible_id?` (number), `group_id?` (number), `start?` (number), `limit?` (number)
- Output: `{ tasks: [{ id, title, status }] }`
- `get_task_fields`
- Input: `{}`
- Output: `{ fields: { [field: string]: object } }`
- `list_task_history`
- Input: `task_id` (number, required), `filter?` (object), `order?` (object)
- Output: `{ list: [ { id, createdDate, field, value, user } ] }`
### Workgroups
- `create_group`
- Input: `name` (string, required), `description?` (string)
- Output: `{ group_id: number }`
- `list_groups`
- Input: `limit?` (number)
- Output: `{ groups: [{ id, name }] }`
### Users
- `list_users`
- Input:
- `filter?` (object)
- `sort?` (string)
- `order?` ("ASC" | "DESC")
- `admin_mode?` (boolean)
- `start?` (number)
- `limit?` (number)
- Output: `{ users: [{ id, name, last_name, email?, active }] }`
- Note: `filter` supports Bitrix24 `user.get` filters (including prefixes like `>=`, `%`, `@`, etc.).
`start` controls paging (Bitrix returns 50 records per page); `limit` is a local slice after the API response.
- `get_user_fields`
- Input: `{}`
- Output: `{ fields: { [field: string]: string } }`
- `get_current_user`
- Input: `{}`
- Output: `{ user: { id, name, last_name, email?, active } }`
## Architecture
Clean architecture layers:
- `mcp/` — protocol, transport, server
- `adapters/` — MCP tools mapping to domain
- `domain/` — entities, services, ports
- `infrastructure/` — Bitrix24 REST client
## Development Notes
- Input validation uses `zod`.
- Transport: STDIO only.
- Build: `tsc` (`npm run build`).
## Contributing
See `CONTRIBUTING.md` for guidelines.
Overview
mcp-bitrix24
MCP server for Bitrix24 Tasks, Workgroups, and Users. Implements MCP/JSON-RPC over STDIO.
Features
- Tasks: create, update, close, reopen, list
- Workgroups: create, list
- Users: list, current user, available fields
- Task fields: available fields + validation for
create_task.fields
Requirements
- Node.js >= 18
- Bitrix24 webhook URL
Install / Build
npm install
npm run build
Run via npm:
npx mcp-bitrix24
Configuration
Set the Bitrix24 webhook URL via environment variable:
BITRIX24_WEBHOOK_URL=https://<your-domain>/rest/<user_id>/<webhook>/
Example Codex MCP config:
[mcp_servers.bitrix24]
command = "npx"
args = ["-y", "mcp-bitrix24"]
[mcp_servers.bitrix24.env]
BITRIX24_WEBHOOK_URL = "https://<your-domain>/rest/<user_id>/<webhook>/"
Tools
Tasks
-
create_task- Input:
title(string, required),description?(string),responsible_id?(number),group_id?(number),fields?(object) - Output:
{ task_id: number } - Note: if
fieldsis provided, keys are validated againstget_task_fields.
- Input:
-
update_task- Input:
task_id(number, required) + at least one of:title?,description?,responsible_id?,group_id? - Output:
{ task_id: number }
- Input:
-
close_task- Input:
task_id(number, required) - Output:
{ task_id: number }
- Input:
-
reopen_task- Input:
task_id(number, required) - Output:
{ task_id: number }
- Input:
-
list_tasks- Input:
responsible_id?(number),group_id?(number),start?(number),limit?(number) - Output:
{ tasks: [{ id, title, status }] }
- Input:
-
get_task_fields- Input:
{} - Output:
{ fields: { [field: string]: object } }
- Input:
-
list_task_history- Input:
task_id(number, required),filter?(object),order?(object) - Output:
{ list: [ { id, createdDate, field, value, user } ] }
- Input:
Workgroups
-
create_group- Input:
name(string, required),description?(string) - Output:
{ group_id: number }
- Input:
-
list_groups- Input:
limit?(number) - Output:
{ groups: [{ id, name }] }
- Input:
Users
-
list_users- Input:
filter?(object)sort?(string)order?("ASC" | "DESC")admin_mode?(boolean)start?(number)limit?(number)
- Output:
{ users: [{ id, name, last_name, email?, active }] } - Note:
filtersupports Bitrix24user.getfilters (including prefixes like>=,%,@, etc.).startcontrols paging (Bitrix returns 50 records per page);limitis a local slice after the API response.
- Input:
-
get_user_fields- Input:
{} - Output:
{ fields: { [field: string]: string } }
- Input:
-
get_current_user- Input:
{} - Output:
{ user: { id, name, last_name, email?, active } }
- Input:
Architecture
Clean architecture layers:
mcp/— protocol, transport, serveradapters/— MCP tools mapping to domaindomain/— entities, services, portsinfrastructure/— Bitrix24 REST client
Development Notes
- Input validation uses
zod. - Transport: STDIO only.
- Build:
tsc(npm run build).
Contributing
See CONTRIBUTING.md for guidelines.
Server Config
{
"mcpServers": {
"bitrix24": {
"command": "npx",
"args": [
"-y",
"mcp-bitrix24"
],
"env": {
"BITRIX24_WEBHOOK_URL": "https://<your-domain>/rest/<user_id>/<webhook>/"
}
}
}
}Project Info
Created At
3 months agoUpdated At
3 months agoAuthor Name
stemirkhanStar
-Language
-License
-Recommend Servers
View AllHevy Mcp
@SrdjanCodes
2 days ago
Hostaway Mcp
@prosperkartik
2 days ago
Playwright Mcp
@microsoft
Playwright MCP server
TypeScript
9 months ago