mcp-b24
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-b24Create a lead: Ivan, phone +7 999 123-45-67"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Server for Bitrix24
43 tools · ~870 actions · Bitrix24 REST 1.0 + 3.0 · 95 tests
MCP server for the Bitrix24 platform. Wraps the Bitrix24 REST API (CRM, tasks, chats, files, calendar, HR, smart processes, mail, telephony, workflows, events, open lines, chat bots, document generator, quotes, currency, webforms, tracking, inventory) into 43 tools your AI agent can call directly — and executes real calls on the portal (unlike the official Bitrix24 MCP, which only serves documentation).
Installation · Configuration · Capabilities · Tools · Scenarios · Development · npm package
Languages: English · Русский
Portal & Subscription
This MCP server wraps the Bitrix24 REST API.
Bitrix24 is an all-in-one workspace: CRM, tasks, projects, chats, video
calls, documents, mail, calendar, HR, business processes, telephony, and more.
It is available as cloud (*.bitrix24.ru / *.bitrix24.com) and on-premise.
⚠️ A Bitrix24 portal is required to use this server. You need either an incoming webhook (
BX24_WEBHOOK_URL) or an OAuth application (BX24_DOMAIN+BX24_CLIENT_ID+BX24_CLIENT_SECRET+BX24_REFRESH_TOKEN). Create a webhook under Developer resources → Incoming webhook on your portal, or register an OAuth app atoauth.bitrix24.ru.
➡️ More details: bitrix24.com · REST docs: apidocs.bitrix24.ru
Related MCP server: fast-bitrix24-mcp
Compatible API Versions
API | Version | Base Path | Auth | Modules |
Bitrix24 REST | 1.0 + 3.0 |
| incoming webhook or OAuth 2.0 | CRM, tasks, IM, disk, calendar, user, catalog, lists, mail, telephony, bizproc, HR, timeman, events, open lines, chat bots, document generator, quotes, currency, webforms, tracking, inventory |
Installation
Prerequisites
Node.js 18+
An active Bitrix24 portal (cloud or on-premise)
An auth credential: incoming webhook or OAuth app (see below)
Install from npm
npm install -g mcp-b24
# or run without installing
npx -y mcp-b24Environment Variables
Variable | Required | Description |
| Optional |
|
| webhook | Incoming webhook URL: |
| oauth | Portal domain, e.g. |
| oauth | OAuth client id |
| oauth | OAuth client secret |
| oauth | Refresh token for auto-refresh |
| Optional | Ready access token (otherwise obtained from refresh) |
| Optional |
|
| Optional | Set |
| Optional | Set |
| Optional | Row cap for auto-pagination (default 5000) |
| Optional | Requests/sec (≤2 non-Enterprise, ≤5 Enterprise; default 2) |
| Optional | Token-bucket burst (default 50) |
| Optional |
|
| Optional |
|
| Optional | JSONL audit path for destructive + auth events (omit to disable) |
| Optional |
|
| Optional | HTTP transport endpoint (default |
| Optional | If set, the HTTP transport requires |
| Optional | CORS for browser-based MCP clients — disabled by default; set |
You can either:
Set
BX24_WEBHOOK_URL— simplest, acts on behalf of the webhook creator; no refresh needed, orSet
BX24_DOMAIN+ OAuth credentials — the server will auto-refresh access tokens (≈1 h lifetime) and followclient_endpointfrom the OAuth response.
Destructive Action Confirmation
When BX24_CONFIRM_DESTRUCTIVE=true is set, the server requires an explicit confirm: true parameter before executing destructive actions (delete, remove, complete, leave, kick, cancel, stop, close, mute, unbind, clear, markDeleted, kill, …). Without it, the tool returns a structured requiresConfirmation preview and does not execute, protecting against accidental data loss with AI agents. Every destructive operation that runs is written to the JSONL audit log (BX24_AUDIT_LOG). When unset or false, destructive actions execute without confirmation (default).
MCP Client Configuration
Claude Desktop
Add to claude_desktop_config.json:
npx (recommended):
{
"mcpServers": {
"bitrix24": {
"command": "npx",
"args": ["-y", "mcp-b24"],
"env": {
"BX24_WEBHOOK_URL": "https://portal.bitrix24.ru/rest/1/abcd1234/",
"BX24_CONFIRM_DESTRUCTIVE": "true"
}
}
}
}OAuth:
{
"mcpServers": {
"bitrix24": {
"command": "npx",
"args": ["-y", "mcp-b24"],
"env": {
"BX24_MODE": "oauth",
"BX24_DOMAIN": "portal.bitrix24.ru",
"BX24_CLIENT_ID": "app.abc123",
"BX24_CLIENT_SECRET": "******",
"BX24_REFRESH_TOKEN": "******"
}
}
}
}Windows — use cmd /c:
{
"mcpServers": {
"bitrix24": {
"command": "cmd",
"args": ["/c", "npx", "-y", "mcp-b24"],
"env": { "BX24_WEBHOOK_URL": "https://portal.bitrix24.ru/rest/1/abcd1234/" }
}
}
}Docker:
docker build -t mcp/bitrix24 .{
"mcpServers": {
"bitrix24": {
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "BX24_WEBHOOK_URL", "mcp/bitrix24"],
"env": { "BX24_WEBHOOK_URL": "https://portal.bitrix24.ru/rest/1/abcd1234/" }
}
}
}Streamable HTTP:
BX24_TRANSPORT=http BX24_HTTP_PORT=3000 BX24_WEBHOOK_URL="https://..." npx mcp-b24
# serves http://127.0.0.1:3000/mcpThe HTTP transport accepts only local/IP-literal Host headers (DNS-rebinding
defence), caps request bodies at 2 MB, and is unauthenticated by default — bind
it to a public interface only together with BX24_HTTP_TOKEN (clients then send
Authorization: Bearer <token>). CORS is disabled unless BX24_CORS_ORIGIN is
set (browser-based MCP clients only).
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"bitrix24": {
"command": "npx",
"args": ["-y", "mcp-b24"],
"env": { "BX24_WEBHOOK_URL": "https://portal.bitrix24.ru/rest/1/abcd1234/" }
}
}
}VS Code
Add to .vscode/mcp.json (note: top-level key is servers, not mcpServers):
{
"servers": {
"bitrix24": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-b24"],
"env": { "BX24_WEBHOOK_URL": "https://portal.bitrix24.ru/rest/1/abcd1234/" }
}
}
}Codex CLI
codex mcp add bitrix24 --env BX24_WEBHOOK_URL=https://portal.bitrix24.ru/rest/1/abcd1234/ -- npx -y mcp-b24From source
git clone https://github.com/kostikpenzin/mcp_b24.git
cd mcp_b24
npm install
npm run build{
"mcpServers": {
"bitrix24": {
"command": "node",
"args": ["/absolute/path/to/mcp_b24/dist/index.js"],
"env": { "BX24_WEBHOOK_URL": "https://portal.bitrix24.ru/rest/1/abcd1234/" }
}
}
}Tools Overview
43 tools, ~870 actions
Tool | Description | Group |
| Leads: CRUD, contacts, product rows, user fields, convert, card config | CRM |
| Deals + pipelines/categories, product rows, contact bindings, recurring, user fields | CRM |
| Contacts: CRUD, company bindings, user fields, card config | CRM |
| Companies: CRUD, contact bindings, user fields, card config | CRM |
| Invoices (SMART_INVOICE, entityTypeId=31) + stages | CRM |
| Trade catalog: products, sections, prices, stores, price types, measures, VAT, ratios, inventory documents, properties, offers/SKU/services | CRM |
| Activities (calls/meetings/emails) + todo + configurable + types + badges + full timeline | CRM |
| Requisites + presets + bank details + links + user fields | CRM |
| Duplicate search & merge + status dictionaries + volatile types | CRM |
| Smart processes: types + items (arbitrary entities) | CRM |
| Quotes: CRUD, product rows, contact bindings, user fields | CRM |
| Document generator: templates, documents, numerators, bindings, providers | CRM |
| Currencies: CRUD, base currency, localizations | CRM |
| Webforms + results + options | CRM |
| Tracking: traces, sources, channels | CRM |
| CRM automation triggers | CRM |
| Call lists (cold-call dial lists) | CRM |
| CRM addresses: CRUD, by client, delete by filter | CRM |
| Stage movement history | CRM |
| CRM overview: total counts of leads/deals/contacts/companies + lead statuses + deal funnels in one call | CRM |
| Tasks: lifecycle + checklists + comments + elapsed + flows + stages + planner + dependencies + user fields | collab |
| Groups/projects (social network) + members + subjects | collab |
| Disk: storages, folders, files, versions, sharing, external links, rights | collab |
| Messenger: messages, notifications, users, search, counters, recent, departments, events v2, files v2 | collab |
| Chats: create, members, owner/manager, title/color/avatar, mute, messages | collab |
| Video conferences | collab |
| Calendar: events, sections, meetings, resources, availability, settings | collab |
| IM open lines: configs, sessions, operators, CRM links, network | collab |
| Chat bots v2: registration, chats, messages, reactions, commands, files, events | collab |
| Users: current, get, search, user fields (incl. list), CRUD | org |
| Departments / org structure | org |
| Working time tracking (timeman) + time control + network ranges + schedules + records | org |
| HR: employees, invite, dismiss, transfer | org |
| Universal lists (infoblocks) + sections + field types | biz |
| Mail: mailboxes, messages, send/reply/forward, filters, services, message→task/calendar/chat/CRM | biz |
| Analytics & reports | biz |
| Segments, broadcast, lead filters | biz |
| Business processes & robots: templates, instances, tasks, robot/activity CRUD, events | biz |
| Telephony: external lines/calls, SIP, voximplant (callbacks, info-calls, TTS, lines, stats) | biz |
| Event subscriptions + offline queue + supported events list | biz |
| Combine up to 50 REST calls in one request ( | generic |
| Invoke any Bitrix24 REST method by name (escape-hatch) | generic |
| Verify API connectivity, credentials, and response time | generic |
Each domain tool is action-based: the action enum selects the operation
(e.g. action: "add", "list", "update", "delete"). Full action list:
docs/en/TOOLS_REFERENCE.md (RU: docs/ru/).
Capabilities
The MCP server understands natural language in Russian and English. You don't need to know tool names or action enums — describe what you want in plain language and the AI agent maps it to the right tool and action.
What you can do
CRM — create/find/update leads, contacts, companies, deals, quotes; move deals across pipelines; manage activities (calls/meetings); product rows; custom fields; requisites + bank details; find & merge duplicates; smart processes; document generation; currencies; webforms; tracking; addresses; call lists; automation triggers; stage history
Tasks & projects — create, complete, delegate, defer tasks; checklists; comments; elapsed time; flows; kanban stages; planner; dependencies; user fields; manage groups/projects + subjects
Chats & messenger — create chats, add/remove members, send/edit/delete messages, reactions, search, counters, notifications, recent; open lines (configs, sessions, operators); chat bots v2 (registration, commands, files)
Files (Disk) — upload/download/move/copy files, list folders, versions, sharing, public links, rights, attached objects
Calendar — events, sections, meetings, resources, availability, settings
HR & org — users, departments, working time + time control + network ranges + schedules, invite/dismiss/transfer
Business — universal lists + sections, mail (incl. message→task/event/ chat/CRM), reports, marketing, workflows + robot/activity CRUD, telephony (calls, SIP, voximplant callbacks/info-calls/TTS/lines/stats), events
Trade catalog — products, sections, prices, price types, measures, VAT, ratios, rounding rules, extra charges, inventory documents, product properties, variations (offers), SKU heads, services, stock records (bizproc), telephony, event subscriptions
Batch & generic — combine up to 50 calls; call any REST method by name
Security
Credentials (webhook secret, OAuth tokens) are never exposed to the AI agent or returned in tool results — even
bx24_healthreports the portal as a host name onlyDestructive actions can require explicit
confirm: true(BX24_CONFIRM_DESTRUCTIVE=true) and are written to the JSONL audit log; audit entries mask secret-like parameter keys (also nested ones)The HTTP transport hardening: CORS is opt-in (
BX24_CORS_ORIGIN, empty = disabled),Hostheaders are validated against local names/IP literals (DNS-rebinding defence), request bodies are capped at 2 MB, and an optional shared token (BX24_HTTP_TOKEN) enablesAuthorization: BearerchecksRate limits are respected via a token-bucket;
QUERY_LIMIT_EXCEEDED(503) andOPERATION_TIME_LIMIT(429) are retried with backoffPassword management and auth/login actions are excluded — auth is handled automatically via environment variables
Usage Scenarios
1. Create a lead
You say: "Create a lead Ivan Petrov, phone +79001234567, email ivan@example.ru"
The AI agent will call bx24_crm_leads with action: "add" and
fields = { TITLE: "Ivan Petrov", PHONE: [{ VALUE: "+79001234567", VALUE_TYPE: "WORK" }], EMAIL: [...] }.
2. Show my tasks for today
You say: "Покажи мои задачи на сегодня"
The AI agent will call bx24_tasks with action: "list" filtering by
RESPONSIBLE_ID = current and DEADLINE = today.
3. Move a deal across the pipeline
You say: "Передвинь сделку №456 на стадию «В работе»"
The AI agent will call bx24_crm_deals with action: "update" setting
STAGE_ID (stages can be listed via action: "category_list").
4. Send a message to a chat
You say: "Напиши в чат «Проект Альфа»: релиз сегодня в 18:00"
The AI agent will call bx24_im_chat with action: "sendMessage"
(DIALOG_ID = chatNNN, MESSAGE = "…").
5. Upload a file and share the link
You say: "Загрузи PDF-договор на Диск в папку «Договоры 2026» и скинь ссылку в чат «Партнёры»"
The AI agent will: bx24_disk → file_upload, then file_getExternalLink,
then bx24_im_chat → sendMessage.
6. Start an approval workflow
You say: "Запусти бизнес-процесс «Согласование с юристами» для сделки #456"
The AI agent will call bx24_workflows with action: "start",
templateId and documentId = ["crm", "DEAL", 456].
7. Analyze the sales funnel
You say: "Сделай отчёт по воронке «Продажи»: сделки по этапам, средний чек"
The AI agent will call bx24_crm_deals action: "list" (filtered by
CATEGORY_ID) and bx24_reports action: "funnel_stages", then aggregate.
Development
npm install # Install dependencies
npm run build # Compile TypeScript + chmod +x
npm run dev # Watch mode
npm test # Run 95 tests (vitest)
npm run test:coverage
npm start # Run server
docker build -t mcp/bitrix24 . # Docker image
npm publish # Publish to npm (auto clean + build + test)Project Structure
mcp_b24/
├── src/
│ ├── index.ts # MCP server entry point (transport selection)
│ ├── server.ts # MCP server: register/list/call + instructions
│ ├── config.ts # Environment configuration (BX24_*)
│ ├── api-client.ts # HTTP client: webhook/OAuth, refresh, backoff, token-bucket
│ ├── error.ts # Error handling
│ ├── types.ts # Shared types
│ ├── i18n/ # ru.ts, en.ts, index.ts
│ ├── audit/log.ts # JSONL audit of destructive + auth events
│ ├── utils/ # logger, tokenBucket
│ ├── transport.ts # stdio + Streamable HTTP
│ └── tools/
│ ├── framework.ts # Data-driven action-tool framework
│ ├── params.ts # Reusable param schemas
│ ├── index.ts # Tool registration (43 tools)
│ ├── batch.ts # bx24_batch
│ ├── call.ts # bx24_call (escape-hatch)
│ ├── health.ts # bx24_health (API connectivity check)
│ ├── crm/ # 20 CRM tools (incl. summary)
│ ├── collab/ # 9 collab tools
│ ├── org/ # 4 org tools
│ └── biz/ # 7 biz tools
├── docs/ # en/ + ru/ (USER_GUIDE, SELLER_GUIDE, DEVELOPER_GUIDE, TOOLS_REFERENCE, AUDIT_LOG)
├── i18n/README.ru.md # Russian README
├── specs/openapi.yaml # OpenAPI overview
├── Dockerfile # Multi-stage Docker build
├── docker-compose.yml
├── .env.example
├── LICENSE
├── CHANGELOG.md
├── package.json
└── tsconfig.jsonLicense
Author
Penzin Konstantin — GitHub · penzin85@gmail.com
Available Tools
43 toolsbx24_batchA
Bitrix24 batch: combine multiple REST calls into one request. Method batch (REST 1.0 + 3.0). Reference earlier results inside later commands with $result[key]. RU/EN: пакет, батч, несколько вызовов, объединить вызовы / batch, combine calls, multiple calls.
| Name | Required | Description | Default |
|---|---|---|---|
| cmd | Yes | Commands keyed by logical name. Each value is a REST call string like 'crm.lead.list?filter[STATUS_ID]=NEW&select[]=ID&select[]=TITLE'. Reference results: 'crm.deal.add?fields[TITLE]=$result[lead][TITLE]'. | |
| halt | No | If true, batch stops on the first command error (default false) | |
| confirm | No | Set to true to confirm destructive commands when BX24_CONFIRM_DESTRUCTIVE is enabled. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full behavioral disclosure burden. It does disclose that earlier results can be referenced with $result[key], which implies ordered execution, and mentions REST 1.0 + 3.0 compatibility. However, it omits error behavior, partial failure semantics, response structure, and destructive-command concerns beyond what the schema already shows.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in a single, clear sentence, followed by the key reference mechanism. The bilingual keyword list is somewhat redundant for an AI agent and could be trimmed, but it does not significantly bloat the description. Overall it is compact and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essence of batching and the $result reference mechanism, and the schema fully documents cmd, halt, and confirm. However, with no output schema and no annotations, the agent is left without information about the batch response format or how execution failures are surfaced. For a generic execution wrapper, this is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds a concise general rule for referencing results ($result[key]) that complements the schema's example. Yet the schema already contains the same reference syntax, so the description provides only marginal additional parameter insight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair: 'combine multiple REST calls into one request' and identifies the exact Bitrix24 method ('batch'). It clearly distinguishes this generic batching tool from the domain-specific sibling tools. The bilingual keyword list reinforces meaning rather than obscuring it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: use this tool when multiple REST calls need to be combined into a single request. However, it does not explicitly state when not to use it, which sibling should be chosen instead, or any prerequisites such as REST method compatibility. The hybrid RU/EN phrases add searchability but no direct usage exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_botsC
Bitrix24 chat bots v2 (чат-боты): bot registration, chats, messages, reactions, commands, files, events. Methods imbot.v2.* (REST 1.0 + 3.0). RU/EN: чат-бот, бот, зарегистрировать бота, команда, реакция / chat bot, register bot, command, reaction.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | Bot code (unique identifier) | |
| file | No | File to upload: NAME, CONTENT base64 | |
| botId | No | Chat bot code/ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "bot_register": Register a chat bot - "bot_update": Update bot properties - "bot_get": Get bot info - "bot_list": List bots of the app - "bot_unregister": Unregister/remove a bot (destructive) - "chat_add": Create a group chat (bot-hosted) - "chat_get": Get chat info - "chat_update": Update chat properties - "chat_leave": Bot leaves a chat (destructive) - "chat_setOwner": Change chat owner - "chat_user_add": Add a member to a chat - "chat_user_delete": Remove a member (destructive) - "chat_user_list": List chat members - "chat_manager_add": Add a chat manager - "chat_manager_delete": Remove a chat manager (destructive) - "message_send": Bot sends a message - "message_update": Update a bot message - "message_delete": Delete a bot message (destructive) - "message_read": Mark a message read - "message_get": Get a message by ID - "message_getContext": Get message context window - "reaction_add": Add a reaction to a message - "reaction_delete": Remove a reaction (destructive) - "command_register": Register a slash command - "command_update": Update a command - "command_list": List bot commands - "command_unregister": Unregister a command (destructive) - "command_answer": Respond to a command - "file_upload": Upload a file to a chat - "file_download": Get a file download link - "event_get": Poll for bot events | |
| chatId | No | Chat ID (e.g. chat123) | |
| fields | No | Bot/chat/message/command fields (per Bitrix24 docs for the method) | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| clientId | No | App client_id (for bot registration) | |
| commandId | No | Bot command ID | |
| messageId | No | Message ID | |
| reactionId | No | Message reaction ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, but it only lists topic areas and API versions. It does not mention side effects, permission requirements, event polling behavior, or destructive potential; the destructive hints appear only in the schema's action enum and confirm parameter, not in the narrative description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the resource and version, then lists functional areas. The RU/EN keyword list adds minor redundancy but remains short and does not undermine clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a large multi-action tool with 15 parameters and no output schema, yet the description provides only a category list. It omits prerequisites such as a registered bot or client_id, how event_get polling works, and any return-shape or error context, leaving the detailed action enum to carry the operational weight.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with every parameter already documented, including detailed per-action semantics in the action enum. The tool description adds no parameter-level meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (Bitrix24 chat bots v2) and functional scope (bot registration, chats, messages, reactions, commands, files, events), and names the API family (imbot.v2.*). It is distinguishable from CRM/tasks/projects siblings, though it does not explicitly differentiate from the closely related bx24_im and bx24_im_chat tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives like bx24_im or bx24_im_chat, and mentions no exclusions, prerequisites, or selection criteria. The RU/EN keyword list aids search but does not help an agent decide between sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_calendarC
Bitrix24 calendar: events, sections, meeting status, resources, accessibility, settings. Methods calendar.event., calendar.section., calendar.meeting., calendar.resource., calendar.accessibility., calendar.user.settings. (REST 1.0 + 3.0). RU/EN: событие, встреча, календарь, создай событие, ближайшие, доступность / event, calendar, create event, nearest, availability.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| to | No | Range end (ISO date) | |
| from | No | Range start (ISO date) | |
| type | No | Calendar type: user (personal) or calendar (shared) | |
| limit | No | Max events | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "event_add": Create an event (NAME, DT_FROM, DT_TO) - "event_get": Get an event by ID (with calendar context) - "event_getbyid": Get an event by ID only - "event_list": List events in a date range - "event_update": Update event fields - "event_delete": Delete an event (destructive) - "event_get_nearest": Get nearest upcoming events - "section_list": List calendar sections - "section_add": Create a section - "section_update": Update a section - "section_delete": Delete a section (destructive) - "meeting_status_get": Get meeting attendance status - "meeting_status_set": Set meeting attendance status (Y/N/Q) - "resource_list": List bookable resources - "resource_add": Create a bookable resource - "resource_update": Update a resource - "resource_delete": Delete a resource (destructive) - "resource_booking_list": List resource bookings - "accessibility_get": Get user availability for a date range - "settings_get": Get current user calendar settings - "settings_set": Set current user calendar settings | |
| fields | No | Event fields: NAME, DT_FROM, DT_TO, DESCRIPTION, SECTION_ID, ATTENDEES, REMIND, COLOR | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| status | No | Meeting status (Y/N/Q) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| ownerId | No | Calendar/owner ID | |
| daysCount | No | Days ahead for get_nearest | |
| sectionFields | No | Section fields: NAME, COLOR, TYPE | |
| resourceFields | No | Resource fields: NAME, CAL_TYPE |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only lists method namespaces and API versions and does not mention destructive operations, permission requirements, rate limits, or side effects. The schema's delete-action descriptions cover destructiveness, but the description itself lacks this context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and starts with the domain, but the RU/EN keyword block and the method namespace list partly duplicate the already-listed functional areas. It is not bloated, but it contains some redundancy that could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 17 parameters, 21 actions, no annotations, and no output schema, the description is only a high-level overview. It does not explain the action-driven dispatch model, which parameters apply to which actions, or how destructive actions should be confirmed. The rich action enum compensates partially, but the description alone is insufficient for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The tool description adds no parameter-level meaning beyond naming domains and the 'create event' keyword, which is already represented in the action enum. The schema itself provides adequate parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies Bitrix24 calendar as the resource and enumerates its functional domains: events, sections, meeting status, resources, accessibility, and settings. This distinguishes it from CRM, tasks, and other sibling tools. However, it is a broad namespace description rather than a single specific operation, so it stops short of full precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives, and no mention of exclusions or sibling routing. The Bitrix24 calendar label implies calendar-related use, but with 21 possible actions the description does not help an agent decide which operation or when to prefer this tool over related ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_callA
Universal Bitrix24 REST call: invoke any REST method by name with arbitrary params. Escape-hatch for methods not covered by dedicated tools (REST 1.0 + 3.0). RU/EN: вызови метод, сделай произвольный вызов, вызови rest-метод / call rest method, invoke method, raw rest call.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Bitrix24 REST method name, e.g. 'crm.lead.list', 'im.chat.get', 'disk.folder.getchildren'. | |
| params | No | Additional method-specific params object | |
| confirm | No | Set to true to confirm destructive methods when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| httpVerb | No | HTTP verb (default POST if params present, else GET) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It conveys a raw, passthrough nature ('invoke any REST method', 'arbitrary params') but does not mention response format, destructiveness, or the confirm parameter's role. The schema provides confirm details, but the description itself offers little safety or outcome context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core function and usage condition are stated in two front-loaded sentences. The RU/EN synonym list is compact and useful for multilingual intent matching without bloating the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a universal 4-parameter tool with dynamic output, the description covers purpose and use-case routing well. It lacks an explicit note that responses are raw REST responses, which would be valuable since no output schema exists. Still, the schema covers all parameter semantics, making this mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's 'arbitrary params' aligns with the schema but adds no meaning beyond the per-parameter descriptions already present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'invoke any REST method by name with arbitrary params'. It clearly brands itself as an 'escapade-hatch' and 'Universal Bitrix24 REST call', which distinguishes it from the dedicated sibling wrappers by scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Escape-hatch for methods not covered by dedicated tools' explicitly tells an agent when to use this tool and implies when not to use it. This provides a clear routing rule without needing to enumerate each sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_confC
Bitrix24 video conferences (Zoom-аналог). Methods im.conference.* (REST 1.0 + 3.0). RU/EN: конференция, видеовстреча, собери созвон / conference, video call, schedule call.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "create": Create a video conference (TITLE, USERS) - "get": Get a conference by ID - "list": List conferences - "delete": Delete a conference (destructive) - "join": Join a conference - "leave": Leave a conference | |
| fields | No | Conference fields: TITLE, USERS, CONFERENCE_LINK, PASSWORD | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| userId | No | User ID (numeric) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only mentions the domain and API version; it does not disclose that actions create, delete, join, or leave conferences, does not mention destructive side effects, permissions, or return behavior. This is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the domain. The RU/EN synonym list adds useful multilingual matching context without bloat, and the method family reference is compact. It is concise, though at the cost of omitting behavioral detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, six distinct actions, nested objects, and no output schema, the description is far too sparse. It does not cover what the tool actually does per action, what responses look like, when confirm is needed, or how this relates to other Bitrix24 communication tools. The schema fills some gaps, but the description leaves critical context unresolved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description itself adds no parameter-level meaning beyond the schema, but the schema already thoroughly documents each parameter, including the action enum descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as 'Bitrix24 video conferences' and references the im.conference.* method family, but it never states a concrete verb like 'manage' or 'schedule'. The action enum in the schema provides the actual operations, so the description alone is only a vague domain label rather than a clear statement of what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus sibling tools such as bx24_call, bx24_im, bx24_im_chat, or bx24_calendar. The description implies 'conference' usage through synonyms, but it does not state exclusions, prerequisites, or alternatives, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_activitiesB
Bitrix24 CRM activities (дела/звонки/встречи/письма): CRUD, complete, todo, configurable, types, badges, timeline (comments/notes/logmessages/bindings). Methods crm.activity., crm.activity.todo., crm.activity.configurable., crm.activity.type., crm.activity.badge., crm.timeline. (REST 1.0 + 3.0). RU/EN: дело, запланируй звонок, запланируй встречу, заверши дело, таймлайн, заметка, лог / activity, plan a call, plan a meeting, complete activity, timeline, note, log.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "add": Create an activity (call/meeting/task). Bind with OWNER_ID + OWNER_TYPE_ID. - "get": Get an activity by ID - "list": List/filter activities - "update": Update an activity - "delete": Delete an activity (destructive) - "fields": Describe activity fields - "complete": Mark an activity completed - "count": Count activities by filter - "binding_add": Bind an activity to an entity - "binding_delete": Remove a binding (destructive) - "binding_list": List activity bindings - "binding_fields": Describe binding fields - "todo_add": Add a todo activity - "todo_get": Get a todo activity - "todo_list": List todo activities - "todo_update": Update a todo activity - "todo_delete": Delete a todo activity (destructive) - "todo_fields": Describe todo fields - "configurable_add": Add a configurable activity - "configurable_get": Get a configurable activity - "configurable_list": List configurable activities - "configurable_update": Update a configurable activity - "configurable_delete": Delete a configurable activity (destructive) - "configurable_fields": Describe configurable activity fields - "type_add": Add an activity type - "type_get": Get an activity type - "type_list": List activity types - "type_update": Update an activity type - "type_delete": Delete an activity type (destructive) - "type_fields": Describe type fields - "badge_add": Add an activity badge - "badge_get": Get an activity badge - "badge_list": List activity badges - "badge_update": Update an activity badge - "badge_delete": Delete an activity badge (destructive) - "badge_fields": Describe badge fields - "timeline_comment_add": Add a timeline comment to an entity - "timeline_comment_update": Update a timeline comment - "timeline_comment_get": Get a timeline comment - "timeline_comment_list": List timeline comments - "timeline_comment_delete": Delete a timeline comment (destructive) - "timeline_comment_fields": Describe comment fields - "timeline_list": List timeline items - "timeline_note_save": Save a timeline note - "timeline_note_get": Get a timeline note - "timeline_note_delete": Delete a timeline note (destructive) - "timeline_bindings_bind": Bind a timeline record to entities - "timeline_bindings_list": List timeline bindings - "timeline_bindings_unbind": Unbind a timeline record (destructive) - "timeline_bindings_fields": Describe binding fields - "timeline_logmessage_add": Add a timeline log message - "timeline_logmessage_get": Get a log message - "timeline_logmessage_list": List log messages - "timeline_logmessage_delete": Delete a log message (destructive) - "timeline_item_pin": Pin a timeline record - "timeline_item_unpin": Unpin a timeline record | |
| fields | No | Activity fields: TYPE_ID, SUBJECT, DESCRIPTION, START_TIME, END_TIME, COMPLETED, OWNER_ID, OWNER_TYPE_ID, RESPONSIBLE_ID. | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| comment | No | Timeline comment/log/note text | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| ownerId | No | Owner entity ID (e.g. lead/contact/company/deal ID) | |
| commentId | No | Timeline comment ID | |
| ownerTypeId | No | Owner type: 1=lead,2=deal,3=contact,4=company |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits, but it only names operations like CRUD and complete without explaining consequences, reversibility, permissions, or side effects. The schema marks some actions as destructive, but the description text itself does not disclose these traits beyond what the structured data already says.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded with the resource and operation families, but it is a single run-on paragraph that mixes keywords, method names, Russian/English phrases, and timeline subresources without clear structure. It is not bloated, but it lacks the organized readability that a tool with this many operations needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's high complexity (60+ action enum values, 12 parameters, nested objects, no output schema, no annotations), the description is incomplete. It does not explain which parameters are required for specific actions, what responses look like, how ownerId/ownerTypeId relate to binding semantics, or how destructive actions are confirmed. An agent would still need to infer much of this from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the structured schema already documents all 12 parameters. The description adds no meaningful parameter semantics beyond the schema; the one contribution is mentioning fields like TYPE_ID and OWNER_TYPE_ID indirectly through broader method names, but that adds no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as Bitrix24 CRM activities (дела/звонки/встречи/письма) and enumerates the major operation families: CRUD, complete, todo, configurable, types, badges, and timeline. It is specific enough that an agent can tell this tool is about CRM activities rather than, say, deals or tasks. However, it does not explicitly distinguish itself from siblings like bx24_crm_calllists or bx24_telephony, which could overlap in the calls domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for CRM activity management and lists method groups, but it does not state when to prefer this tool over alternatives or when not to use it. The action enum in the schema provides per-operation guidance, but the description itself gives no explicit when/when-not/alternative differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_addressesB
Bitrix24 CRM addresses (адреса клиентов): CRUD, by client, delete by filter. Methods crm.address.*, crm.address.byclient (REST 1.0 + 3.0). RU/EN: адрес, адрес клиента, фактический адрес, юридический адрес / address, client address, actual address, legal address.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "add": Create an address - "get": Get an address by ID - "list": List addresses - "update": Update an address - "delete": Delete an address (destructive) - "fields": Describe address fields - "byclient": Get addresses of a client (by entity type + ID) - "deleteByFilter": Delete addresses matching a filter (destructive — bulk) | |
| fields | No | Address fields: TYPE_ID (1=actual,6=legal,8=registration), ENTITY_TYPE_ID, ENTITY_ID, ADDRESS_1, CITY, POSTAL_CODE, COUNTRY, REGION, ... | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| clientId | No | Client (entity) ID for byclient | |
| clientTypeId | No | Client entity type ID for byclient |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description must carry the full burden of behavioral disclosure. It only states 'CRUD' and 'delete by filter' without describing permanence of deletions, permission requirements, side effects, or consequences of bulk delete. The destructive flags in the action enum are part of the schema, not the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tight and front-loads the core purpose with a resource label followed by the operation summary. The REST version note and bilingual synonym list are small additions that aid retrieval without introducing significant bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 10 parameters, 8 actions, nested objects, and no output schema or annotations, the description is too thin. It omits operational details such as required fields for add, how byclient selects entities, and error or pagination behavior, leaving the schema to carry nearly all invocation-relevant context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds RU/EN synonym keywords and the REST method family, but it does not clarify parameter relationships, required-field rules for add, or how byclient parameters interact beyond what the parameter descriptions already cover.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as Bitrix24 CRM addresses, enumerates the operation families (CRUD, by client, delete by filter), and names the underlying REST methods (crm.address.*, crm.address.byclient). This distinguishes it from sibling tools that target different CRM entities such as deals, leads, or products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. Usage context must be inferred entirely from the tool name and the word 'addresses', with no routing to or away from siblings like bx24_crm_requisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_automationC
Bitrix24 CRM automation triggers (триггеры автоматизации): app triggers, execute, webhook trigger. Methods crm.automation.trigger.* (REST 1.0 + 3.0). RU/EN: автоматизация, триггер, запустить триггер, робот / automation, trigger, execute trigger, robot.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | CRM automation trigger code/ID | |
| code | No | Trigger code (DEAL, LEAD, etc.) for trigger | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "trigger": Fire a configured webhook trigger (by code) - "trigger_add": Register an app automation trigger - "trigger_list": List app automation triggers - "trigger_execute": Execute an app automation trigger by ID - "trigger_delete": Delete an app automation trigger (destructive) | |
| fields | No | Trigger fields: CODE, NAME, ... | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions trigger execution and app triggers but does not disclose that trigger_delete is destructive, whether authentication or entity context is needed, what side effects firing a trigger produces, or any rate-limit consequences. The action enum's 'destructive' flag exists in the schema, but the description itself adds little transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise and front-loaded with the core domain ('CRM automation triggers') followed by method details. The RU/EN keyword list is somewhat redundant and does not add functional guidance, but it does not bloat the entry excessively. It remains compact given the tool's 9-parameter surface.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a moderately complex multi-action tool with 9 parameters, nested objects, and no output schema, yet the description does not explain how actions relate to parameters (e.g., which params are needed for trigger versus trigger_list), when confirmation is required, or how trigger codes are supplied. The schema covers parameter meanings, but the description fails to provide the decision-level context an agent needs to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and the schema already documents each parameter including action meanings, filter examples, and pagination semantics. The description adds only general domain context and RU/EN synonyms rather than parameter-level enrichment, so it does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as Bitrix24 CRM automation triggers and mentions the three modes: app triggers, execute, webhook trigger. It clearly separates this tool from entity-focused siblings like bx24_crm_deals or bx24_crm_contacts by naming the crm.automation.trigger.* method family. However, it lacks a single explicit verb stating what the tool does, relying on the action enum to convey behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, nor does it state conditions such as 'use for automation triggers only' or 'not for CRM entity operations.' The RU/EN keyword list helps searchability but does not help an agent decide between this tool and, for example, bx24_workflows or bx24_events.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_calllistsB
Bitrix24 CRM call lists (списки обзвона): create, list, get, delete, start, status. Methods crm.calllist.* (REST 1.0 + 3.0). RU/EN: список обзвона, обзвон, прозвон / call list, cold call list, dial list.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | CRM call list ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "add": Create a call list - "get": Get a call list by ID - "list": List call lists - "delete": Delete a call list (destructive) - "start": Start dialing a call list - "status": Get call list execution status | |
| fields | No | Call list fields: NAME, ENTITY_TYPE (LEAD/CONTACT), ... | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior itself. It only names operations and REST versions; it does not explain side effects, destructive outcomes, permission needs, or behavior of 'start' and 'status' beyond their names. The destructive nature of delete appears only in the schema, not the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core resource and operations. The RU/EN synonym list is useful for multilingual lookup and does not add meaningful bloat. It is appropriately sized for a multi-action tool though it lacks depth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the schema is rich and covers 100% of parameters, the description itself does not explain per-action required fields, expected responses, or operational details for a tool that multiplexes six distinct actions. With no output schema and no annotations, an agent is left without enough context to confidently invoke actions like add, start, or status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter descriptions already document id, order, start, action, fields, filter, select, and confirm. The tool description adds no parameter-level meaning, but the schema carries the burden, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (Bitrix24 CRM call lists) and enumerates the concrete operations: create, list, get, delete, start, status. It also identifies the underlying REST method family crm.calllist.*, making it clearly distinguishable from sibling CRM tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists operations but provides no guidance on when to choose this tool over alternatives such as bx24_call or bx24_telephony. It does not state prerequisites, exclusions, or scenarios where a different tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_companiesB
Bitrix24 CRM companies: CRUD, contact bindings, user fields. Methods crm.company., crm.company.contact., crm.company.userfield.* (REST 1.0 + 3.0). RU/EN: компания, создать компанию, найти компанию / company, create company, find company.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "add": Create a company (TITLE required) - "get": Get a company by ID - "list": List/filter companies - "update": Update company fields - "delete": Delete a company (destructive) - "fields": Describe company fields - "contact_add": Bind a contact - "contact_delete": Unbind a contact (destructive) - "contact_list": List contacts bound to a company - "contact_items_set": Set the full set of contacts on a company - "contact_items_delete": Clear all contacts from a company (destructive) - "userfield_get": Get a custom company field - "userfield_add": Create a custom company field - "userfield_update": Update a custom company field - "userfield_delete": Delete a custom company field (destructive) - "details_get": Get company card configuration (layout) - "details_set": Set company card configuration - "details_reset": Reset company card configuration to default | |
| fields | No | Company fields: TITLE (required), PHONE[], EMAIL[], INDUSTRY, REVENUE, COMPANY_TYPE, ASSIGNED_BY_ID. | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| contactId | No | Contact ID | |
| userfield | No | User field definition | |
| contactIds | No | Contact IDs to set | |
| userfieldId | No | CRM userfield ID (e.g. UF_CRM_123) | |
| configFields | No | Company card configuration (details.configuration.*) fields |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It mentions 'CRUD' generically, which implies mutation/deletion, but provides no details on destructive consequences, confirmation requirements, permissions, or side effects. The schema's action enum adds some destructive flags, but the description itself is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, using three short sentences. The first sentence establishes scope, the second maps to REST method families, and the third adds multilingual aliases. There is minor redundancy between 'CRUD, contact bindings, user fields' and the method list, but no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity tool with 13 parameters, 19 enum values, nested objects, and no output schema. The description omits the details_get/details_set/details_reset actions entirely, does not explain return values or pagination, and leaves the agent to discover the full action set from the schema. The schema is rich, but the description alone is incomplete for the tool's breadth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents all 13 parameters, including the action enum details and field examples. The description adds nothing about parameter usage beyond categorizing the tool; the RU/EN aliases are search aids, not parameter semantics. A baseline of 3 is appropriate because the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the target resource (Bitrix24 CRM companies) and enumerates its operation areas: CRUD, contact bindings, and user fields. This clearly distinguishes it from sibling tools like bx24_crm_deals or bx24_crm_contacts, though it lacks a single specific verb because it aggregates many operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope is unambiguous: this is the tool for crm.company.* operations, including contact bindings and user fields. It gives clear context that company-specific CRUD and associated sub-resources belong here, but it does not explicitly tell the agent when NOT to use it or which sibling to prefer for related entity actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_contactsB
Bitrix24 CRM contacts: CRUD, company bindings, user fields. Methods crm.contact., crm.contact.company., crm.contact.userfield.* (REST 1.0 + 3.0). RU/EN: контакт, найти контакт, создать контакт / contact, find contact, create contact.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "add": Create a contact - "get": Get a contact by ID - "list": List/filter contacts (by PHONE/EMAIL/NAME) - "update": Update contact fields - "delete": Delete a contact (destructive) - "fields": Describe contact fields - "company_add": Bind a company - "company_delete": Unbind a company (destructive) - "company_list": List companies bound to a contact - "company_items_set": Set the full set of companies on a contact - "company_items_delete": Clear all companies from a contact (destructive) - "userfield_get": Get a custom contact field - "userfield_add": Create a custom contact field - "userfield_update": Update a custom contact field - "userfield_delete": Delete a custom contact field (destructive) - "details_get": Get contact card configuration (layout) - "details_set": Set contact card configuration - "details_reset": Reset contact card configuration to default | |
| fields | No | Contact fields: NAME, LAST_NAME, PHONE[], EMAIL[], COMPANY_ID, POST, ASSIGNED_BY_ID. | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| companyId | No | Company ID | |
| userfield | No | User field definition | |
| companyIds | No | Company IDs to set | |
| userfieldId | No | CRM userfield ID (e.g. UF_CRM_123) | |
| configFields | No | Contact card configuration (details.configuration.*) fields |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it only offers the broad labels 'CRUD' and 'company bindings'. It does not disclose that delete/unbind/clear actions are irreversible, that destructive actions may require a confirm flag, or what side effects or response shapes to expect. The destructive labels in the input schema help, but the description itself stays silent on these traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description front-loads the resource and core capabilities in one compact sentence, then adds method-group and locale hints. The RU/EN keyword fragment adds modest value for multilingual queries but is slightly tangential; overall the text is efficient and appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The 13-parameter/18-action surface is complex, and the high-level description alone would not be enough. The rich input schema compensates for most gaps, but with no output schema and no return-value description, an agent must infer response shapes from action names and the fields object. That leaves a noticeable but not critical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so the baseline of 3 applies; the description contributes no parameter-level detail. The schema's action enum and field descriptions carry the semantics, which is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact Bitrix24 resource ('CRM contacts') and lists the operation families it covers: CRUD, company bindings, and user fields. This distinguishes it from siblings like bx24_crm_deals and bx24_crm_companies and maps directly to the crm.contact.* REST method groups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource name and operation families: it is the tool for contact-related actions. However, it never explicitly states when to use it versus sibling tools or which sibling covers adjacent entities (e.g., bx24_crm_companies for company-only operations), so the guidance is implicit rather than prescriptive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_currencyC
Bitrix24 CRM currencies (валюты): CRUD, base currency, localizations. Methods crm.currency., crm.currency.base., crm.currency.localizations.* (REST 1.0 + 3.0). RU/EN: валюта, курс, базовая валюта, локализация / currency, base currency, localization.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | CRM currency ID (e.g. RUB, USD) | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "add": Create a currency - "get": Get a currency by code - "list": List currencies - "update": Update currency fields - "delete": Delete a currency (destructive) - "fields": Describe currency fields - "base_get": Get the base currency - "base_set": Set the base currency - "localizations_get": Get currency localizations - "localizations_set": Set currency localizations - "localizations_delete": Delete currency localizations (destructive) - "localizations_fields": Describe localization fields | |
| fields | No | Currency fields: CURRENCY (code, e.g. RUB), AMOUNT, AMOUNT_CNT, DECIMALS, DEC_POINT, THOUSANDS_SEP, LANG, FORMAT_STRING, FULL_NAME. | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| localizationFields | No | Localization fields: FULL_NAME, DEC_POINT, THOUSANDS_SEP, FORMAT_STRING, ... |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral disclosure burden. It only says 'CRUD, base currency, localizations' and lists REST method groups, but does not disclose consequences of destructive operations, permission requirements, side effects of setting the base currency, or typical response behavior. The confirm parameter and destructive hints live only in the schema, not in the tool description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the resource and capability set, and avoids excessive detail. The RU/EN translation line adds mild redundancy but does not seriously bloat the text. It earns high marks for being brief and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters, no output schema, no annotations, and multiple operation families, the description is too sparse to be fully actionable. It does not explain how actions relate to each other, what the base currency/localization operations return, or how pagination and confirm work. The schema covers parameter semantics, but the higher-level workflow context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters, including a detailed action enum. The description adds no param-level meaning beyond naming the method groups, which is acceptable given the schema's completeness. A baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (Bitrix24 CRM currencies) and the main capabilities: CRUD, base currency, and localizations. It also references the corresponding REST method groups, which distinguishes it from sibling tools focused on other CRM entities. However, it doesn't provide a crisp single-verb statement of what the tool does or how these operations behave.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for currency management but gives no explicit guidance about when to use it versus other tools, nor when to choose specific actions like get versus list or localizations versus base currency. It lacks any context about prerequisites or scenarios where an alternative approach would be preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_dealsB
Bitrix24 CRM deals: CRUD, funnels/categories, product rows, contact bindings, timeline. Methods crm.deal., crm.dealcategory., crm.deal.productrows., crm.deal.contact. (REST 1.0 + 3.0). RU/EN: сделка, создать сделку, найди сделки, передвинуть по воронке, закрыть сделку, товарные позиции / deal, create deal, find deals, move stage, close deal, product rows.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| row | No | Single product row | |
| rows | No | Product row array: {PRODUCT_ID, PRICE, QUANTITY, ...} | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "add": Create a deal (TITLE required) - "get": Get a deal by ID - "list": List/filter deals - "update": Update deal fields by ID (set STAGE_ID to move/close) - "delete": Delete a deal (destructive) - "fields": Describe all deal fields - "category_list": List deal pipelines/categories (воронки) - "category_add": Create a pipeline/category - "category_update": Update a pipeline/category - "category_delete": Delete a pipeline/category (destructive) - "getProductRows": Get product rows of a deal - "setProductRows": Overwrite product rows (destructive — full rewrite) - "addProductRow": Add a product row to a deal - "getContactBindings": List contacts bound to a deal - "setContactBindings": Set contact bindings - "contact_add": Bind a contact to a deal - "contact_delete": Unbind a contact (destructive) - "contact_items_delete": Clear all contacts from a deal (destructive) - "getByCategory": List deals by category (filter by CATEGORY_ID) - "moveToCategory": Move a deal to another category (set CATEGORY_ID) - "count": Count deals matching filter (returns total) - "recurring_add": Add a recurring deal template - "recurring_get": Get a recurring deal template - "recurring_list": List recurring deal templates - "recurring_update": Update a recurring deal template - "recurring_delete": Delete a recurring deal template (destructive) - "recurring_expose": Expose a deal from a recurring template - "recurring_fields": Describe recurring deal fields - "details_get": Get deal card configuration (layout) - "details_set": Set deal card configuration - "details_reset": Reset deal card configuration to default - "userfield_get": Get a custom deal field - "userfield_add": Create a custom deal field - "userfield_update": Update a custom deal field - "userfield_delete": Delete a custom deal field (destructive) | |
| fields | No | Deal fields: TITLE (required), STAGE_ID, CATEGORY_ID, OPPORTUNITY, CURRENCY_ID, COMPANY_ID, CONTACT_ID, ASSIGNED_BY_ID. | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| contactId | No | Contact ID | |
| userfield | No | User field definition | |
| categoryId | No | Pipeline/category ID | |
| contactIds | No | Contact IDs to bind | |
| userfieldId | No | CRM userfield ID (e.g. UF_CRM_123) | |
| configFields | No | Deal card configuration (details.configuration.*) fields | |
| categoryFields | No | Category fields: NAME | |
| recurringFields | No | Recurring deal template fields |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It only labels operations as 'CRUD' and lists feature areas; it does not disclose that many bundled actions (delete, setProductRows, contact_items_delete, category_delete, etc.) are destructive or that some actions overwrite data. The agent cannot predict side effects or confirmation requirements from the description alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with the resource front-loaded and the capability list kept compact. The RU/EN trigger list is useful for matching user intent rather than filler, though the long comma-separated lists make it slightly less scannable than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 35-action, 18-parameter tool with no annotations and no output schema, this is a minimal-but-adequate orientation: it names the domain, method families, and sample intents while leaving action semantics to the detailed schema. Gaps remain around destructive behavior, output shape, and the relationship between categories and stages, but the rich schema compensates substantially.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 18 parameters have schema descriptions (100% coverage), so the description is not required to repeat them. It adds high-level domain context (product rows, contact bindings) and multilingual task vocabulary, but no parameter-level detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource ('Bitrix24 CRM deals') and enumerates capability areas: CRUD, funnels/categories, product rows, contact bindings, timeline. The method-family list and multilingual task phrases make it easy to distinguish from siblings like bx24_crm_contacts or bx24_crm_products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The trigger phrases ('create deal, find deals, move stage, close deal, product rows') imply common use cases, but there is no explicit when-to-use vs alternatives or when-not-to-use guidance. An agent must infer deal-related usage from the name and domain list rather than being told when this tool beats a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_documentsC
Bitrix24 CRM document generator (генератор документов): templates, documents, numerators, bindings, providers. Methods crm.documentgenerator.* (REST 1.0 + 3.0). RU/EN: документ, шаблон документа, счёт, договор, нумератор / document, document template, invoice, contract, numerator.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Document/workflow template ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| token | No | Document access token (for document_get/delete) | |
| action | Yes | Operation to perform: - "template_list": List document templates - "template_get": Get a template by ID - "template_add": Add a document template - "template_update": Update a document template - "template_delete": Delete a document template (destructive) - "template_fields": Describe template fields - "document_add": Generate a document from a template (templateId + entityId + entityType) - "document_get": Get a document by ID (requires token) - "document_list": List generated documents - "document_delete": Delete a document (destructive, requires token) - "document_fields": Describe document fields - "document_enable": Enable a public document link - "document_disable": Disable a public document link - "binding_add": Bind a template to an entity type - "binding_list": List template bindings - "binding_get": Get a binding - "binding_delete": Delete a binding (destructive) - "binding_fields": Describe binding fields - "numerator_add": Add a document numerator (numbering template) - "numerator_get": Get a numerator - "numerator_list": List numerators - "numerator_update": Update a numerator - "numerator_delete": Delete a numerator (destructive) - "region_list": List document regions (locale) - "provider_list": List document providers (data sources) | |
| fields | No | Template/document/numerator fields (per Bitrix24 docs for the method) | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| entityId | No | Entity ID for document generation | |
| documentId | No | Document generator document ID | |
| entityType | No | Entity type for binding (e.g. crm_deal, crm_lead) | |
| templateId | No | Document/workflow template ID | |
| numeratorId | No | Document numerator ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions REST versions and the general domain but does not disclose destructive behavior, authentication/token requirements, rate limits, or side effects. Some destructive actions are labeled in the schema's action enum, but the description itself adds little behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core purpose. The bilingual RU/EN note is useful for matching Russian user language and does not add excessive length. Some repetition of 'document' occurs, but the overall structure is compact and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a large, multi-action tool with 14 parameters and no output schema, yet the description provides only a high-level summary. It lacks guidance on how parameters combine, which actions require tokens, expected return shapes, or common workflows. The schema's action descriptions help, but the description itself is not complete enough for such a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-level meaning beyond the schema, but it does provide a high-level vocabulary that maps to parameter groups (templates, documents, numerators, bindings, providers). The schema already documents each parameter, including the detailed action enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a Bitrix24 CRM document generator and enumerates its main object groups: templates, documents, numerators, bindings, providers. It also ties it to the crm.documentgenerator.* method namespace. However, it does not explicitly distinguish itself from sibling tools like bx24_crm_invoices or bx24_crm_workflows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as bx24_crm_invoices or bx24_disk. The description implies the domain (document generation) but provides no conditions, prerequisites, or exclusions. The action enum in the schema contains operation details, but the description itself offers no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_duplicatesC
Bitrix24 CRM duplicate search & merge. Methods crm.duplicate.*, crm.entity.mergeBatch (REST 1.0 + 3.0). RU/EN: дубли, найти дубли, объединить / duplicates, find duplicates, merge.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Communication type for findbycomm | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "findbycomm": Find duplicates by communication (email/phone) - "findbyfields": Find duplicates by matching fields - "merge": Merge entities by ID (mainId absorbs otherIds) — destructive - "mergeBatch": Batch-merge duplicates — destructive, irreversible - "volatileType_fields": Describe volatile duplicate type fields - "volatileType_list": List volatile duplicate types - "volatileType_register": Register a volatile duplicate type - "volatileType_unregister": Unregister a volatile duplicate type (destructive) - "status_list": List CRM status/dictionary elements (stages, sources, ...) - "status_get": Get a status element by ID - "status_add": Create a status element - "status_update": Update a status element - "status_delete": Delete a status element (destructive) - "status_fields": Describe status fields - "status_entity_items": Get status items by entity ID - "status_entity_types": List status entity types | |
| entity | No | Entity type for findbyfields/merge | |
| fields | No | Fields to match for findbyfields (e.g. NAME, LAST_NAME, EMAIL) | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| mainId | No | Entity ID | |
| select | No | Array of field names to return (projection) | |
| values | No | Communication values (emails or phones) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| otherIds | No | IDs to merge into mainId | |
| statusId | No | CRM status ID (crm.status.* / dictionaries) | |
| statusFields | No | Status element fields: NAME, STATUS_ID, SORT, COLOR | |
| statusEntityId | No | Status entity ID (e.g. STATUS, SOURCE) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden, but it only says 'search & merge' and lists method names. It does not mention that merge is destructive, irreversible, or causes mainId to absorb otherIds; the schema conveys these details, but the description adds no behavioral safety context beyond 'merge.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very compact: one purpose sentence, one method sentence, and one multilingual keyword sentence. It is front-loaded with the primary purpose and contains no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a highly complex tool with 15 parameters, 16 distinct actions, and no output schema, yet the description does not explain return values, destructive side effects, or which action family to use when. The rich schema partially compensates, but an agent would still lack high-level guidance for safely invoking this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter and action. The description adds no parameter-level meaning, but under the baseline rule this is acceptable and needs no deduction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('Bitrix24 CRM duplicate search & merge') and names the relevant REST methods, which clearly separates this tool from the CRM siblings. However, it only advertises duplicate search/merge even though the schema includes a large set of status_* and volatileType_* actions, so it under-describes the tool's actual scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to choose this tool over alternatives, and no exclusions such as 'for regular CRM records use bx24_crm_leads/contacts/etc.' The RU/EN keyword aliases imply duplicate-related queries, but they do not tell an agent when status or volatile-type actions are appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_invoicesB
Bitrix24 CRM invoices (SMART_INVOICE): CRUD, stages, product rows. Methods crm.item.* (entityTypeId=31), crm.status.* (REST 1.0 + 3.0). RU/EN: счёт, создать счёт, найти счета / invoice, create invoice, find invoices.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| row | No | Single product row | |
| rows | No | Product rows: {PRODUCT_ID, PRICE, QUANTITY} | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform (entityTypeId=31 is injected automatically). | |
| fields | No | Invoice fields. Use action=fields to list them. | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Confirm destructive actions (delete, setProductRows). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the method families (crm.item.*, crm.status.*), the injected entityTypeId=31, and the REST versions, which gives useful operational context. It does not reveal side effects, permissions, reversibility, or what happens on destructive actions, though the schema's 'confirm' parameter partially covers destructive actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the entity and capability summary. Each sentence provides distinct value: domain, operations, technical method mapping, and multilingual search terms. The RU/EN list adds a bit of redundancy but is short and useful for Bitrix24's user base.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 10-parameter, 10-action tool with no output schema, the description provides a good orientation but not full operational completeness. It covers the main operation categories and technical context, yet lacks examples, response/return behavior, error conditions, and explicit guidance on combining actions like fields and product-rows operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains all parameters. The description adds some higher-level context about underlying API methods and REST versions, but it does not meaningfully clarify individual parameter semantics beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (Bitrix24 CRM invoices / SMART_INVOICE) and the scope of operations: CRUD, stages, and product rows. It distinguishes the tool from other CRM siblings by naming the invoice entity and the underlying methods crm.item.*. However, it is a multi-action wrapper rather than a single specific verb, so it does not define one crisp operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for invoice-related operations, product rows, and stage handling, and it provides Russian/English terms that help route queries. It does not explicitly state when to prefer this tool over alternatives or when not to use it, so the guidance is mostly inferred from the tool name and entity type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_leadsC
Bitrix24 CRM leads: CRUD, fields, contacts, user fields. Methods crm.lead.* (REST 1.0 + 3.0). RU/EN: лид, новый лид, создать лид, найди лиды, обнови лид, удали лид / lead, create lead, find leads, update lead, delete lead.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| rows | No | Product row array: {PRODUCT_ID, PRICE, QUANTITY, ...} | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "add": Create a lead (TITLE required) - "get": Get a lead by ID - "list": List/filter leads - "update": Update lead fields by ID - "delete": Delete a lead (destructive) - "fields": Describe all lead fields — call first when unsure - "contact_get": List contacts bound to a lead - "contact_add": Bind a contact to a lead - "contact_delete": Unbind a contact (destructive) - "contact_items_set": Set the full set of contacts on a lead - "contact_items_delete": Clear all contacts from a lead (destructive) - "userfield_get": Get a custom lead field - "userfield_add": Create a custom lead field - "userfield_update": Update a custom lead field - "userfield_delete": Delete a custom lead field (destructive) - "convert": Convert a lead to a deal/contact - "productrows_get": Get lead product rows - "productrows_set": Overwrite lead product rows (destructive — full rewrite) - "details_get": Get lead card configuration (layout) - "details_set": Set lead card configuration - "details_reset": Reset lead card configuration to default | |
| fields | No | Lead fields: TITLE (required), NAME, LAST_NAME, PHONE[], EMAIL[], COMPANY_TITLE, STATUS_ID, SOURCE_ID, ASSIGNED_BY_ID. Use action=fields for the full list. | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| contactId | No | Contact ID bound to the lead | |
| userfield | No | User field definition: FIELD_NAME, USER_TYPE_ID, LABEL, ... | |
| contactIds | No | Contact IDs to set | |
| userfieldId | No | CRM userfield ID (e.g. UF_CRM_123) | |
| configFields | No | Lead card configuration (details.configuration.*) fields |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral-transparency burden. It only states API method families and REST versions, without disclosing auth needs, rate limits, irreversibility, or confirmation behavior. The schema's action enum marks some actions as 'destructive', but the description itself adds no such context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the resource and scope. The RU/EN synonym list adds length but serves multilingual query matching. No redundant filler, though the synonym list is slightly more than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides a broad overview but omits several action families present in the schema, such as productrows_*, details_*, and convert. With 14 parameters and 21 actions, the top-level description is thin. However, the schema itself is extensively detailed with 100% coverage, so the combination is mostly adequate for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description itself adds no parameter-level meaning; it merely lists categories. The detailed action and parameter descriptions reside in the schema, which already documents all parameters thoroughly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource ('Bitrix24 CRM leads') and the main capability areas ('CRUD, fields, contacts, user fields'). This distinguishes it from sibling CRM tools at a glance, though it is an umbrella for many actions rather than a single specific operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use guidance or alternative tool exclusions. It does not reference sibling tools such as bx24_crm_deals or bx24_crm_contacts. The only usage hint ('call first when unsure') lives inside the schema's action enum for 'fields', not in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_productsB
Bitrix24 trade catalog: products, sections, prices, stores, product rows, price types, measures, VAT, ratios, rounding rules, extra charges, inventory documents, product properties, variations (offers), SKU heads, services. Methods catalog.* (REST 1.0 + 3.0). RU/EN: каталог, товар, раздел, цена, склад, товарная позиция, вариация, услуга, тип цены, единица измерения, НДС, коэффициент, документ склада, свойство товара / catalog, product, section, price, store, variation, offer, sku, service, price type, measure, VAT, ratio, inventory document, product property.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| vatId | No | Catalog VAT rate ID | |
| action | Yes | Operation to perform: - "product_add": Create a product (NAME required) - "product_get": Get a product by ID - "product_list": List products - "product_update": Update product fields - "product_delete": Delete a product (destructive) - "product_fields": Describe product fields - "section_add": Create a section - "section_get": Get a section - "section_list": List catalog sections - "section_update": Update a section - "section_delete": Delete a section (destructive) - "section_fields": Describe section fields - "price_add": Add a price - "price_get": Get a price - "price_list": List prices - "price_update": Update a price - "price_delete": Delete a price (destructive) - "price_fields": Describe price fields - "store_add": Add a warehouse - "store_get": Get a warehouse - "store_list": List warehouses - "store_update": Update a warehouse - "store_delete": Delete a warehouse (destructive) - "store_fields": Describe warehouse fields - "productrow_add": Add a product row to an entity - "productrow_get": Get a product row by ID - "productrow_list": List product rows - "catalog_list": List trade catalogs - "catalog_get": Get a trade catalog - "catalog_isOffers": Check if a catalog holds variations (offers) - "catalog_fields": Describe trade catalog fields - "priceType_add": Add a price type - "priceType_get": Get a price type - "priceType_list": List price types - "priceType_update": Update a price type - "priceType_delete": Delete a price type (destructive) - "priceType_fields": Describe price type fields - "measure_add": Add a measurement unit - "measure_get": Get a measurement unit - "measure_list": List measurement units - "measure_update": Update a measurement unit - "measure_delete": Delete a measurement unit (destructive) - "measure_fields": Describe measure fields - "vat_add": Add a VAT rate - "vat_get": Get a VAT rate - "vat_list": List VAT rates - "vat_update": Update a VAT rate - "vat_delete": Delete a VAT rate (destructive) - "vat_fields": Describe VAT fields - "ratio_list": List measurement ratios - "ratio_fields": Describe ratio fields - "roundingRule_add": Add a rounding rule - "roundingRule_get": Get a rounding rule - "roundingRule_list": List rounding rules - "roundingRule_update": Update a rounding rule - "roundingRule_delete": Delete a rounding rule (destructive) - "roundingRule_fields": Describe rounding rule fields - "extra_get": Get an extra charge - "extra_list": List extra charges - "extra_fields": Describe extra charge fields - "storeProduct_get": Get a stock record - "storeProduct_list": List stock records - "storeProduct_fields": Describe stock fields - "document_add": Add an inventory document - "document_list": List inventory documents - "document_update": Update an inventory document - "document_delete": Delete an inventory document (destructive) - "document_conduct": Conduct (post) an inventory document - "document_cancel": Cancel conducting a document (destructive) - "document_modeStatus": Check warehouse inventory mode - "document_fields": Describe inventory document fields - "document_element_add": Add an item to an inventory document - "document_element_list": List document items - "document_element_update": Update a document item - "document_element_delete": Delete a document item (destructive) - "document_element_fields": Describe document item fields - "documentcontractor_add": Add a contractor link - "documentcontractor_list": List contractor links - "documentcontractor_delete": Delete a contractor link (destructive) - "documentcontractor_fields": Describe contractor fields - "property_add": Add a product property - "property_get": Get a product property - "property_list": List product properties - "property_update": Update a product property - "property_delete": Delete a product property (destructive) - "property_fields": Describe property fields - "propertyEnum_add": Add a property enum value - "propertyEnum_get": Get a property enum value - "propertyEnum_list": List property enum values - "propertyEnum_update": Update a property enum value - "propertyEnum_delete": Delete a property enum value (destructive) - "propertyEnum_fields": Describe enum fields - "propertyFeature_add": Add a property feature - "propertyFeature_get": Get a property feature - "propertyFeature_list": List property features - "propertyFeature_update": Update a property feature - "propertyFeature_availableFeatures": List available features for a property - "propertyFeature_fields": Describe property feature fields - "propertySection_set": Set property-section bindings - "propertySection_get": Get a property-section binding - "propertySection_list": List property-section bindings - "offer_add": Add a product variation (offer) - "offer_get": Get a variation - "offer_list": List variations - "offer_update": Update a variation - "offer_delete": Delete a variation (destructive) - "offer_fields": Describe variation fields - "sku_add": Add a SKU head (parent product) - "sku_get": Get a SKU head - "sku_list": List SKU heads - "sku_update": Update a SKU head - "sku_delete": Delete a SKU head (destructive) - "sku_fields": Describe SKU head fields - "service_add": Add a service - "service_get": Get a service - "service_list": List services - "service_update": Update a service - "service_delete": Delete a service (destructive) - "service_fields": Describe service fields - "enum_getRoundTypes": List price rounding types - "enum_getStoreDocumentTypes": List inventory document types | |
| fields | No | Product/section/price/etc. fields (per Bitrix24 docs for the method) | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| extraId | No | Catalog extra charge ID | |
| ratioId | No | Catalog measurement ratio ID | |
| catalogId | No | Trade catalog ID | |
| featureId | No | Property feature ID | |
| measureId | No | Catalog measure (unit) ID | |
| rowFields | No | Product row: {PRODUCT_ID, PRICE, QUANTITY, OWNER_TYPE, OWNER_ID} | |
| propertyId | No | Catalog product property ID | |
| priceFields | No | Price: {PRODUCT_ID, PRICE, CURRENCY, PRICE_TYPE_ID} | |
| priceTypeId | No | Catalog price type ID | |
| contractorId | No | Catalog contractor ID | |
| sectionFields | No | Section fields: NAME, IBLOCK_ID | |
| propertyEnumId | No | Catalog property enum value ID | |
| roundingRuleId | No | Catalog rounding rule ID | |
| storeProductId | No | Catalog stock record ID | |
| inventoryDocumentId | No | Catalog inventory document ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description itself carries the behavioral disclosure burden. The top-level description only lists entity domains and REST versions; it does not state that operations range from reads to destructive deletes, that document conduct/cancel changes inventory state, or that confirmations may be required. Some destructive cues exist inside the action enum descriptions in the schema, but the tool description itself does not provide this transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a fairly dense list of trade-catalog entities and RU/EN keyword synonyms, followed by the method-family note. It front-loads the domain but reads more like a tag cloud than a concise behavioral summary; the keyword block, while useful for search, adds length without operational guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity, multi-action tool with 24 parameters, over 100 possible actions, nested objects, and no output schema or annotations. The description identifies what domain it covers but does not explain the action-selection pattern, shared parameter behavior, return shapes, error conditions, or side-effect semantics. The schema helps, but the tool-level description is not complete enough for an agent to invoke it confidently across its many actions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter has some documentation, and the `action` enum includes unusually detailed per-operation descriptions, including destructive flags and required fields like 'NAME required' for product_add. The main description adds no extra parameter-level meaning beyond naming the domain, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource domain: 'Bitrix24 trade catalog' and enumerates the managed entity types (products, sections, prices, stores, offers, SKUs, etc.). It also names the API family, 'Methods catalog.*', which distinguishes it from CRM modules like leads, deals, and contacts, though it does not explicitly name a sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: any trade-catalog operation involving the listed entities and catalog.* REST methods. However, it does not explicitly state when not to use it, how it relates to siblings, or prerequisites such as catalog setup or permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_quotesB
Bitrix24 CRM quotes (коммерческие предложения): CRUD, product rows, contact bindings, user fields. Methods crm.quote., crm.quote.productrows., crm.quote.contact., crm.quote.userfield. (REST 1.0 + 3.0). RU/EN: коммерческое предложение, КП, создать КП / quote, create quote, proposal.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | CRM quote ID | |
| rows | No | Product row array: {PRODUCT_ID, PRICE, QUANTITY, ...} | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "add": Create a quote (TITLE required) - "get": Get a quote by ID - "list": List/filter quotes - "update": Update quote fields - "delete": Delete a quote (destructive) - "fields": Describe quote fields - "productrows_get": Get quote product rows - "productrows_set": Overwrite quote product rows (destructive — full rewrite) - "contact_add": Bind a contact to a quote - "contact_delete": Unbind a contact (destructive) - "contact_items_get": List contacts bound to a quote - "contact_items_set": Set contact bindings - "userfield_get": Get a custom quote field - "userfield_add": Create a custom quote field - "userfield_update": Update a custom quote field - "userfield_delete": Delete a custom quote field (destructive) | |
| fields | No | Quote fields: TITLE (required), OPPORTUNITY, CURRENCY_ID, COMPANY_ID, CONTACT_ID, ASSIGNED_BY_ID, STATUS_ID, CLOSED. | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| contactId | No | Contact ID (CRM) | |
| userfield | No | User field definition: FIELD_NAME, USER_TYPE_ID, LABEL | |
| contactIds | No | Contact IDs to bind | |
| userfieldId | No | CRM userfield ID (e.g. UF_CRM_123) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden, but it only lists operation categories like 'CRUD' and product rows. It does not mention that quotes can be deleted, that product rows may be fully overwritten, or that contact unbinding is destructive; the schema's action enum flags some actions as destructive, but the top-level description itself lacks this transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence with no filler. It front-loads the resource and operation families, then adds API method names and multilingual terms, all of which are useful for an agent; every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex 13-parameter, 16-action tool with no annotations and no output schema, yet the description only summarizes scope. It omits return-value expectations, prerequisites for actions, side-effect ordering, and how to choose among the many embedded actions, leaving substantial context for the agent to infer from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema description coverage is 100%, so the baseline is 3; every parameter already has a meaningful description. The tool description adds only high-level domain context and does not enhance parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific resource (Bitrix24 CRM quotes) and enumerates the operation families: CRUD, product rows, contact bindings, and user fields. It also names the corresponding API method groups, making the tool's scope unmistakable and distinct from sibling CRM tools like deals, contacts, or invoices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many sibling CRM tools, such as bx24_crm_deals or bx24_crm_invoices. Usage context is only implied through the word 'quotes' and the listed method families; there are no exclusions or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_requisitesC
Bitrix24 CRM requisites (реквизиты): CRUD, presets, bank details, links, user fields. Methods crm.requisite., crm.requisite.preset., crm.requisite.bankdetail., crm.requisite.link., crm.requisite.userfield.* (REST 1.0 + 3.0). RU/EN: реквизиты, добавить реквизиты компании, пресет, банковские реквизиты, привязка / requisites, company details, preset, bank details, link.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "add": Create requisite (INN/KPP/etc.) for a company/contact - "get": Get a requisite by ID - "list": List requisites - "update": Update requisite fields - "delete": Delete a requisite (destructive) - "fields": Describe requisite fields - "preset_list": List requisite presets - "preset_get": Get a preset by ID - "preset_add": Add a requisite preset - "preset_update": Update a preset - "preset_delete": Delete a preset (destructive) - "preset_countries": List preset countries - "preset_fields": Describe preset fields - "bankdetail_add": Add bank details - "bankdetail_get": Get bank details - "bankdetail_list": List bank details - "bankdetail_update": Update bank details - "bankdetail_delete": Delete bank details (destructive) - "bankdetail_fields": Describe bank detail fields - "link_add": Link a requisite to an entity - "link_register": Register a requisite link - "link_get": Get a requisite link - "link_list": List requisite links - "link_unregister": Unregister a requisite link (destructive) - "link_fields": Describe link fields - "userfield_add": Create a requisite user field - "userfield_get": Get a requisite user field - "userfield_list": List requisite user fields - "userfield_update": Update a requisite user field - "userfield_delete": Delete a requisite user field (destructive) | |
| fields | No | Requisite fields: ENTITY_TYPE_ID, ENTITY_ID, PRESET_ID, NAME, RQ_INN, RQ_KPP, RQ_COMPANY_NAME, RQ_ADDRESS. | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| presetId | No | Requisite preset ID | |
| userfield | No | User field definition | |
| linkFields | No | Link fields: ENTITY_TYPE_ID, ENTITY_ID, REQUISITE_ID | |
| userfieldId | No | CRM userfield ID (e.g. UF_CRM_123) | |
| bankdetailId | No | Bank detail ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It only lists CRUD categories and REST method prefixes; it does not mention destructive side effects, permission requirements, rate limits, or system behavior after delete/update operations. The schema's action enum marks destructive actions, but that is structured data, not descriptive transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the resource name, but it reads as a keyword index rather than a structured explainer. The bilingual RU/EN tail adds search-surface value but no operational clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The input schema is rich and the action enum documents each operation, so the description is not solely responsible for completeness. However, for a tool with 32 operations, nested objects, no output schema, and five sub-resources, the description lacks high-level selection criteria or usage examples to help an agent choose the right action confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 13 parameters and the action enum. The description adds no parameter-level meaning beyond naming the sub-resources, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (Bitrix24 CRM requisites) and the operation families (CRUD, presets, bank details, links, user fields), which clearly separates it from sibling CRM tools. It stops short of a single crisp verb+object sentence, but the method groups are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like bx24_crm_companies or bx24_crm_contacts. The description implies it is for requisites, but it offers no scenarios, exclusions, or comparisons to related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_stagehistoryC
Bitrix24 CRM stage history (история перемещений по стадиям): list, get, fields. Methods crm.stagehistory.* (REST 1.0 + 3.0). RU/EN: история стадий, движение по воронке, история сделки / stage history, funnel movement, deal history.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "list": List stage movement history (filter by ENTITY_TYPE/RECORD_ID) - "get": Get a stage history record by ID - "fields": Describe stage history fields | |
| fields | No | Stage history record fields (per Bitrix24 docs) | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it only names methods and REST versions. It does not disclose read-only behavior, pagination semantics, required entity context, response characteristics, or differences between REST 1.0 and 3.0.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the tool's purpose and method namespace. However, the final RU/EN synonym list is largely redundant, repeating 'stage history' and adding terms that do not materially help an agent select or invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a multi-action tool with nested objects, no output schema, and no annotations, so the description is under-specified. An agent can infer the basic domain but gets no guidance on return shapes, filtering prerequisites, action-specific parameter relationships, or API-version behavioral differences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all 8 parameters with 100% coverage, so the baseline of 3 applies. The description adds no parameter-level meaning beyond what is already in the schema and action enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly identifies the resource as Bitrix24 CRM stage history and enumerates supported operations (list, get, fields), which aligns with the action enum. It does not explicitly contrast with sibling tools like crm_deals or crm_automation, but the resource scope is specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as crm_deals or crm_automation. The bilingual labels ('funnel movement, deal history') imply stage-history use cases, but there are no clear conditions, exclusions, or routing hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_summaryA
Bitrix24 CRM summary: total counts of leads, deals, contacts, companies plus lead statuses and deal categories (funnels) in one call (REST 1.0 + 3.0). RU/EN: сводка CRM, сколько лидов/сделок/контактов/компаний, обзор CRM, статусы лидов, воронки / CRM summary, how many leads/deals/contacts/companies, lead statuses, deal funnels.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It transparently reveals that the tool performs aggregation across multiple CRM entities and returns counts, lead statuses, and deal funnels in a single call, including the REST version support. However, it does not disclose response format details, whether counts are live or approximate, or any limits, which are relevant for a zero-parameter aggregate tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence is clear and front-loaded with the essential behavior: aggregate CRM counts plus statuses and funnels. However, the RU/EN bilingual section largely repeats the same information, adding length without new substance for an English-language agent. It is not egregiously verbose, but the redundancy prevents a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter summary tool with no output schema, the description covers the essential contextual information: what data is summarized, that it includes statuses and funnels, and that it is a one-call operation. Sibling tools make the alternative paths obvious. It does not document exact response fields, but that is less critical given the simple, self-contained nature of the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters with 100% schema description coverage, so there are no parameter semantics to document. The description appropriately explains what the no-parameter call returns, which is sufficient. A baseline of 4 is appropriate here because the description compensates for the lack of any parameter detail by defining the tool's output focus.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear resource ('Bitrix24 CRM summary') and specifies what it provides: total counts of leads, deals, contacts, companies, plus lead statuses and deal funnels. It is distinguishable from sibling entity-specific tools like bx24_crm_leads or bx24_crm_deals because it explicitly emphasizes aggregate summary data. It lacks a strong imperative verb like 'gets' or 'returns', but the intent is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for high-level CRM overviews ('total counts', 'summary', 'in one call'), which suggests using it instead of querying individual CRM entity tools. However, it does not explicitly state when to use it versus alternatives such as bx24_crm_leads or bx24_crm_deals, nor does it mention exclusions like 'for detailed lists use the entity-specific tools'. Usage context is implied but not fully articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_trackingC
Bitrix24 CRM tracking (отслеживание источников): traces, sources, channels. Methods crm.tracking.trace., crm.tracking.source., crm.tracking.channel.* (REST 1.0 + 3.0). RU/EN: отслеживание, источник, трекинг, UTM, канал / tracking, source, UTM, channel, trace.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Tracking trace ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "trace_add": Add a tracking trace (UTM/visit record) - "trace_get": Get a trace by ID - "trace_list": List tracking traces - "trace_delete": Delete a trace (destructive) - "source_add": Add a tracking source (UTM source) - "source_get": Get a tracking source - "source_list": List tracking sources - "source_update": Update a tracking source - "source_delete": Delete a tracking source (destructive) - "channel_list": List tracking channels | |
| fields | No | Trace/source fields (per Bitrix24 docs for the method) | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| sourceId | No | Tracking source ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only lists resource categories and REST versions. It does not mention mutation risks, reverseability, pagination behavior, authentication requirements, side effects, or result shapes; destructive operations are only hinted at in the input schema's action descriptions, not in the main description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the main scope, but the RU/EN keyword list near the end adds repetitive filler rather than substantive structure. It is concise but not every token earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex multi-action tool with ten actions, nested object parameters, no output schema, and no annotations, yet the description provides only a general scope and method names. It lacks an overview of the entities' relationships, operation grouping, or any usage context that would let an agent select and invoke actions correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all nine parameters and the action enum. The description adds no parameter-level meaning beyond what is available in the schema, which matches the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the CRM tracking domain (traces, sources, channels) and lists the resource method groups crm.tracking.trace.*, crm.tracking.source.*, and crm.tracking.channel.*, making the tool's scope understandable. It is not a tautology and is distinguishable from the sibling tools by its tracking focus, though it lacks a single strong verb-and-resource statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no exclusions, and no mention of what situations require this tool instead of, say, bx24_crm_deals or bx24_crm_contacts. The method list implies coverage but does not help an agent decide which operation is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_crm_webformC
Bitrix24 CRM webforms (веб-формы) & results: form CRUD, results, options. Methods crm.webform., crm.webform.result., crm.webform.option.* (REST 1.0 + 3.0). RU/EN: веб-форма, форма обратной связи, результат, заявка с сайта / webform, feedback form, result, lead form.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | CRM webform ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "add": Create a CRM webform - "get": Get a webform by ID - "list": List webforms - "update": Update a webform - "delete": Delete a webform (destructive) - "fields": Describe webform fields - "result_add": Add a webform result (form submission) - "result_list": List webform results - "result_get": Get a webform result - "result_delete": Delete a webform result (destructive) - "result_fields": Describe result fields - "option_list": List webform options - "option_add": Add a webform option - "option_update": Update a webform option - "option_delete": Delete a webform option (destructive) - "option_get": Get a webform option | |
| fields | No | Webform/result/option fields (per Bitrix24 docs for the method) | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| resultId | No | Webform result ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. The term 'CRUD' hints at mutations and deletion, but the description does not disclose destructive side effects, permissions, irreversibility, or other behavioral traits. It leaves important safety context to the action enum descriptions rather than the tool description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the core resource and operation families. The RU/EN synonym list adds some redundancy but may help match user intent in different languages. Overall, it is concise without being underspecified at the topic level.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having a rich action enum and full schema coverage, the tool lacks an output schema and annotations. The description does not explain return values, pagination behavior, destructive-action confirmation, or the REST 1.0 vs 3.0 implications. For a tool with this many operation families, the description alone is not enough for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even though the tool description itself adds no parameter-level meaning. The inline action descriptions in the schema effectively document the 16 operations, so the agent has enough parameter context, but the top-level description contributes nothing extra.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as Bitrix24 CRM webforms plus their results and options, and names the API method families (crm.webform.*, crm.webform.result.*, crm.webform.option.*). It is specific enough to distinguish from sibling CRM entity tools, though it does not explicitly contrast itself with any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool covers but provides no guidance on when to choose it over alternatives, nor when not to use it. There is no mention of prerequisites, preferred use cases, or exclusions that would help an agent decide between this tool and the many sibling CRM tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_departmentsC
Bitrix24 departments (org structure): CRUD + IM dept info. Methods department., im.department. (REST 1.0 + 3.0). RU/EN: отдел, подразделение, оргструктура, найти отдел / department, org structure, find department.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "get": Get a department by ID - "list": List/filter departments - "add": Create a department - "update": Update a department - "delete": Delete a department (destructive) - "get_all": Describe department fields - "fields": Describe department fields - "im_get": Get IM info for a department | |
| fields | No | Department fields: NAME, PARENT, SORT, UF_HEAD | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure, but it only labels the tool as CRUD + IM info. It does not mention that delete is destructive, what pagination/start implies, permission requirements, REST version differences, or what responses look like. The destructive nature of 'delete' is only visible in the schema, not the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, then adds the method namespaces and useful RU/EN search terms. Every part contributes either scoping or retrieval value, though the string of slash-separated terms at the end feels slightly terse rather than fully structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, nested objects, no annotations, and no output schema, this description is only a high-level stub. It does not explain operation-specific caveats, response shapes, destructive-action confirmations, or how REST 1.0 and 3.0 differ, leaving an agent undersupplied for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the description adds no parameter-level meaning beyond what the schema already provides. The action enum gives useful semantics for most actions, though 'get_all' is confusingly described as 'Describe department fields' in the schema, and the description does not resolve this ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies Bitrix24 departments/org structure as the resource and states the operation family (CRUD + IM department info). It also gives the relevant method namespaces (department.*, im.department.*), which helps distinguish it from the many CRM/task/user siblings, though it doesn't explicitly contrast it with related tools like bx24_users or bx24_hr.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor when to choose one action over another (e.g., get vs list vs get_all). The only usage signal is implicit in the action enum, and the description does not state conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_diskB
Bitrix24 Disk: storages, folders, files, versions, external links. Methods disk.storage., disk.folder., disk.file., disk.version., disk.rights.* (REST 1.0 + 3.0). RU/EN: файл, папка, диск, загрузить файл, скачать, содержимое папки, версия, публичная ссылка / file, folder, disk, upload, download, version, external link.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "storage_list": List available storages - "storage_get": Get a storage by ID - "storage_addFolder": Create a folder in a storage root - "storage_getChildren": List storage root children - "storage_uploadFile": Upload a file to a storage root - "storage_getTypes": List available storage types - "storage_getForApp": Get the app storage info - "storage_fields": Describe storage fields - "folder_addSubFolder": Create a subfolder - "folder_get": Get a folder by ID - "folder_getChildren": List children of a folder - "folder_copyTo": Copy a folder - "folder_moveTo": Move a folder - "folder_rename": Rename a folder - "folder_deleteTree": Delete a folder tree (destructive) - "folder_markDeleted": Move a folder to trash (destructive) - "folder_restore": Restore a folder from trash - "folder_getExternalLink": Get a public link to a folder - "folder_shareToUser": Grant folder access to a user - "folder_fields": Describe folder fields - "file_upload": Upload a file into a folder (file=[{NAME, CONTENT base64}]) - "file_get": Get file metadata - "file_search": Search files - "file_copyTo": Copy a file - "file_moveTo": Move a file - "file_rename": Rename a file - "file_delete": Delete a file (destructive) - "file_markDeleted": Mark a file deleted (destructive) - "file_restore": Restore a deleted file - "file_getVersions": List file versions - "file_uploadVersion": Upload a new version of a file - "file_getExternalLink": Get a public link to a file - "file_restoreFromVersion": Restore a file from a specific version - "file_fields": Describe file fields - "attachedObject_get": Get an attached object (file attached to an entity) - "rights_getTasks": List available Disk access levels | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| fileArray | No | Files: [{NAME, CONTENT base64}] | |
| storageId | No | Storage ID | |
| versionId | No | File version ID | |
| fileFields | No | File fields: NAME, CONTENT (base64) | |
| shareFields | No | Share fields: TO_USER_ID, TASK_ID (access level) | |
| folderFields | No | Folder fields: NAME | |
| targetFolderId | No | Target folder ID for copy/move | |
| attachedObjectId | No | Attached object ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden, but it does not mention side effects, reversibility, permissions, rate limits, or response behavior. The RU/EN keyword list hints at operations like upload, download, and external links, but it gives no warning about destructive actions such as folder/file deletion; the schema's own '(destructive)' labels are structured data, not description credit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and starts with the core domain, but the method-family list and the RU/EN keyword dump are somewhat redundant and unstructured. It is not bloated, yet the trailing bilingual list does not earn its place as clearly as the opening scope sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a large multi-operation tool with 38 actions, 15 parameters, no annotations, and no output schema, the description is too thin. It omits cross-cutting operational context such as return-value expectations, authentication or permission considerations, and explicit guidance on destructive operations. The schema compensates for per-action detail, but the description alone leaves significant top-level gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies; all 15 parameters already have meaningful descriptions. The description's RU/EN vocabulary adds high-level search terms but no parameter-specific semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the Bitrix24 Disk domain and lists the entity types it covers: storages, folders, files, versions, and external links. It also names the method families (disk.storage.*, disk.folder.*, disk.file.*, etc.), which distinguishes this from sibling CRM, tasks, and IM tools, though it lacks a single direct verb like 'manage' or 'access'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement of when to use this tool versus alternatives, but the method-family listing makes the intended scope reasonably clear: any Bitrix24 Disk storage/folder/file/version operation belongs here. The guidance is implied rather than stated, and no sibling disk tool is mentioned for exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_eventsB
Bitrix24 event subscriptions + offline queue. Methods event.bind, event.get, event.unbind, event.offline.* (REST 1.0 + 3.0). RU/EN: события, подписка, webhook события, офлайн-очередь, отписаться / events, bind, subscription, offline queue, unbind.
| Name | Required | Description | Default |
|---|---|---|---|
| event | No | Event name, e.g. onCrmLeadAdd | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "bind": Subscribe a handler to an event - "unbind": Unsubscribe (destructive) - "get": List active subscriptions - "offline_list": List offline event queue - "offline_clear": Clear offline event queue (destructive) - "offline_execute": Execute offline event queue - "offline_error": Register an offline event processing error - "get_supported": List supported event names - "get_list": List subscriptions - "events_list": List all available event names | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| handler | No | Handler URL | |
| authType | No | Auth type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it does not address destructive actions, confirmation requirements, authentication needs, rate limits, or side effects. It only lists method names and REST versions. The schema action descriptions mention destructive operations, but the natural-language description itself is behaviorally thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is compact and front-loaded with the core purpose. However, the second sentence is a redundant RU/EN keyword list that repeats information already present in the first sentence, adding noise without meaningful guidance. It is not badly structured, but it is not maximally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a broad multi-action tool with 9 parameters, nested objects, no output schema, and no annotations, so the description alone is insufficient for an agent to call it correctly. It does not enumerate the full set of possible actions, explain destructive confirmations, or clarify return/offline-queue behavior. The agent must rely heavily on the schema to fill the gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the parameter semantics are already well documented. The description adds no parameter-level detail beyond listing method names, which mirrors the action enum. A baseline of 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's domain: Bitrix24 event subscriptions and the offline queue. It names the concrete methods (event.bind, event.get, event.unbind, event.offline.*) and therefore gives an agent an immediate, specific sense of what the tool does. This also distinguishes it from the many CRM/module siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for event subscription management and offline queue operations, but it gives no explicit when-to-use guidance or exclusions relative to alternatives. Sibling tools are not event-focused, so there is no direct replacement to contrast, but the description still does not state conditions for choosing one action over another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_healthA
Bitrix24 health check: verify API connectivity, credentials, and measure response time (REST 1.0 + 3.0). RU/EN: проверь подключение, работает ли API, статус соединения, пинг / check connection, is API working, health check, ping.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses that the tool verifies connectivity, credentials, and response time, and mentions the REST versions involved. As a no-parameter health check, this is sufficient behavioral transparency, though it does not describe the exact response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose. The bilingual RU/EN aliases are useful for matching varied user intent without adding verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter health-check tool, the description provides enough context for an agent to invoke it correctly. It does not detail the return structure, but the absence of an output schema and parameters lowers the need for that detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so there are no parameter semantics for the description to clarify. The baseline of 4 applies because there is nothing for the description to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'verify API connectivity, credentials, and measure response time.' It clearly differentiates this health-check tool from all the CRM, task, and communication sibling tools, which operate on specific Bitrix24 entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: to check connection, API status, credentials, or ping. It does not explicitly mention when not to use it, but the diagnostic intent is unambiguous and no alternative tool is a plausible substitute.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_hrC
Bitrix24 HR: employees + invitations. Methods humanresources.employee.*, user.add/update (REST 1.0 + 3.0). RU/EN: сотрудник, кадры, пригласить, уволить, перевести, профиль / employee, HR, invite, dismiss, transfer, profile.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "employee_list": List employees - "employee_get": Get an employee by ID - "invite": Invite a new employee (user.add) - "dismiss": Dismiss an employee (user.update to inactive) — destructive - "transfer": Transfer an employee (update department/position) - "info": Get HR info for an employee | |
| fields | No | Employee/user fields: NAME, LAST_NAME, EMAIL, UF_DEPARTMENT, WORK_POSITION | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| userId | No | User ID (numeric) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only lists methods and bilingual keywords. It does not mention that actions like dismiss or transfer are mutating, that confirmations may be required, or what side effects these operations have.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the tool's domain: 'Bitrix24 HR: employees + invitations.' The RU/EN keyword list adds useful multilingual searchability with only modest overhead, though the fragment style is slightly informal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters, nested objects, no annotations, and no output schema, this description is too thin. It does not explain prerequisites, response shapes, or the operational differences between actions sufficiently, leaving the agent dependent on the schema for most invocation decisions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter coverage, including detailed descriptions of each action in the enum, so the description need not repeat parameter-level semantics. The main description adds no additional parameter meaning, which is acceptable given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear scope: Bitrix24 HR, employees, and invitations, and names the underlying methods (humanresources.employee.*, user.add/update). However, it does not explicitly distinguish itself from sibling tools like bx24_users, and the overlap with user.add/update makes the boundary less sharp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as bx24_users or bx24_departments. The phrase 'employees + invitations' implies a context, but the description never states exclusions, prerequisites, or when a sibling tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_imB
Bitrix24 messenger: messages, notifications, user info, search, counters, recent. Methods im.message., im.notify., im.user., im.search., im.counters., im.recent. (REST 1.0 + 3.0). RU/EN: сообщение, написать, уведомление, поиск сообщений, счётчики, недавние / message, notify, search messages, counters, recent.
| Name | Required | Description | Default |
|---|---|---|---|
| ID | No | Entity ID (notify/message/department) | |
| TO | No | Recipient user ID (notify) | |
| IDS | No | Array of IDs | |
| file | No | File to upload: NAME, CONTENT base64, CHAT_ID/DIALOG_ID | |
| LIMIT | No | Page size | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| SEARCH | No | Search string | |
| STATUS | No | User status (online/away/dnd) | |
| SYSTEM | No | Send as system message | |
| action | Yes | Operation to perform: - "message_add": Send a message (DIALOG_ID, MESSAGE) - "message_update": Update a message (MESSAGE_ID, MESSAGE) - "message_delete": Delete a message (destructive) - "message_get": Get a message by ID - "message_like": Toggle 'Like' on a message - "message_share": Create a chat/task/post from a message - "message_command": Execute a chat-bot command on a message - "dialog_get": Get dialog info - "dialog_messages_list": List dialog message history - "dialog_messages_search": Search messages in a dialog - "dialog_read": Mark dialog read - "dialog_unread": Mark dialog unread - "dialog_read_all": Mark all user dialogs read - "dialog_typing": Send typing status - "dialog_mark": Mark a message for attention - "dialog_users": List dialog users - "notify_personal_add": Send a personal notification (TO, MESSAGE) - "notify_system_add": Send a system notification - "notify_delete": Delete a notification (destructive) - "notify_get": Get user notifications - "notify_read": Mark a notification read/unread - "notify_read_list": Mark notifications read by IDs - "notify_read_all": Mark all notifications read - "notify_answer": Reply to a notification with a quick answer - "notify_confirm": Interact with notification buttons - "notify_history_search": Search notification history - "user_get": Get IM user info - "user_list": List IM users by IDs - "user_status_set": Set user status (online/away/dnd) - "user_status_get": Get user status - "search_message": Search messages - "search_user": Search users in IM - "search_chat_list": Search chats by name - "search_department_list": Search departments - "search_last_add": Add a search history entry - "search_last_get": Get search history - "search_last_delete": Delete a search history entry (destructive) - "counters_get": Get chat/message counters - "recent_list": List recent dialogs - "recent_pinned": Pin a recent dialog - "recent_unpin": Unpin a recent dialog - "recent_hide": Hide a recent dialog - "department_get": Get department info (IM) - "department_managers_get": Get department managers - "department_employees_get": Get department employees - "department_colleagues_list": List user colleagues - "v2_file_upload": Upload a file to a chat (v2 API) - "v2_file_download": Get a file download URL (v2 API) - "v2_event_subscribe": Subscribe user to messenger events (v2 API) - "v2_event_get": Get accumulated messenger events (v2 API) - "v2_event_unsubscribe": Stop recording messenger events (v2 API) - "bot_list": List available bots | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| LAST_ID | No | Last message ID for pagination | |
| MESSAGE | No | Message text | |
| USER_ID | No | User ID | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| DIALOG_ID | No | Dialog ID: chatNNN or numeric user ID | |
| MESSAGE_ID | No | Message ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing side effects, authentication needs, and destructive behavior. The tool description only lists categories and method groups; it never mentions that some actions are destructive, that confirmation may be required, or what side effects occur. The schema's action enum contains some 'destructive' labels, but the description itself provides no behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the core domain ('Bitrix24 messenger'), and then lists the method groups and multilingual keywords. It avoids excessive prose. The RU/EN translation block is somewhat redundant but does not significantly harm conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity tool with 19 parameters, 50+ action enum values, nested objects, and no output schema, but the description provides only a broad category list and method group names. It lacks return-value expectations, usage context, destructive-action warnings, authentication notes, or any guidance that would help an agent safely invoke the right action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already documented in the input schema. The tool description adds no per-parameter meaning beyond the schema, but because the schema is thorough, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as the Bitrix24 messenger and enumerates its domains: messages, notifications, user info, search, counters, recent. It is specific enough to separate this tool from CRM, tasks, and disk siblings, though it does not explicitly differentiate from the closely related bx24_im_chat sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for Bitrix24 IM operations by naming message, notify, user, search, counters, and recent methods, but it gives no explicit guidance about when to prefer this tool over bx24_im_chat, bx24_bots, bx24_users, or bx24_departments. There are no exclusions or alternative-routing hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_im_chatC
Bitrix24 chats: create, members, owner, title/color/avatar, mute, messages, counters. Methods im.chat., im.dialog. (REST 1.0 + 3.0). RU/EN: чат, создать чат, участники, переименовать, замуть / chat, create chat, members, rename, mute.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | File to upload: NAME, CONTENT base64 | |
| COLOR | No | Chat color (hex) | |
| TITLE | No | Chat title | |
| USERS | No | User IDs | |
| AVATAR | No | Avatar (base64-encoded image) | |
| SEARCH | No | Search string | |
| action | Yes | Operation to perform: - "add": Create a chat (fields: TYPE, TITLE, USERS) - "get": Get chat info by CHAT_ID - "updateTitle": Rename a chat - "updateColor": Change chat color - "updateAvatar": Change chat avatar - "setOwner": Set a new chat owner - "setManager": Set/unset a chat manager (USER_ID) - "user_add": Add users (USERS array) - "user_list": List chat users - "user_delete": Remove users (destructive) - "leave": Leave a chat (destructive) - "mute": Mute/unmute a chat (MUTE_ACTION) - "sendMessage": Send a message (DIALOG_ID=CHAT_ID, MESSAGE) - "editMessage": Edit a message (MESSAGE_ID, MESSAGE) - "deleteMessage": Delete a message (destructive) - "searchMessages": Search messages in a chat - "readAll": Mark chat read - "uploadFile": Upload a file to a chat - "getCounters": Get chat counters | |
| fields | No | Chat fields: TYPE:'chat', TITLE, USERS:[...], AVATAR, EXTRANET | |
| CHAT_ID | No | Chat ID | |
| MESSAGE | No | Message text | |
| USER_ID | No | User ID | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| MESSAGE_ID | No | Message ID | |
| MUTE_ACTION | No | Mute action | |
| MANAGER_ACTION | No | Manager action: set or unset |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only lists capabilities and API method families, without mentioning that some actions are destructive, require confirmation, or have other side effects. The schema's action enum flags destructive actions, but the description itself does not reinforce this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the main feature areas and API method families. The RU/EN search-alias tail adds some redundancy but does not substantially hurt readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex multi-action tool with 15 parameters, nested objects, no annotations, and no output schema. The description is too thin to fully orient an agent: it omits when to use the tool, how destructive actions are handled, and what callers should expect in return.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all 15 parameters. The description adds no new parameter-level meaning beyond the action list, which matches the schema's action enum descriptions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as managing Bitrix24 chats and lists the major operations: create, members, owner, title/color/avatar, mute, messages, and counters. It is distinguishable from siblings like bx24_im by focusing specifically on chat operations, though it lacks a single explicit verb phrase like 'Manage Bitrix24 chats.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as bx24_im or bx24_openlines. It does not state exclusions, prerequisites, or conditions that would route an agent to a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_listsB
Bitrix24 universal lists (infoblocks): lists, fields, elements, sections. Methods lists., lists.element., lists.field., lists.section. (REST 1.0 + 3.0). RU/EN: универсальный список, инфоблок, элемент списка, поле / universal list, list element, field, section.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "list_add": Create a list - "list_get": Get list metadata - "list_update": Update a list - "list_delete": Delete a list (destructive) - "list_get_iblock_type_id": Get the info-block type ID for lists - "field_get": Get a list field - "field_add": Add a list field - "field_update": Update a list field - "field_delete": Delete a list field (destructive) - "field_type_get": Get available list field types - "element_get": Get a list element - "element_list": List elements - "element_add": Add an element - "element_update": Update an element - "element_delete": Delete an element (destructive) - "element_get_file_url": Get the file URL of an element field - "section_list": List list sections - "section_add": Add a list section - "section_update": Update a list section - "section_delete": Delete a list section (destructive) | |
| fields | No | List/element/field/section fields | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| fieldId | No | CRM userfield ID (e.g. UF_CRM_123) | |
| IBLOCK_ID | No | List (info-block) ID | |
| fieldType | No | Field type code (for field_type_get) | |
| ELEMENT_ID | No | Element ID | |
| SECTION_ID | No | Section ID | |
| IBLOCK_TYPE_ID | No | Info-block type id (lists) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses only REST 1.0 + 3.0 support and domain terminology; it does not mention destructive operations (four of the twenty actions delete data), side effects, authentication needs, or pagination/limit behavior. The destructive flags and the confirm mechanism appear only in the schema's action enum, not in the description — so the description itself fails to convey the tool's safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact — two substantive sentences plus a bilingual glossary — with the domain and method families front-loaded. The 'REST 1.0 + 3.0' note is valuable context, and the RU/EN term mapping earns its place given Bitrix24's bilingual user base. It loses one point because the glossary line is slightly redundant with the first sentence and could be tightened, but overall there is no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity tool — 14 parameters, 20 actions, nested objects, no output schema, and no annotations — yet the description only names the domain and REST versions. The rich action enum in the schema compensates substantially, but the description leaves unaddressed: what the operations return, how lists relate to fields/elements/sections, and any practical call patterns. It is minimally viable for an agent to select the tool, thanks largely to the schema, but not complete on its own.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the schema already documents all 14 parameters, including per-action semantics in the action enum and the purpose of confirm, filter, order, and select. The description itself adds no parameter-level meaning — it only names resource families. It neither compensates for gaps (there are none) nor elevates understanding beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource domain precisely: Bitrix24 universal lists (infoblocks) with their sub-entities — lists, fields, elements, sections — and names the method families (lists.*, lists.element.*, lists.field.*, lists.section.*). This clearly distinguishes it from the CRM-entity siblings (bx24_crm_leads, bx24_crm_deals, etc.). It stops short of a 5 because it enumerates resources rather than stating a crisp verb+resource action, and the RU/EN glossary, while helpful, is not a purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by the domain wording: an agent facing a request about Bitrix24 lists/infoblocks should select this tool, while CRM-entity requests route to the bx24_crm_* siblings. However, there is no explicit when-to-use guidance, no named alternatives, and no exclusions such as 'for CRM entities use bx24_crm_* instead.' The guidance is adequate but left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_mailB
Bitrix24 mail: mailboxes, messages, send, reply, forward, filters, recipient. Methods mail.mailbox., mail.message., mail.recipient., mailservice. (REST 1.0 + 3.0). RU/EN: почта, письмо, отправить письмо, ящик, фильтр / mail, email, send email, mailbox, filter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "mailbox_list": List mailboxes - "mailbox_get": Get a mailbox - "mailbox_add": Add a mailbox - "mailbox_delete": Delete a mailbox (destructive) - "mailbox_senders": List available senders for a mailbox - "mailbox_field_list": List mailbox fields - "mailbox_field_get": Get a mailbox field - "message_list": List messages - "message_get": Get a message - "message_send": Send an email (TO, SUBJECT, BODY) - "message_delete": Delete a message (destructive) - "message_reply": Reply to a message - "message_forward": Forward a message - "message_mark": Mark a message (seen/flagged) - "message_movetofolder": Move a message to a folder (destructive — leaves inbox) - "message_createtask": Create a task from a message - "message_createcalendarevent": Create a calendar event from a message - "message_createchat": Create a chat from a message - "message_createfeedpost": Create a news feed post from a message - "message_createcrmactivity": Create a CRM activity from a message - "message_removecrmactivity": Remove the CRM activity link from a message (destructive) - "message_field_list": List message fields - "message_field_get": Get a message field - "recipient_list": List recipients - "recipient_listcontacts": Search address book contacts - "recipient_listemployees": Search portal employees - "recipient_field_list": List recipient fields - "recipient_field_get": Get a recipient field - "mailservice_list": List mail services - "mailservice_add": Add a mail service - "mailservice_get": Get a mail service - "mailservice_delete": Delete a mail service (destructive) - "mailservice_fields": Describe mail service fields - "filter_add": Add a mail filter - "filter_delete": Delete a mail filter (destructive) - "filter_list": List mail filters | |
| fields | No | Message/mailbox/service fields (per Bitrix24 docs for the method) | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| folderId | No | Target folder ID for movetofolder | |
| mailboxId | No | Mailbox ID | |
| messageId | No | Message ID | |
| taskFields | No | Task fields for message_createtask | |
| filterFields | No | Filter fields: NAME, MAILBOX_ID, ACTION |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not mention side effects, destructive actions, permission requirements, rate limits, or response behavior. Some destructive actions are marked in the input schema's action enum, but the tool description itself adds little behavioral transparency beyond listing methods.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the mail domain, then lists method families and useful RU/EN keywords. It avoids verbose prose and is appropriately sized for a tool that delegates specifics to the action enum. The method list is slightly redundant with the schema but not harmful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with 13 parameters, 39 enumerated actions, nested objects, and no output schema or annotations. The description only names the domain and method families; it does not explain common workflows, prerequisites, destructive-operation confirmation, or response/return expectations. An agent would need to rely heavily on the schema to use it safely and correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 13 parameters adequately. The description adds no parameter-level meaning beyond naming the method families. Baseline 3 is appropriate because the description does not need to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the Bitrix24 mail domain and the resource families it covers (mailboxes, messages, recipients, mail services, filters) and lists core operations like send, reply, and forward. It is less a single verb+resource statement and more a domain label, but it clearly distinguishes bx24_mail from CRM, tasks, disk, and IM sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear context: use this tool for Bitrix24 mail operations such as mailboxes, messages, sending, replying, forwarding, filters, and recipients. It does not explicitly state when not to use it or name alternatives, but the sibling set is strongly domain-separated, so the mail scope is sufficient for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_marketingB
Bitrix24 marketing: segments from CRM, broadcast send, lead filtering, trade platforms. Methods crm.lead.list (filters), mail.message.send, sale.tradePlatform.* (REST 1.0 + 3.0). RU/EN: сегмент, рассылка, маркетинг, источник лидов, площадка / segment, broadcast, marketing, lead source, trade platform.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name/title | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "segment_create": Build a segment from CRM leads by filter - "segment_add_leads": Resolve lead IDs for a segment by filter - "segment_list": List leads matching a segment filter - "broadcast_send": Send a broadcast email (mail.message.send) - "lead_filter": Filter leads for marketing - "tradeplatform_list": List trade platforms | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| leadIds | No | Lead IDs | |
| segmentId | No | Segment ID | |
| mailFields | No | Mail send fields: TO, SUBJECT, BODY |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it only lists method names and resources. It does not disclose side effects such as email sending, potential destructive segment operations, or confirmation/authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably short but reads as a keyword dump rather than structured prose, and the bilingual RU/EN list adds length without much operational value. The core capabilities are front-loaded, so it is still serviceable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a multi-action tool with 10 parameters and no output schema or annotations, but the description does not map actions to their relevant parameters, prerequisites, or return behavior. The schema's enum explanations help, but the description leaves important invocation context to be reverse-engineered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already documents all 10 parameters and the action enum. The tool description adds no parameter-level meaning, keeping this at the baseline for well-covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly enumerates the tool's domain and capabilities: segments from CRM, broadcast send, lead filtering, and trade platforms, and it names the underlying Bitrix24 REST methods. It is more than a tautology, though it does not explicitly distinguish itself from overlapping siblings such as bx24_mail or bx24_crm_leads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Bitrix24 marketing' and the listed operations imply when the tool is appropriate, but there are no explicit when/when-not statements or alternatives. An agent must infer that this is the marketing-focused counterpart to general mail and CRM lead tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_openlinesC
Bitrix24 IM open lines (открытые линии): configs, sessions, dialogs, operators, CRM links, network. Methods imopenlines.* (REST 1.0 + 3.0). RU/EN: открытая линия, линия поддержки, сессия, оператор, диалог / open line, support line, session, operator, dialog.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Open line config ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "config_get": Get an open line config - "config_list": List open line configs - "config_add": Create an open line - "config_update": Update an open line config - "session_open": Open an open-line session - "session_history_get": Get session message history - "dialog_get": Get open-line dialog data - "network_join": Join an external Bitrix24 network line - "operator_answer": Operator answers a dialog (claim the conversation) - "message_quick_save": Save a quick reply template - "crm_lead_create": Create a CRM lead from an open-line dialog - "crm_message_add": Send a CRM-linked message | |
| chatId | No | Chat ID (e.g. chat123) | |
| fields | No | Line/session/CRM fields (per Bitrix24 docs for the method) | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| message | No | Message text for quick save / CRM message | |
| dialogId | No | Dialog ID: 'chatNNN' for chats or numeric user ID for private dialogs | |
| sessionId | No | Open line session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It does not mention side effects, write operations, permissions, rate limits, or state changes, even though actions like config_add, config_update, network_join, and crm_lead_create are clearly mutating. The phrase 'Methods imopenlines.*' identifies an API family but not the behavioral consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core domain. The RU/EN terminology mapping adds marginal value but is not excessive. It reads as a compact overview rather than an explanation, though no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a 12-action tool with nested objects and no output schema, yet the description offers no workflow context, return-value hints, or operation-specific guidance. The input schema documents each parameter, but the description does not help an agent reason about how actions differ, which parameters apply to which action, or what results to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and every parameter already has a meaningful description, so the baseline is 3. The tool description itself adds no parameter-level detail beyond what the schema already provides. There is no need for the description to compensate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the Bitrix24 IM open lines subsystem and lists its main subdomains (configs, sessions, dialogs, operators, CRM links, network), which is clear and distinct from general IM or CRM tools. It lacks a single specific verb+resource, but the action enum provides concrete operation names. It does not explicitly contrast itself with siblings like bx24_im or bx24_im_chat, though the domain is reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus related alternatives such as bx24_im, bx24_im_chat, or the CRM tools. The domain label 'IM open lines' implies a particular context, but there are no stated exclusions, prerequisites, or selection criteria. The action enum lists operations, but the description does not explain which scenario maps to which tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_projectsC
Bitrix24 groups/projects (соц. сеть): CRUD, members, owner, features. Methods sonet_group., socialnetwork.group., socialnetwork.project.* (REST 1.0 + 3.0). RU/EN: проект, группа, рабочая группа, создать проект, участники / project, group, create project, members.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| role | No | Member role for user_update (e.g. E, K, M) | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "create": Create a group/project - "get": Get a group by ID - "list": List/filter groups - "update": Update a group - "delete": Delete a group (destructive) - "user_list": List group members - "user_add": Add a member - "user_invite": Invite a user to a group - "user_update": Update a member role - "user_delete": Remove a member (destructive) - "set_owner": Set a new group owner - "feature_set": Enable/disable a group feature (tasks/files/forum) - "feature_get": Get group feature states - "request_list": List membership requests - "subject_add": Add a group topic/subject - "subject_update": Update a group topic - "subject_delete": Delete a group topic (destructive) | |
| fields | No | Group fields: NAME, DESCRIPTION, VISIBLE, OPENED, PROJECT, KEYWORDS, SUBJECT_ID. | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| userId | No | User ID (numeric) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| featureId | No | Feature name (e.g. tasks, files, forum) | |
| subjectId | No | Group subject/topic ID | |
| subjectFields | No | Subject fields: NAME | |
| featureEnabled | No | Enable/disable the feature |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure, but it only lists capabilities and REST namespaces. It does not mention that some actions are destructive, that deletes remove groups/members, that confirm may be required, or what side effects or permission requirements exist. The schema hints at destructive actions, but the description itself is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the main resource and capabilities before adding REST method namespaces and RU/EN search keywords. It is not bloated, though the RU/EN keyword list is somewhat scattershot rather than a crisp one-line definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with 14 parameters, 17 enum actions, nested objects, and no output schema, yet the description only gives a high-level capability summary and method families. Important context is missing: which actions are destructive, how to interpret responses, relationship between groups and projects, and when member/subject/feature actions apply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter has a clear description, so the schema already does the heavy lifting. The description adds little parameter-level meaning beyond saying 'members, owner, features', which is enough to set context but not required given the strong schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (Bitrix24 groups/projects) and the broad capabilities (CRUD, members, owner, features), so an agent can tell this tool is for project/group management rather than CRM or tasks. It is not a single verb+object sentence, but it conveys the domain and scope clearly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no exclusions, and no selection criteria among the many actions. It mentions underlying REST method families but does not explain how an agent should choose among create/get/list/update/delete or member/feature operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_reportsB
Bitrix24 analytics & reports: deal pipeline, lead sources, user activity, task completion, deal conversion, funnel stages. Methods crm.deal.list, crm.status.*, crm.lead.list, tasks.task.list aggregations (REST 1.0 + 3.0). RU/EN: отчёт, аналитика, воронка, конверсия, источник, активность / report, analytics, pipeline, conversion, source, activity.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "deal_pipeline": Deals by stage for pipeline analysis - "lead_source": Leads grouped by source - "user_activity": User activities (calls/meetings) - "task_completion": Task completion stats - "deal_conversion": Deal conversion analysis - "funnel_stages": Funnel stage names (crm.status.list) | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| categoryId | No | Pipeline/category ID for deal reports |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does mention underlying REST methods and aggregations, which hints at read-style behavior, but it does not explicitly state that the tool is read-only, how results are grouped/returned, whether destructive actions are possible, or any rate-limit/error behavior. This is insufficient for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by report types, underlying methods, and multilingual keywords. The RU/EN keyword list adds some value for multilingual user queries, though it is slightly repetitive; overall it is concise and not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a multi-action reporting tool with seven parameters, no annotations, and no output schema, yet the description does not explain return shapes, pagination behavior, or how to choose among the six actions beyond what the schema already says. An agent would still face significant uncertainty about what to expect from a call, especially for aggregation results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters, including the action enum and filter/order/select examples. The description adds little beyond naming the report categories that map to action values, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Bitrix24 analytics & reports' and enumerates six concrete report types (deal pipeline, lead sources, user activity, task completion, deal conversion, funnel stages), making the tool's purpose clear. It distinguishes itself from generic CRM/task sibling tools by emphasizing analytics and aggregation, though it does not explicitly name a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the report-type vocabulary: an agent can infer this tool is for analytical/reporting questions rather than raw CRUD operations. However, there is no explicit guidance about when to use this tool over siblings like bx24_crm_deals or bx24_tasks, nor any 'when not to use' or alternative selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_smart_processesA
Bitrix24 smart processes (произвольные CRM-сущности): types + items CRUD. Methods crm.type., crm.item. (REST 1.0 + 3.0). RU/EN: умный процесс, смарт-процесс, произвольная сущность, создать тип, элемент / smart process, custom entity, type, item.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | type_* manage smart-process types; item_* manage items (requires entityTypeId=type id). | |
| fields | No | Item fields for the smart process | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| typeId | No | Smart-process type ID (used as entityTypeId for item operations) | |
| confirm | No | Confirm destructive actions (type_delete, item_delete). | |
| typeFields | No | Type fields: title, code, ... |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states that the tool supports CRUD operations, which implies mutation, but it does not warn about destructive actions like deletes, does not mention permissions or authentication needs, and provides no information about rate limits or side effects. The mention of REST 1.0 + 3.0 adds technical context but not behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, immediately stating the tool's scope and operation families. The bilingual keyword list is useful for retrieval and does not introduce fluff or redundancy. Every part of the description earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool is complex (10 parameters, nested objects, 10 actions) and has no output schema or annotations, the description is adequate at a high level but not fully complete. It covers the core scope and action families, and the schema covers all parameters, but there is no guidance on expected responses, error behavior, or operational workflows such as needing confirm for deletes. The input schema fills some gaps, so this is a solid but not exceptional definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaningful semantics by explaining that type_* actions manage types while item_* actions manage items, and by noting that item operations require entityTypeId equal to the type id. It also provides bilingual aliases that help clarify the conceptual domain, which is valuable beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as handling Bitrix24 smart processes (произвольные CRM-сущности) with 'types + items CRUD' and explicitly names the method families crm.type.* and crm.item.*. This distinguishes it from the sibling CRM tools, which target standard entities like deals, leads, or contacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for custom CRM entities through phrases like 'smart process' and 'custom entity', which helps an agent choose this over standard CRM tools. However, it does not explicitly state when NOT to use it, nor does it provide alternative tool routing or conditions for choosing type_* vs item_* operations beyond what the schema already says.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_tasksB
Bitrix24 tasks: full lifecycle, checklists, comments, elapsed, flows, stages, planner. Methods tasks.task., task.checklistitem., task.commentitem., task.elapseditem., tasks.flow.Flow., task.planner., task.dependence.* (REST 1.0 + 3.0). RU/EN: задача, поставить задачу, мои задачи, выполнить, делегировать, отложить, чеклист, комментарий, затраченное время / task, my tasks, complete, delegate, defer, checklist, comment, elapsed.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "add": Create a task (TITLE required) - "update": Update task fields - "get": Get a task by ID - "list": List/filter tasks (my tasks: RESPONSIBLE_ID+STATUS=-1) - "delete": Delete a task (destructive) - "start": Start a task - "pause": Pause a task - "defer": Defer a task - "complete": Complete a task - "renew": Renew a completed task - "delegate": Delegate a task (userId) - "approve": Approve a task result - "disapprove": Disapprove a task result - "count": Count tasks by filter - "getFields": Describe task fields - "files_attach": Attach a file to a task - "history_list": List task history - "result_add": Add a task result - "result_list": List task results - "result_update": Update a task result - "result_delete": Delete a task result (destructive) - "addToFlow": Add a task to a flow - "moveToStage": Move a task to a stage - "checklist_add": Add a checklist item - "checklist_get": Get a checklist item - "checklist_list": List checklist items - "checklist_update": Update a checklist item - "checklist_delete": Delete a checklist item (destructive) - "checklist_complete": Mark a checklist item complete - "checklist_moveafteritem": Reorder a checklist item - "checklist_renew": Renew a completed checklist item - "comment_add": Add a comment to a task - "comment_list": List task comments - "comment_update": Update a comment - "comment_delete": Delete a comment (destructive) - "elapsed_add": Add elapsed time to a task - "elapsed_update": Update elapsed time - "elapsed_get": Get an elapsed record - "elapsed_list": List elapsed records - "elapsed_delete": Delete an elapsed record (destructive) - "flow_create": Create a tasks flow - "flow_get": Get a flow - "flow_update": Update a flow - "flow_delete": Delete a flow (destructive) - "flow_isExists": Check if a flow exists - "flow_activate": Activate a flow - "flow_pin": Pin a flow - "stage_add": Add a kanban stage - "stage_get": Get kanban stages - "stage_update": Update a stage - "stage_delete": Delete a stage (destructive) - "stage_canMoveTask": Check if a task can move to a stage - "planner_getList": Get daily planner tasks - "dependence_add": Add a task dependency (task depends on dependsOnId) - "dependence_delete": Remove a task dependency (destructive) - "userfield_add": Create a task user field - "userfield_update": Update a task user field - "userfield_get": Get a task user field - "userfield_list": List task user fields - "userfield_delete": Delete a task user field (destructive) | |
| fields | No | Task fields: TITLE, DESCRIPTION, RESPONSIBLE_ID, DEADLINE, GROUP_ID, PRIORITY, STATUS, TAGS, ACCOMPLICES, AUDITORS. | |
| filter | No | Task filter: RESPONSIBLE_ID, STATUS (-1 not done), >=DEADLINE, GROUP_ID | |
| flowId | No | Tasks flow ID | |
| select | No | Array of field names to return (projection) | |
| taskId | No | Task ID | |
| userId | No | User ID (numeric) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| stageId | No | Task stage ID | |
| resultId | No | Task result ID | |
| commentId | No | Comment ID | |
| userfield | No | Task user field definition: FIELD_NAME, USER_TYPE_ID, LABEL | |
| flowFields | No | Flow fields: NAME, TYPE, RESPONSIBLE_ID, ... | |
| commentText | No | Comment text | |
| dependsOnId | No | ID of the task this one depends on | |
| stageFields | No | Kanban stage fields: TITLE, COLOR | |
| userfieldId | No | CRM userfield ID (e.g. UF_CRM_123) | |
| resultFields | No | Task result fields | |
| elapsedFields | No | Elapsed: MINUTES, COMMENT, USER_ID, DATE | |
| checklistFields | No | Checklist item: TITLE, IS_COMPLETE |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The top-level description mentions method families and RU/EN aliases but does not disclose side effects, destructive action warnings, permission requirements, rate limits, or response behavior. The schema's action enumerations label some actions as destructive, but that is structured data, not top-level description content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, with the main scope front-loaded and a clear second sentence listing method families and language aliases. It avoids filler and communicates a large amount of coverage in two sentences. The dense method list is somewhat hard to scan but is still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 22 parameters, 66 actions, and no output schema or annotations, the definition is only moderately complete. The input schema's action descriptions compensate significantly, but the top-level description provides no examples, no expected return shape, and no guidance for multi-step workflows. It is adequate for basic selection and invocation, but not comprehensive for such a large aggregate tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a meaningful description, including the action enum with per-operation details. The top-level description adds no parameter-specific semantics, so the baseline score of 3 is appropriate. It neither helps nor harms parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource ('Bitrix24 tasks') and enumerates the major capability areas: lifecycle, checklists, comments, elapsed time, flows, stages, and planner. It distinguishes this tool from the CRM-focused siblings by stating the task domain explicitly. It lacks a single action-focused verb because it is an umbrella tool, but the scope is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for Bitrix24 task operations through the phrase 'Bitrix24 tasks' and the list of method families. It does not explicitly state when to use this tool instead of bx24_projects or other siblings, nor does it give when-not-to-use conditions. The usage context is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_telephonyB
Bitrix24 telephony: external lines, external calls, SIP, voximplant, call follow-up. Methods telephony.externalLine., telephony.externalCall., voximplant., call.followup. (REST 1.0 + 3.0). RU/EN: телефония, внешняя линия, звонок, SIP, воксимплант, перезвон / telephony, external line, call, sip, follow-up.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "externalLine_add": Add an external line - "externalLine_delete": Delete an external line (destructive) - "externalLine_list": List external lines - "externalCall_register": Register an external call - "externalCall_finish": Finish an external call - "externalCall_search": Search external call history - "externalCall_show": Show the call card to a user - "externalCall_hide": Hide the call card - "externalCall_attachRecord": Attach a call recording to a call - "externalCall_searchCrmEntities": Search CRM entities by phone number - "call_attachTranscription": Attach a call transcription to a call - "call_followup_get": Get call follow-ups - "voximplant_info": Get VoxImplant account info - "voximplant_call_search": Search VoxImplant calls - "voximplant_callback_start": Start a callback to a user - "voximplant_infocall_startwithsound": Auto-call a number playing an MP3 - "voximplant_infocall_startwithtext": Auto-call a number with TTS text - "voximplant_tts_voices_get": List available TTS voices - "voximplant_url_get": Get telephony URLs - "voximplant_statistic_get": Get call statistics - "voximplant_line_get": List outbound lines - "voximplant_line_outgoing_get": Get the default outbound line - "voximplant_line_outgoing_set": Set the default outbound line - "voximplant_line_outgoing_sip_set": Set the default SIP outbound line - "voximplant_user_get": Get user telephony settings - "voximplant_user_activatePhone": Activate a user's SIP phone - "sip_add": Add a SIP line - "sip_update": Update a SIP line - "sip_get": List SIP connections - "sip_status": Get SIP registration status - "sip_connector_status": Get SIP connector status - "sip_delete": Delete a SIP line (destructive) - "sip_list": List SIP lines | |
| fields | No | Line/call/SIP fields (NUMBER, LINE_NUMBER, USER_ID, CALL_ID, ...) | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden for behavioral disclosure. It only lists operation categories and API version support (REST 1.0 + 3.0); it does not mention that several actions modify or destroy state, that call registration has side effects, or that permissions may be required. Some action descriptions in the schema flag 'destructive', but the main description itself does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the domain and method families, and contains no filler. The RU/EN keyword section is somewhat redundant but short and potentially useful for multilingual discovery. Overall, every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 32 actions, no output schema, and no annotations, the main description alone is too thin. However, the input schema describes every action and parameter in detail, so the description only needs to orient the agent. It omits high-level usage conditions, return-value expectations, and side-effect caveats, making it adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-level detail; the action enum and field descriptions in the schema already explain what each parameter means. The RU/EN terminology helps with natural-language matching but does not deepen understanding of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's domain (Bitrix24 telephony) and enumerates its main functional areas: external lines, external calls, SIP, voximplant, and call follow-up. It also maps those areas to concrete method families, which distinguishes it from CRM/tasks/mail siblings. It lacks a single action verb because it is a multi-action dispatcher, but the action enum supplies the specific verbs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool by naming the telephony method families an agent would need. It does not explicitly provide exclusions or mention alternatives such as bx24_call, so the guidance is only inferred rather than stated. An agent could reasonably select this tool for telephony operations but not with clear confidence about when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_timeB
Bitrix24 working time tracking (timeman). Methods timeman., timeman.status. (REST 1.0 + 3.0). RU/EN: учёт рабочего времени, открыть день, закрыть день, пауза, перерыв / working time, open day, close day, pause, break.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "status_open": Open the working day - "status_close": Close the working day (optionally with report) - "status_pause": Pause the working day - "status_get": Get current working-day status - "status_update": Update working time (TIME_START/TIME_END/DATE_START) - "time_settings": Get working time settings - "timecontrol_report_add": Submit an absence report - "timecontrol_reports_get": Get absence reports - "timecontrol_settings_get": Get time control settings - "timecontrol_settings_set": Set time control settings - "timecontrol_reports_settings_get": Get reports UI settings - "timecontrol_reports_users_get": Get department users for reports - "networkrange_get": Get office IP ranges - "networkrange_set": Set office IP ranges - "networkrange_check": Check whether an IP is in the office network - "schedule_get": Get a work schedule by ID - "record_list": List time records - "record_field_list": List time record fields - "record_field_get": Get a time record field | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| report | No | Report text for close | |
| select | No | Array of field names to return (projection) | |
| userId | No | User ID (numeric) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| scheduleId | No | Schedule ID | |
| timeFields | No | Time fields: TIME_START, TIME_END, DATE_START | |
| reportFields | No | Absence report fields: ACTIVE_FROM, ACTIVE_TO, REPORT_DATE, REASON, COMMENT | |
| networkFields | No | Office network range fields: IP_RANGE, ... | |
| settingsFields | No | Time control settings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It hints at mutating operations such as opening/closing/pausing the day, but it does not disclose side effects, permission requirements, destructive actions, or whether certain actions need confirmation. The confirm parameter exists in the schema but the description never explains when destructive behavior may occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the domain and API namespace. It includes bilingual RU/EN operation hints, which adds some value for non-English queries. There is no fluff or repetition, though the RU/EN list is only partially representative of the full action set.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a broad multi-operation tool with 19 actions spanning status, timecontrol, networkrange, schedule, and records, yet the description only surfaces the four status operations. With no output schema and no annotations, an agent gets an incomplete picture of the tool's full scope and behavioral consequences before diving into the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 13 parameters, including the action enum with per-operation descriptions. The tool description adds little parameter-level meaning, which is acceptable under the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies Bitrix24 working time tracking and the timeman API namespace, and names the core operations (open/close day, pause/break). It is clear about the domain, though it uses a noun phrase rather than a single explicit verb+resource, and it doesn't explicitly differentiate from sibling HR tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: an agent can infer this tool is for Bitrix24 working-time and timeman-related tasks. However, there is no explicit guidance on when to choose it over related sibling tools like bx24_hr or bx24_calendar, and no exclusions or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_usersC
Bitrix24 portal users: current, get, search, list by department, user fields, user CRUD. Methods user., user.userfield. (REST 1.0 + 3.0). RU/EN: пользователь, кто я, найти сотрудника, отдел, пригласить / user, who am i, find user, invite.
| Name | Required | Description | Default |
|---|---|---|---|
| ID | No | User ID (single or array for user.get) | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| FILTER | No | Search/filter: NAME, LAST_NAME, EMAIL, UF_DEPARTMENT, ACTIVE | |
| action | Yes | Operation to perform: - "current": Get the current authenticated user - "get": Get user(s) by ID - "listByDepartment": List users of a department (pass department user IDs via ID) - "search": Search users (FILTER: NAME/EMAIL/UF_DEPARTMENT/ACTIVE) - "fields": Describe user fields - "userfield_get": Get a custom user field - "userfield_list": List custom user fields - "userfield_add": Create a custom user field - "userfield_update": Update a custom user field - "userfield_delete": Delete a custom user field (destructive) - "add": Invite/add a new user (destructive — creates account) - "update": Update a user - "delete": Delete a user (destructive) | |
| fields | No | User fields: NAME, LAST_NAME, EMAIL, ACTIVE, UF_DEPARTMENT_ID, PERSONAL_PHONE, WORK_POSITION | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| userfield | No | User field definition: FIELD_NAME, USER_TYPE_ID, LABEL | |
| userfieldId | No | CRM userfield ID (e.g. UF_CRM_123) | |
| departmentId | No | Department ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'user CRUD' which implies create/update/delete, but it does not disclose destructive side effects, confirmation requirements, permission needs, or the persistence impact of actions. This is under-disclosed for a tool that can add, update, and delete users and user fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first portion is reasonably compact and front-loads the resource and actions. However, the RU/EN synonym list adds significant token length and mostly duplicates meanings already present in the action names, making the description noisier than necessary. It is not as tight as it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity tool with 12 parameters, 13 actions, nested objects, no output schema, and no annotations. A short tagline is not enough for an agent to understand return shapes, pagination, destructive confirmations, or permission prerecordites. The schema fills in parameter details, but behavioral and usage context remains incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter already has a descriptive comment in the input schema. The description itself adds no parameter-level meaning, but it doesn't need to compensate because the schema covers the details. Baseline 3 is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (Bitrix24 portal users) and enumerates the core operations: current, get, search, list by department, user fields, and CRUD. This gives an agent a solid idea of what the tool covers and how it relates to the 'users' domain. It loses a point because it reads as a capability list rather than a single scoped verb, and it doesn't explicitly distinguish itself from sibling tools like bx24_departments or bx24_hr.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The RU/EN synonym list hints that this tool can answer 'who am i' or 'find user', but it does not state criteria for choosing this tool over others, or when not to use it. The action enum in the schema provides operational detail, but the description itself offers no decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bx24_workflowsB
Bitrix24 business processes & robots: templates, instances, tasks, robots, activities. Methods bizproc.workflow., bizproc.workflow.template., bizproc.task., bizproc.robot., bizproc.activity.* (REST 1.0 + 3.0). RU/EN: бизнес-процесс, робот, запустить процесс, шаблон, задача БП,杀ить / workflow, business process, robot, start, template, kill.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity ID | |
| order | No | Order object (e.g. { 'ID': 'DESC' }) | |
| start | No | Pagination offset (number of records to skip) | |
| action | Yes | Operation to perform: - "template_list": List workflow templates - "template_get": Get a template by ID - "template_add": Add a workflow template - "template_update": Update a workflow template - "template_delete": Delete a workflow template (destructive) - "start": Start a workflow for a document (templateId, documentId) - "kill": Kill a running workflow (destructive) - "workflow_terminate": Terminate a workflow execution (graceful stop, destructive) - "task_list": List workflow tasks (approvals) - "task_complete": Complete a workflow task - "task_get": Get a workflow task by ID - "task_delegate": Delegate a workflow task to a user - "robot_list": List robots - "robot_add": Register an app robot - "robot_update": Update an app robot - "robot_delete": Delete an app robot (destructive) - "activity_list": List activities - "activity_get": Get an activity - "activity_add": Add an app activity - "activity_update": Update an app activity - "activity_delete": Delete an app activity (destructive) - "activity_log": Write a message to the workflow log - "event_send": Send robot/activity outputs to the workflow (bizproc.event.send) - "instance_list": List running workflow instances - "instance_terminate": Terminate a workflow instance (destructive) | |
| filter | No | Filter object (e.g. { '>OPPORTUNITY': 10000, 'STAGE_ID': 'WON' }) | |
| select | No | Array of field names to return (projection) | |
| taskId | No | BP task ID | |
| confirm | No | Set to true to confirm destructive actions when BX24_CONFIRM_DESTRUCTIVE is enabled. | |
| logFields | No | Log message fields | |
| documentId | No | Document ID tuple, e.g. ['crm','DEAL',456] | |
| parameters | No | Workflow parameters | |
| taskFields | No | Task fields (answer) | |
| templateId | No | Template ID | |
| eventFields | No | Event fields for bizproc.event.send | |
| robotFields | No | Robot fields: CODE, NAME, ... | |
| activityFields | No | Activity fields: CODE, NAME, ... |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full behavioral burden. It only lists method groups and keywords; it does not disclose that many operations mutate state, which ones are destructive, what side effects starting or killing workflows has, or any authorization requirements. The schema's action labels mark some operations destructive, but the main description itself is nearly silent on behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence is compact and front-loads the domain and method groups. However, the RU/EN keyword list adds noise, contains a malformed token ('杀ить'), and provides limited value to an AI agent deciding how to invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema is rich and documents all 25 actions with descriptions, which compensates for the sparse top-level description. Still, there is no output schema and no main-description guidance on return shapes, workflows vs tasks boundaries, or common usage patterns, so the definition is adequate but has clear gaps for such a complex multi-action tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The top-level description adds no parameter-level meaning, but the action enum descriptions inside the schema provide detailed operation-specific parameter hints. The description does not need to duplicate what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the Bitrix24 business process domain and enumerates the main subresources (templates, instances, tasks, robots, activities) and REST method groups. It is broad rather than a single verb+resource, but that fits a multi-action tool and distinguishes it from the CRM/tasks/disk siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope implies when to use the tool: operations on Bitrix24 business processes and robots. However, it gives no explicit guidance about when not to use it, how it relates to bx24_tasks (regular tasks vs workflow tasks), or when an alternative sibling would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
43 tool updates
v0.4.0- First observed
bx24_batch - First observed
bx24_bots - First observed
bx24_calendar - First observed
bx24_call - First observed
bx24_conf - First observed
bx24_crm_activities - First observed
bx24_crm_addresses - First observed
bx24_crm_automation - First observed
bx24_crm_calllists - First observed
bx24_crm_companies - First observed
bx24_crm_contacts - First observed
bx24_crm_currency - First observed
bx24_crm_deals - First observed
bx24_crm_documents - First observed
bx24_crm_duplicates - First observed
bx24_crm_invoices - First observed
bx24_crm_leads - First observed
bx24_crm_products - First observed
bx24_crm_quotes - First observed
bx24_crm_requisites - First observed
bx24_crm_stagehistory - First observed
bx24_crm_summary - First observed
bx24_crm_tracking - First observed
bx24_crm_webform - First observed
bx24_departments - First observed
bx24_disk - First observed
bx24_events - First observed
bx24_health - First observed
bx24_hr - First observed
bx24_im - First observed
bx24_im_chat - First observed
bx24_lists - First observed
bx24_mail - First observed
bx24_marketing - First observed
bx24_openlines - First observed
bx24_projects - First observed
bx24_reports - First observed
bx24_smart_processes - First observed
bx24_tasks - First observed
bx24_telephony - First observed
bx24_time - First observed
bx24_users - First observed
bx24_workflows
TDQS
Scored across 43 tools
Most tools map to clearly distinct Bitrix24 modules, but several boundaries blur: bx24_users and bx24_hr both cover user creation/updating, bx24_im and bx24_im_chat both expose messaging/counters, and bx24_workflows overlaps with bx24_crm_automation around robots/triggers. The descriptions and method prefixes help, but an agent still needs to read carefully to avoid misselection.
All 43 tools follow the same `bx24_<module>` snake_case convention with noun-style module names, making the namespace highly predictable. The only mild oddity is `bx24_call` being a generic REST call alongside telephony calls, but the naming pattern itself is uniform.
43 tools is large and exceeds the comfortable range for a single MCP surface, but the server's scope is the full Bitrix24 ecosystem and each tool maps to a real module rather than a redundant operation. Still, the count is heavy enough that an agent will need deliberate filtering and selection.
The set covers CRM entities, tasks, disk, messenger, calendar, telephony, automation, HR, and platform utilities with CRUD/lifecycle operations, and `bx24_call` provides an escape hatch for unspecified REST methods. There are minor gaps such as no dedicated sale/order or standalone CRM status module, but common workflows are not dead-ended.
Maintenance
Related MCP Connectors
MCP server that delivers up-to-date Bitrix24 REST API documentation.
MCP server enabling AI agents to manage Bitrix24 features via standardized protocol
Cross-product MCP server for CRM, LeadKit, ProjectKit, Bookio. 10 action types, MIT open spec.
API-first CRM for LLMs - contacts, companies, deals and activities over a native MCP server.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides a REST API and MCP server to interact with Bitrix24 CRM, enabling CRUD operations on entities like deals, leads, contacts, and tasks via natural language.5 npm13-
- FlicenseNot gradedqualityCmaintenanceMCP server for interacting with Bitrix24 REST API, enabling CRUD operations on deals, contacts, companies, users, leads, and tasks, plus analytics and risk assessment.2-
- AlicenseBqualityAmaintenanceUniversal MCP server for the Bitrix24 REST API, enabling full read and write access to CRM, tasks, calendar, disk, and more. Supports any MCP client with stdio or Streamable HTTP transport.881MIT
- FlicenseNot gradedqualityCmaintenanceProduction-grade MCP server for Bitrix24 Cloud with 45 tools, safe by default. Connects Claude Desktop to your Bitrix24 tenant for AI-driven CRM, tasks, messaging, and calendar operations.-