Skip to main content
Glama

bitrix-mcp

English · Русский

Universal, full-featured, portable MCP server for the Bitrix24 REST API. Read and write. Not tied to any one application — it's a generic Bitrix24 gateway that any MCP client or agent can mount (Claude Code, Claude Desktop, Cursor, Windsurf, Cline, or your own Python/Node agent).

  • Language: Python + the official MCP SDK (mcp.server.mcpserver, 2.x)

  • Transports: stdio (default, most portable/reliable) and Streamable HTTP (stateless JSON — no fragile long-lived SSE bridge)

  • Coverage: universal b24_call / b24_batch reach 100% of the REST API; a catalogue built from the official docs (1930 methods) tells the agent which method it needs and what parameters it takes; 99 typed tools cover the high-traffic domains with the tricky bits handled.

  • Portal events: three ways to receive them — pull channel (works behind NAT and VPN), outgoing-webhook receiver, poller — plus a history archive and Telegram forwarding: docs/EVENTS.md

Why this exists / what it fixes

Rebuilt from field notes on a previous wrapper. The bugs that motivated it are fixed by design, not patched around:

Old behavior

Fix here

filter silently ignored (groups_list, users_list), full-portal dumps → timeouts

Params sent as JSON POST body, so nested filter/select/order are parsed correctly by Bitrix. Real pagination with a page cap.

Access errors swallowed into a fake "0 results" (read_pipelines etc.)

Errors are never swallowed — a Bitrix error/error_description always surfaces with its code (e.g. ACCESS_DENIED).

calendar_list returned 0 without explicit ownerId

owner_id auto-resolves to the acting user.

Scrum kanban read from the wrong place

Correct flow baked in: active-sprint filter + tasks.api.scrum.kanban.getStages (b24_scrum_board does it in one call).

Fragile mcp-remote SSE session drops / hangs

Prefer stdio (no bridge) or stateless Streamable HTTP.

department.get has no server-side filter at all (a Bitrix API limitation, undocumented) — any filter was silently ignored and the whole department tree (95+ rows) came back regardless

b24_department_get filters client-side after a full fetch, so filter/ID genuinely narrow the result instead of quietly dumping everything.

Bitrix sometimes reports a failure as {"error": "", "error_description": "Access denied."} — an empty-string error code — which a naive truthiness check (if data.get("error")) misses, losing the code and message to a generic HTTP-status fallback

Checked by key presence, not truthiness — code/message always reflect what Bitrix actually said.

calendar.event.add / .update silently drop attendees unless is_meeting is also set — 200 OK, event created, nobody invited, no error anywhere

is_meeting is auto-set to 'Y' whenever attendees is non-empty and not already specified.

Moving a task on a Scrum sprint board has no single API call, and every obvious candidate fails while reporting success: tasks.task.update's STAGE_ID changes the field and writes a history entry everyone can see, but the card stays put; kanban.addTask only places a card that is off the board and answers true without doing anything for one already in a column; task.stages.movetask answers false.

b24_scrum_task_move takes the card off the board and puts it back at the target column (kanban.deleteTaskkanban.addTask) — verified by watching a real board, not by trusting the response. It also warns that STAGE_ID cannot verify the result: it read 0 while the card was visibly in the target column.

Related MCP server: fast-bitrix24-mcp

Install

If nothing is installed on the machine, take the portable archive (dist/bitrix-mcp-portable.zip, built by python scripts/build_portable.py). It carries its own Python and every library — no uv, no pip, no PyPI access. Unzip it and run the bundled launcher.

From source:

uv sync                       # create venv + install
# or, as a tool on PATH:
uv tool install .             # exposes the `bitrix-mcp` command

Configure

Set the default webhook (see .env.example):

export BITRIX_WEBHOOK_URL="https://your-portal.bitrix24.ru/rest/1/xxxxxxxx/"
# optional:
export BITRIX_READ_ONLY=1     # block all writes

The webhook comes from Bitrix: Profile → Webhooks → inbound webhook, format https://<portal>/rest/<user_id>/<token>/. The token is a credential — keep it out of source control (.env is gitignored).

Auth precedence per call: personal_webhookwebhook_urlX-B24-Webhook HTTP header → BITRIX_WEBHOOK_URL. Pass personal_webhook to act (and write) as a specific user.

Run

bitrix-mcp                         # stdio (default)
bitrix-mcp --http                  # Streamable HTTP on 127.0.0.1:8000/mcp
bitrix-mcp --http --host 0.0.0.0 --port 5015   # shared network service

Connect a client

Claude Code (stdio, recommended):

claude mcp add -s user bitrix24 -- uv run --directory C:/Scripts/BitrixMCP bitrix-mcp

Repo-shared .mcp.json (stdio):

{
  "mcpServers": {
    "bitrix24": {
      "command": "uv",
      "args": ["run", "--directory", "C:/Scripts/BitrixMCP", "bitrix-mcp"],
      "env": { "BITRIX_WEBHOOK_URL": "https://your-portal.bitrix24.ru/rest/1/xxxx/" }
    }
  }
}

Claude Code (HTTP):

bitrix-mcp --http --port 5015          # then, on the client:
claude mcp add -s user --transport http bitrix24 http://HOST:5015/mcp

Claude Desktop (stdio)%APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "bitrix24": {
      "command": "uv",
      "args": ["run", "--directory", "C:/Scripts/BitrixMCP", "bitrix-mcp"],
      "env": { "BITRIX_WEBHOOK_URL": "https://your-portal.bitrix24.ru/rest/1/xxxx/" }
    }
  }
}

(For a remote HTTP instance, Desktop still needs the mcp-remote bridge; stdio above avoids it entirely.)

Tool catalog (99)

Universalb24_call, b24_batch, b24_test_connection, b24_list_methods CRMb24_crm_list, b24_crm_get, b24_crm_fields, b24_crm_add, b24_crm_update, b24_crm_delete, b24_crm_timeline_comment_add, b24_crm_timeline_comment_list, b24_crm_category_list (pipelines), b24_crm_status_list (stages/dictionaries), b24_crm_activity_list, b24_crm_activity_add, b24_crm_activity_delete, b24_crm_productrows_get, b24_crm_productrows_set, b24_crm_currency_list, b24_crm_requisite_list, b24_crm_deal_contacts_get, b24_crm_deal_contacts_set (classic entities and SPA via entity_type_id) Tasksb24_tasks_list, b24_task_get, b24_task_add, b24_task_update, b24_task_complete, b24_task_delete, b24_task_comments_list, b24_task_comment_add, b24_task_stages_get, b24_task_checklist_list, b24_task_checklist_add, b24_task_elapsed_add, b24_task_result_list Scrumb24_scrum_sprint_list, b24_scrum_kanban_stages, b24_scrum_board, b24_scrum_task_move Calendarb24_calendar_event_list, b24_calendar_section_list, b24_calendar_event_add, b24_calendar_event_update, b24_calendar_event_delete Diskb24_disk_storage_list, b24_disk_folder_items, b24_disk_file_get, b24_disk_file_content (server-side download → base64), b24_disk_folder_add, b24_disk_file_upload, b24_disk_file_delete Users/structureb24_user_get, b24_user_search, b24_user_current, b24_department_get Groups (workgroups)b24_group_list, b24_group_users, b24_group_create, b24_group_update, b24_group_delete Messagingb24_im_recent, b24_im_dialog_messages, b24_im_message_add, b24_im_notify_personal, b24_im_user_get, b24_im_chat_create, b24_im_chat_user_add, b24_feed_post_add Lists (universal lists)b24_lists_get, b24_lists_element_list, b24_lists_element_add, b24_lists_element_update, b24_lists_element_delete Catalog / productsb24_catalog_list, b24_catalog_section_list, b24_catalog_product_list, b24_catalog_product_get, b24_catalog_product_add, b24_catalog_product_update, b24_crm_product_list Sale (orders)b24_sale_order_list, b24_sale_order_get Documentsb24_documentgenerator_templates, b24_documentgenerator_add Bizprocb24_bizproc_template_list, b24_bizproc_start Telephonyb24_telephony_statistics

Anything still not typed here is reachable through b24_call (e.g. mail, open-lines, sale basket writes, admin/app-placement methods).

Retrospective-app integration

This server has no knowledge of any downstream app. An agent connects to both this server and your app's MCP, reads Bitrix here, and relays into the app's contract. Field names from b24_tasks_list / b24_calendar_event_list map directly onto PushSprintTask / PushCalendarEvent, so the mapping is trivial — but that translation lives in the agent, not here.

Documentation

Development

uv sync                 # install runtime + dev deps
uv run pytest -q        # offline unit tests (no portal needed)
uv run python scripts/smoke.py "<webhook>"   # live read-only access map (run from a network with portal access)

Verification scripts

Each one exits non-zero when a check fails, so they can be chained in CI. Those marked offline need no portal; the rest need a reachable webhook.

Script

What it proves

Needs

scripts/startup_check.py

The server boots on both transports and registers every tool

offline

scripts/leak_check.py

The sanitizer strips webhooks/tokens from output and from httpx logs

offline

scripts/git_secret_scan.py

No secret is present in tracked files or anywhere in git history

offline

scripts/events_tools_check.py

poll → ack → history → stats against a seeded store

offline

scripts/coverage_check.py

Requirement R-1: catalogue + scope diagnosis reach the whole API

portal

scripts/poller_check.py

b24_changes_since cursors advance and do not skip rows

portal

scripts/pull_channel_check.py

Push & Pull channel subscribes and receives

portal

scripts/receiver_e2e_check.py

Outgoing-webhook receiver end to end, including TLS

portal

scripts/telegram_check.py

Filter DSL routes the right events

offline

scripts/telegram_live_check.py

The bot and chat really accept a message

Telegram

scripts/smoke.py

Live read-only access map across every domain

portal

scripts/build_catalog.py

Regenerates data/catalog.json from the official docs

docs checkout

Probes (diagnostics, no pass/fail verdict): pull_probe.py, probe_listener.py, tg_conn_probe.py.

Diagrams are regenerated with java -jar plantuml.jar -tpng docs/diagrams/*.puml.

Notes on limits

  • fetch_all=true is capped by BITRIX_MAX_PAGES (default 40 pages ≈ 2000 records) and reports truncated: true when it hits the cap — it never silently stops short.

  • The read-only guard classifies writes by method verb; typed write tools are always classified correctly. b24_call/b24_batch use the heuristic.

Licence

MIT — see LICENSE.

Security

Found a vulnerability? Please report it privately, not in a public issue — see SECURITY.md. The webhook URL this server uses is a bearer credential for the whole portal.

Support author

BTC: bc1q3frrup5neh7nhfg944etu2agd4j9u0vg3jyee6

ETH(Arbitrum): 0x43B349d8Cea83215D707EBa3bc35e9917f746b0a

TRX: THSzvy49KNeqRjXsGkurh2A5G4avV4RgN4

XRP: rLWZjS3DMupC4ZdXCX3BVYn4dEtC3iNhgy

SOL: 3xwfybxJ6Tz5t6pjBBkL5yYQCZo6wfbv932UNA4ThdP8

ADA: addr1q926ys75jp5wn2pv32a3t8r8pdhr7w02v0t9j4a8pmg0ruww5rlkctu4lnz2hfcwa5qfn3zhsd0s23r22uqwzx9gu6cq5c4e76

TON: UQC4qlAOD9Nly4K_66GJ_yCsSM3x2sB0vZ2GrBQbc--gZUui

DOGE: DTjNYmbtymzcjUiV4MsZY8MP4dM7MJ6qLC

XMR: 44qRqM6YtnxXUhkgCFqDDrKMPjWriu69FLBoop8Kwp7e1VQsBUJoVQ8JYQjfMV5C6uidTUgSSyoJ65mq8aYG2esZ1rrqfwt

Available Tools

52 tools
b24_bizproc_template_listA
Read-onlyIdempotent

List workflow templates (bizproc.workflow.template.list).

Returns templates (ID, NAME, DOCUMENT_TYPE, AUTO_EXECUTE). Use a template ID plus a concrete document id with b24_bizproc_start.

ParametersJSON Schema
NameRequiredDescriptionDefault
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
document_typeNoFilter to a document type, e.g. ['crm','CCrmDocumentDeal','DEAL'] or ['lists','BizprocDocument','iblock_44'].
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, open-world, idempotent, and non-destructive. The description adds that the tool returns fields like ID, NAME, DOCUMENT_TYPE, AUTO_EXECUTE, and explains how the output is used. This adds value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action and return fields, followed by a usage hint. No superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple list operation with no required parameters and an output schema. The description covers the return fields and usage. It could mention filtering via document_type, but the schema handles that. Overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 parameters. The description does not add any extra meaning about parameters beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'workflow templates'. It also mentions the return fields. However, it does not explicitly differentiate from other list tools among siblings, though it is specific to workflow templates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage context: 'Use a template ID plus a concrete document id with b24_bizproc_start.' This indicates when to use the output and suggests an alternative sibling tool. No exclusions are given, but the guidance is helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_calendar_event_addB

Create a calendar event (calendar.event.add). Returns the new event id.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesEvent title.
extraNoAny additional calendar.event.add fields (e.g. {'description':'...','attendees':[1,2],'location':'...'}).
date_toYesEnd, 'YYYY-MM-DD HH:MM:SS'.
owner_idNoCalendar owner id. Defaults to the acting user (resolved via user.current) for owner_type='user'.
date_fromYesStart, 'YYYY-MM-DD HH:MM:SS'.
owner_typeNoCalendar owner type: 'user' (default) or 'group'.user
section_idNoTarget calendar (section) id. If omitted Bitrix uses the owner's default calendar.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a non-read-only, non-destructive mutation. The description adds that it returns the new event ID, but lacks details on side effects, permission requirements, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently states purpose and return value. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite many parameters and siblings, the description is minimal. It does not cover return format beyond 'new event id', error handling, or how to leverage the 'extra' parameter effectively. Output schema exists but is not described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters have schema descriptions, so the tool description adds no additional meaning. The 'extra' parameter allows open-world additions, but the description merely restates the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create' and the resource 'calendar event', and mentions the return value. It distinguishes itself from sibling tools like delete or list by specifying the action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., b24_task_add, b24_crm_activity_add). No exclusions, prerequisites, or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_calendar_event_deleteA
Destructive

Delete a calendar event (calendar.event.delete). Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesEvent id to delete.
owner_idNoCalendar owner id. Defaults to the acting user (resolved via user.current) for owner_type='user'.
owner_typeNoCalendar owner type: 'user' (default) or 'group'.user
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description notes the action is 'Irreversible', which adds context beyond the destructiveHint annotation. However, it does not discuss permissions, cascading effects, or error states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the core action and irreversibility. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple delete operation and the presence of a full input schema and output schema, the description is minimally adequate. It could benefit from mentioning the required ID parameter or caution about permanent deletion, but is not severely lacking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already describes all parameters fully. The description adds no additional parameter information, meeting the baseline but providing no extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool deletes a calendar event, using the verb 'Delete' and specifying 'calendar event'. This distinguishes it from sibling tools like add or list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like update or archive. The description does not specify prerequisites or situations where deletion is inappropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_calendar_event_listA
Read-onlyIdempotent

List calendar events in a date range (calendar.event.get).

owner_id defaults to the acting user. Returns {"count": n, "events": [...]} with fields like NAME, DATE_FROM, DATE_TO, ATTENDEE_LIST, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toYesRange end, 'YYYY-MM-DD'.
owner_idNoCalendar owner id. Defaults to the acting user (resolved via user.current) for owner_type='user'.
date_fromYesRange start, 'YYYY-MM-DD' (or 'YYYY-MM-DD HH:MM:SS').
owner_typeNoCalendar owner type: 'user' (default) or 'group'.user
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the description's contribution is moderate. It adds that the tool returns a count and event list with specific fields, but does not disclose any hidden side effects or limitations beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, using two sentences that front-load the core purpose. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and detailed annotations, the description covers the essential aspects: date range filtering, default owner, and return structure. It lacks mention of pagination or limits, but overall is sufficiently complete for this tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all 6 parameters with 100% coverage. The description adds marginal value by noting the default owner_id behavior and return format, but does not significantly enhance understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List calendar events in a date range', providing a specific verb ('List') and resource ('calendar events'). It also mentions the underlying API method and default owner behavior, distinguishing it from sibling tools like add/delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the tool is for listing events in a date range, but does not provide explicit guidance on when not to use it or mention alternatives among siblings. The context is clear but lacks exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_calendar_section_listB
Read-onlyIdempotent

List calendars (sections) for an owner (calendar.section.get).

ParametersJSON Schema
NameRequiredDescriptionDefault
owner_idNoCalendar owner id. Defaults to the acting user (resolved via user.current) for owner_type='user'.
owner_typeNoCalendar owner type: 'user' (default) or 'group'.user
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds no further behavioral context (e.g., return format, error handling). It is adequate but does not exceed annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (one sentence) but lacks substance. It is front-loaded with the core action, but could include more context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description minimally covers the task. The output schema exists, so return values are documented elsewhere, but the description doesn't mention pagination or filtering options.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 extra meaning beyond the schema (e.g., clarifying parameter relationships or defaults in more detail).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (list), resource (calendars/sections), and scope (for an owner). It distinguishes this tool from sibling calendar event tools, though it is brief.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like b24_calendar_event_list or other list tools. Context for selection is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_callA

Call ANY Bitrix24 REST method directly — the universal escape hatch.

This is the most reliable tool and covers the entire API surface. Prefer it whenever a typed tool does not fit, or when a typed tool behaves oddly.

Parameters go as a JSON POST body, so nested arrays (filter, fields, select, order) are passed exactly as you write them — no manual encoding needed.

Args: method: REST method name (no leading slash), e.g. 'crm.deal.get'. params: JSON object of parameters, e.g. {"id": 42} or {"filter": {">=DATE_CREATE": "2026-01-01"}, "select": ["ID","TITLE"]}. webhook_url / personal_webhook: auth overrides (see server instructions).

Returns: JSON string with the full response envelope, e.g. {"result": , "total": <int?>, "next": <int?>, "time": {...}}. On failure: {"error": true, "code": "", "message": "..."}.

Write safety: if BITRIX_READ_ONLY=1, methods that mutate data (add/update/ delete/...) are refused with code B24_READONLY.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodYesAny Bitrix24 REST method, e.g. 'crm.deal.list', 'user.get', 'tasks.task.add'.
paramsNoMethod parameters as a JSON object (nested filter/fields/select supported).
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key behaviors: parameters sent as JSON POST body, nested arrays supported, full response envelope with fields like result, total, next, time, and error handling. Write safety condition is also mentioned. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (intro, args, returns, write safety). It is fairly detailed but every sentence adds value; minor redundancy in the introduction could be trimmed, but overall it is appropriately sized for a complex universal tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity as an escape hatch covering the entire API, the description is complete: it explains input format, parameters, authentication overrides, return envelope, error format, and write safety. The output schema is described in text, so no gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant value: explains that params are passed as JSON POST body, supports nested structures, provides concrete examples for method and params, and clarifies the priority of webhook_url vs personal_webhook. This goes well beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as a universal escape hatch to call any Bitrix24 REST method directly. It distinguishes itself from siblings by being the most reliable tool covering the entire API surface, and explicitly suggests preferring it when typed tools don't fit or behave oddly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidelines: prefer this tool when a typed tool does not fit or behaves oddly. It also mentions write safety under BITRIX_READ_ONLY, giving clear when-to-use and when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_catalog_listA
Read-onlyIdempotent

List catalogs (catalog.catalog.list): the commercial catalogs / iblocks.

ParametersJSON Schema
NameRequiredDescriptionDefault
startNoPagination offset (page size is 50). Use 'next' from a prior response.
filterNoBitrix filter object. Keys may carry operator prefixes: '>', '<', '>=', '<=', '!', '%' (substring), '=%', e.g. {">=DATE_CREATE": "2026-01-01", "%TITLE": "draft"}.
fetch_allNoAuto-paginate and return all matching records (capped by BITRIX_MAX_PAGES, default 40 pages = 2000 records). Use a filter to keep this bounded.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive. The description adds pagination, filtering, auto-pagination, and webhook override behavior beyond annotations, providing good transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single concise sentence that efficiently states the purpose. It is front-loaded with the key information, though it could be slightly expanded with a brief usage hint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with an output schema, the description combined with annotations and schema fully covers operation, pagination, filtering, and webhook behavior. No gaps observed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for all 5 parameters. The description adds no extra parameter meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'List catalogs' and adds the Bitrix method name and resource type ('commercial catalogs / iblocks'). It clearly differentiates from sibling tools like b24_catalog_product_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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 vs alternatives (e.g., catalog product tools). Usage is implied but not directed, earning a mid-range score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_catalog_product_addB

Create a catalog product (catalog.product.add). Returns {"product": {...}}.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesProduct fields, e.g. {'iblockId':14,'name':'Widget','field...':...}.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond stating it creates a product, the description adds no behavioral context (e.g., permissions needed, idempotency, side effects). Annotations indicate openWorldHint=true, but the description does not clarify what fields are required or what happens on duplicate keys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: one sentence and a return example. Every part is necessary and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters and an output schema, the description lacks necessary context such as typical usage, required field examples, or behavior when fields are missing. More detail would aid the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not enhance understanding of the 'fields' object or the webhook parameters beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action ('Create'), the resource ('a catalog product'), and includes the return structure. This clearly distinguishes it from sibling tools like b24_catalog_product_list or b24_catalog_product_update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, nor any prerequisites or context. A brief mention of typical use cases or exclusions would improve this.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_catalog_product_listA
Read-onlyIdempotent

List catalog products (catalog.product.list) with pagination.

Common filter keys: iblockId (catalog id), id, name. Returns a pagination envelope of product objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderNoSort object, e.g. {'ID':'DESC'} or {'DATE_CREATE':'ASC'}.
startNoPagination offset (page size is 50). Use 'next' from a prior response.
filterNoBitrix filter object. Keys may carry operator prefixes: '>', '<', '>=', '<=', '!', '%' (substring), '=%', e.g. {">=DATE_CREATE": "2026-01-01", "%TITLE": "draft"}.
selectNoFields to return, e.g. ['ID','TITLE','*','UF_*']. Omit for defaults.
fetch_allNoAuto-paginate and return all matching records (capped by BITRIX_MAX_PAGES, default 40 pages = 2000 records). Use a filter to keep this bounded.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by mentioning pagination behavior, return of a 'pagination envelope', and common filter keys, which are useful beyond what annotations state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the main purpose. Every word serves a purpose; no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters with full schema descriptions, rich annotations, and an output schema, the description covers the essential aspects: purpose, pagination, common filters, and return type. It is sufficient for a listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with full parameter descriptions. The description adds minor semantic value by listing common filter keys (iblockId, id, name), but does not significantly increase understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' and resource 'catalog products', and includes the underlying method name 'catalog.product.list'. Among siblings like b24_crm_product_list or b24_catalog_list, this clearly targets catalog products, differentiating effectively.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for listing catalog products with pagination, but lacks explicit when-not conditions or alternatives. An agent can infer usage from the name and context, but no guidance on exclusion criteria is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_catalog_product_updateC

Update a catalog product (catalog.product.update).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCatalog product id to update.
fieldsYesFields to change.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=false and destructiveHint=false, but the description adds no additional behavioral context (e.g., side effects, required permissions, or success conditions).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short (one sentence), but it sacrifices informativeness for brevity. It fails to provide any useful details beyond the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 4 parameters (2 required) and an output schema, the description is insufficient. It lacks information about typical usage, error handling, or what the update entails.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all parameters described), so baseline is 3. The description does not add extra meaning beyond the schema, but also does not detract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially a tautology: 'Update a catalog product (catalog.product.update).' It restates the tool name without adding specificity about what kind of update or which fields can be modified.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like b24_catalog_product_add or b24_catalog_product_list. It lacks context for an AI agent to decide appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_crm_activity_addA

Create a CRM activity (crm.activity.add). Returns the new activity id.

Activities are complex; call b24_call('crm.activity.fields') first to see the required shape (especially COMMUNICATIONS for calls/emails).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesActivity fields. Minimum: OWNER_TYPE_ID, OWNER_ID, TYPE_ID, SUBJECT, COMMUNICATIONS. See crm.activity.fields for the full schema.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false (write operation) and destructiveHint=false. The description adds value by hinting at the complexity of the 'fields' parameter and the need to consult the full schema, but does not disclose permissions, rate limits, or side effects beyond creation. This is adequate given the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences. It front-loads the core action and return value, and places critical guidance in the second sentence. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a complex nested object and an output schema exists, so the description appropriately avoids explaining return values. However, it lacks information about error conditions or required permissions, leaving some gaps for a real-world agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with thorough descriptions for all three parameters. The description reinforces the need to check the full schema for 'fields' but adds no new semantics beyond what the schema provides. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create a CRM activity') and the return value ('Returns the new activity id'). It uses a specific verb and resource, but does not explicitly differentiate from sibling tools like b24_calendar_event_add, though the resource domain is distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear recommendation to call 'crm.activity.fields' first to understand the required shape, especially for calls/emails. This gives contextual guidance on prerequisites, though it does not mention when not to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_crm_category_listA
Read-onlyIdempotent

List pipelines/categories of a CRM entity type (crm.category.list).

Returns categories (id, name, sort). A category is a pipeline; its stages come from b24_crm_status_list or crm.status.list with the right ENTITY_ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
entity_type_idYesCRM entity type id whose pipelines/categories you want (2=deal, 1030+=SPA).
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnly, openWorld, idempotent hints. Description adds return fields and relationship to stages but no additional behavioral traits beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, efficient and front-loaded. No wasted words; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate given output schema exists and annotations cover safety. Could mention typical entity_type_id values (already in schema) but not necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so description does not need to add parameter details. The description does not elaborate beyond schema, meeting baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'List' and resource 'pipelines/categories of a CRM entity type'. Returns specific fields (id, name, sort). Distinguishes from siblings like b24_crm_status_list by explaining the relationship.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context that categories are pipelines and stages come from b24_crm_status_list, guiding users to the right tool for stages. Does not explicitly state when not to use or compare to b24_crm_list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_crm_currency_listB
Read-onlyIdempotent

List portal currencies (crm.currency.list): CURRENCY, base flag, format, rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint as false. The description adds value by specifying the output fields (CURRENCY, base flag, format, rate). It does not disclose other behavioral traits like pagination or error handling, but given the annotations cover safety, this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two lines that immediately state the action and key output fields. Every word is necessary and front-loaded. No wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, good annotations, and presence of an output schema, the description covers the essentials. However, it lacks explicit details about the scope of the list (all portal currencies?) and does not mention any constraints or behavior beyond listing. It is minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for both parameters (webhook_url and personal_webhook). The description does not add any additional meaning beyond what the schema already provides. The baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List portal currencies' with a specific verb and resource. It also mentions the fields (CURRENCY, base flag, format, rate), which adds clarity. However, it does not explicitly distinguish this tool from sibling tools like b24_crm_list, though the name itself differentiates it sufficiently.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. There is no mention of prerequisites, performance considerations, or what to do if the currency list is empty. The tool is simple, but explicit usage guidance is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_crm_deal_contacts_setB

Set the contacts linked to a deal (crm.deal.contact.items.set).

ParametersJSON Schema
NameRequiredDescriptionDefault
deal_idYesDeal id.
contact_idsYesContact ids to link, e.g. [11, 12]. Replaces the current set.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description merely says 'Set the contacts', which implies replacement, but the schema's description of 'contact_ids' already states 'Replaces the current set.' No additional behavioral traits (e.g., permissions needed, side effects on other fields, rate limits) are disclosed beyond what annotations and schema already provide. With readOnlyHint=false and no destructiveHint, the agent knows it's a mutation but lacks deeper context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no fluff, efficiently conveying the main purpose. The API method name in parentheses is a helpful addition. However, it could be slightly more structured to include usage hints without adding much length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 4 parameters and an output schema, the description is overly minimal. It doesn't explain what happens when the deal doesn't exist, or if contact IDs are invalid. The annotations and schema partially compensate, but the description lacks contextual completeness for an agent to safely invoke the tool without prior knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 extra meaning beyond what the parameter descriptions already convey. For example, 'deal_id' is not further explained. The tool description does not enhance the semantic understanding of any parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Set' and the resource 'contacts linked to a deal', making the tool's purpose immediately understandable. It also includes the underlying API method name, which adds specificity. The sibling tools include other set operations like 'b24_crm_productrows_set', but this tool's name and description uniquely identify its focus on contacts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 when to add contacts individually or when to use other CRM set tools. There is no mention of prerequisites, fallback behavior, or 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.

b24_crm_deleteA
Destructive

Delete a CRM record. Irreversible — deletes on the portal.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRecord id to delete.
entityNoClassic CRM entity: 'lead', 'deal', 'contact', 'company', or 'quote'. Ignored when entity_type_id is set.deal
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
entity_type_idNoNumeric CRM entity type id for the modern crm.item.* API (e.g. 1=lead, 2=deal, 1030+=Smart Process). Set this to work with SPA items.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already set destructiveHint=true, so the description's 'Irreversible' adds contextual emphasis beyond that. It confirms the operation's permanence, which aligns with the tag. No contradiction; the description enriches the behavioral understanding without repeating annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two crisp sentences with no wasted words. The purpose is front-loaded in the first sentence, and the irreversible warning is placed immediately after. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of a delete operation and the presence of a detailed input schema, output schema, and annotations, the description covers the essential behavioral context (irreversibility). It could mention permission requirements or return value hints, but overall it is sufficiently complete for an agent to infer correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions (e.g., entity_type_id for SPA). The tool description offers no additional parameter-level explanation beyond what the schema provides. Baseline 3 is appropriate as the schema already handles semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action ('Delete') and target ('CRM record'), with the additional emphasis 'Irreversible — deletes on the portal.' This verb+resource definition is specific and distinguishes it from other CRM tools like update or list. No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when deletion of a CRM record is needed, but it lacks explicit guidance on when not to use or alternatives. For instance, it does not compare with sibling delete tools (e.g., b24_calendar_event_delete) or note prerequisites like entity type. Usage is clear but not comprehensively guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_crm_fieldsA
Read-onlyIdempotent

Describe an entity's fields, including user fields (UF_*).

Essential before add/update so you use correct field codes and enum ids.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityNoClassic CRM entity: 'lead', 'deal', 'contact', 'company', or 'quote'. Ignored when entity_type_id is set.deal
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
entity_type_idNoNumeric CRM entity type id for the modern crm.item.* API (e.g. 1=lead, 2=deal, 1030+=Smart Process). Set this to work with SPA items.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds context about including user fields and the purpose of field codes/enum IDs, but does not contradict annotations. Marginal extra value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two front-loaded sentences with no waste. The first sentence states purpose, the second provides usage context. Highly concise and structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (metadata retrieval), full schema coverage, and presence of output schema, the description is complete. Annotations cover safety, and the description adds essential context about field codes/enum IDs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The description adds no extra semantics for individual parameters, only a general note about including user fields. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Describe an entity's fields, including user fields (UF_*)', using a specific verb and resource. It distinguishes from sibling tools that perform CRUD operations on records, not field metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explicitly advises 'Essential before add/update so you use correct field codes and enum ids', providing clear when-to-use context. It implies usage before mutations but does not explicitly exclude other scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_crm_listA
Read-onlyIdempotent

List CRM records with filtering, sorting, and pagination.

Args: entity: classic entity name (default 'deal'). entity_type_id: set to use crm.item.list for SPA/modern objects. filter/select/order/start/fetch_all: standard list controls.

Returns: JSON pagination envelope {items, count, total, next, has_more, truncated}.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderNoSort object, e.g. {'ID':'DESC'} or {'DATE_CREATE':'ASC'}.
startNoPagination offset (page size is 50). Use 'next' from a prior response.
entityNoClassic CRM entity: 'lead', 'deal', 'contact', 'company', or 'quote'. Ignored when entity_type_id is set.deal
filterNoBitrix filter object. Keys may carry operator prefixes: '>', '<', '>=', '<=', '!', '%' (substring), '=%', e.g. {">=DATE_CREATE": "2026-01-01", "%TITLE": "draft"}.
selectNoFields to return, e.g. ['ID','TITLE','*','UF_*']. Omit for defaults.
fetch_allNoAuto-paginate and return all matching records (capped by BITRIX_MAX_PAGES, default 40 pages = 2000 records). Use a filter to keep this bounded.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
entity_type_idNoNumeric CRM entity type id for the modern crm.item.* API (e.g. 1=lead, 2=deal, 1030+=Smart Process). Set this to work with SPA items.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent. Description adds pagination details, auto-paginate cap, and output structure, enhancing transparency beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with separate Args and Returns sections. Every sentence is informative, no redundancy or verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given complexity (9 params, two APIs, pagination, fetch_all), description covers all essential aspects for correct usage, including output format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds value by summarizing parameter roles and explaining the two entity selection modes, going beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'List CRM records' with filtering, sorting, pagination. Distinguishes between classic and modern entity types, adding specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains when to use entity vs entity_type_id for different API versions, providing context for correct invocation. Lacks explicit exclusions or alternatives but offers sufficient guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_crm_product_listA
Read-onlyIdempotent

List classic CRM catalog products (crm.product.list) with pagination.

Common filter keys: NAME, SECTION_ID, ACTIVE ('Y'/'N'), CATALOG_ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderNoSort object, e.g. {'ID':'DESC'} or {'DATE_CREATE':'ASC'}.
startNoPagination offset (page size is 50). Use 'next' from a prior response.
filterNoBitrix filter object. Keys may carry operator prefixes: '>', '<', '>=', '<=', '!', '%' (substring), '=%', e.g. {">=DATE_CREATE": "2026-01-01", "%TITLE": "draft"}.
selectNoFields to return, e.g. ['ID','TITLE','*','UF_*']. Omit for defaults.
fetch_allNoAuto-paginate and return all matching records (capped by BITRIX_MAX_PAGES, default 40 pages = 2000 records). Use a filter to keep this bounded.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark as read-only and idempotent; description adds pagination behavior (offset, fetch_all, max pages) and filter operator syntax beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose and key details, no unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all essential aspects: purpose, pagination, filter keys, and tool-specific parameters; output schema covers return values, making this description complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% parameter description coverage; description adds value by listing common filter keys (NAME, SECTION_ID, etc.) and explaining pagination (use 'next').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it lists classic CRM catalog products with pagination, distinguishing from sibling list tools by specifying 'classic CRM catalog'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 over siblings like b24_catalog_product_list or b24_crm_list. Provides filter key suggestions but no usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_crm_productrows_setB

Replace the product rows of a deal/lead/quote (crm.item.productrow.set).

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsYesProduct rows, e.g. [{'productName':'X','price':100,'quantity':2},{'productId':55,'price':10,'quantity':1}].
owner_idYesOwner record id.
owner_typeYesOwner short type: 'D' (deal), 'L' (lead), 'Q' (quote).
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false (mutation) and destructiveHint=false (not destructive). The description says 'replace', implying overwriting all product rows, but it does not clarify if the operation clears existing rows first, or if it appends. No mention of auth roles, rate limits, or side effects. With annotations present, the bar is lower, but the description adds minimal behavioral context beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the core action and scope. No unnecessary words or redundancy. It is front-loaded with the key verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is minimal but covers the basic purpose. Given the presence of an output schema (not shown but indicated), return values are covered. However, the description leaves ambiguity about behavioral details (like overwriting vs appending) and does not leverage the complex rows parameter to explain how the replacement works practically. Adequate but with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with all parameters having descriptions and examples (e.g., rows parameter shows JSON format, owner_type explains 'D', 'L', 'Q'). The description does not add any additional parameter meaning beyond what the schema already provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('replace'), the resource ('product rows'), and the context ('deal/lead/quote'), with the API method in parentheses. It distinguishes the tool from siblings like b24_crm_deal_contacts_set (different resource) and b24_crm_product_list (product catalog), though it does not explicitly differentiate. This gives a clear purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no information on when to use this tool versus alternatives, nor any prerequisites or exclusion criteria. For a tool that modifies CRM product rows, guidance on when to use b24_crm_product_list for fetching product IDs or b24_crm_deal_contacts_set for contacts would be beneficial, but none is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_crm_status_listA
Read-onlyIdempotent

List CRM status dictionary entries — stages, sources, types (crm.status.list).

Returns a pagination envelope of status entries (STATUS_ID, NAME, ENTITY_ID, SORT). This is how you resolve a stage code like 'C7:NEW' to a human name.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_idNoDictionary to fetch, e.g. 'DEAL_STAGE', 'DEAL_STAGE_7' (pipeline 7), 'STATUS' (lead statuses), 'SOURCE', 'CONTACT_TYPE'. Omit for all dictionaries.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value beyond annotations by specifying the return structure (pagination envelope with STATUS_ID, NAME, ENTITY_ID, SORT). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and resource. Every sentence adds value with no filler. The description is efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description covers its purpose, return format, and use case. The output schema exists, so the mention of returned fields is sufficient. No obvious gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% description coverage for all three parameters (entity_id, webhook_url, personal_webhook). The tool description does not add extra parameter details beyond the schema, but the schema itself is detailed. Baseline 3 is appropriate as the description does not need to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool lists CRM status dictionary entries (stages, sources, types) and specifies the API method crm.status.list. It also explains the purpose with a concrete example: resolving a stage code like 'C7:NEW' to a human name. This distinguishes it from sibling tools like b24_crm_fields or b24_crm_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool: to resolve stage codes to human names. It does not explicitly state when not to use or provide alternatives, but the example gives a strong usage hint. Missing explicit exclusions or comparisons with siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_crm_timeline_comment_listA
Read-onlyIdempotent

List timeline comments of a CRM record (crm.timeline.comment.list).

ParametersJSON Schema
NameRequiredDescriptionDefault
startNoPagination offset (page size is 50). Use 'next' from a prior response.
entity_idYesOwner record id.
fetch_allNoAuto-paginate and return all matching records (capped by BITRIX_MAX_PAGES, default 40 pages = 2000 records). Use a filter to keep this bounded.
entity_typeYesTimeline owner type: 'deal','lead','contact','company','quote'.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description is consistent but adds no additional behavioral context beyond what annotations provide. With annotations covering safety, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no unnecessary words. It is front-loaded with the core action and resource. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown but noted in context) and comprehensive annotations, the description is nearly complete. It could mention that comments are timeline-specific, but the simplicity of the tool makes this sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description does not add extra meaning for any parameters; all parameter details are already in the schema. No additional context is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (List), resource (timeline comments of a CRM record), and includes the underlying API method. It distinguishes from sibling tools like b24_task_comments_list by specifying 'CRM record'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives. It does not mention prerequisites, filtering options, or when other tools (e.g., b24_crm_list for general records) might be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_disk_file_contentA
Read-onlyIdempotent

Download a Disk file's content and return it as base64.

Resolves DOWNLOAD_URL via disk.file.get, then fetches the bytes server-side (so the portal WAF sees the request, not your client). Guarded by max_size_mb.

Returns: {"id","name","size","content_type","base64"} or an error envelope.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYesDisk file id to download.
max_size_mbNoRefuse to download files larger than this (default 10 MB) to protect the context window.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that it resolves a download URL and fetches server-side, providing context beyond annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with 4 sentences, front-loaded with the primary action. Every sentence adds value; no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the annotations, schema coverage, and output schema hinted in the description, the tool description is complete. It explains the server-side fetch mechanism and safety guard, which are important for agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions for each parameter. The description reinforces the max_size_mb guard but adds minimal new semantic information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Download' and the resource 'Disk file's content', and specifies the output format (base64). It distinguishes itself from sibling disk tools like b24_disk_file_delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool (to download file content) and provides context about server-side fetching and WAF considerations. It does not explicitly exclude alternatives, but the purpose is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_disk_file_deleteA
Destructive

Delete a Disk file (disk.file.delete). Moves to trash on the portal.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYesDisk file id to delete (moves it to the trash).
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. The description adds 'Moves to trash on the portal,' which clarifies the effect beyond mere deletion. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: two sentences, no fluff. First sentence states action and method, second adds behavioral nuance. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a straightforward deletion tool with output schema. It explains the result (moved to trash) but could mention permissions or reversibility. Still, given simplicity, it's sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema fully documents parameters. The description doesn't add new param details beyond what's in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete a Disk file' with a specific verb and resource, and notes the behavior (moves to trash). It distinguishes from siblings like b24_disk_folder_add by focusing on file deletion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It doesn't mention prerequisites or when not to use it, leaving the agent without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_disk_folder_addA

Create a subfolder (disk.folder.addsubfolder). Returns the new folder object.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNew subfolder name.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
parent_folder_idYesParent folder id.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds minimal behavioral context beyond annotations (readOnlyHint=false, destructiveHint=false). It states the return type but does not discuss permissions, side effects, or constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that includes the purpose and return type. It could be improved by front-loading the action more prominently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with full schema coverage and an output schema, the description is fairly complete, covering the core action and return value. However, it lacks usage guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already describes all parameters. The description does not add additional meaning beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create a subfolder'), the resource ('subfolder'), and the underlying API method, distinguishing it from other disk tools like b24_disk_file_content or b24_disk_file_delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not specify when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it. Usage is implied but not explicitly guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_documentgenerator_addA

Generate a document from a template and CRM record (crm.documentgenerator.document.add).

Returns the created document (id, downloadUrl, pdfUrl, ...).

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesNoExtra values to override/supply template placeholders.
entity_idYesSource record id whose data fills the template.
template_idYesTemplate id to render.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
entity_type_idYesCRM entity type id of the source (2=deal, 1=lead, 3=contact, 4=company, 1030+=SPA).
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the return format and indicates it creates a document. Annotations show readOnlyHint=false and destructiveHint=false, consistent with creation. No contradictions. Some side effects (e.g., portal storage) are implied but not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states purpose, second lists return fields. No unnecessary words, front-loaded with key info.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the parameter count and schema richness, the description is adequate. It mentions output fields, but lacks error conditions or limitations. Still complete enough for common use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already explains each parameter well (e.g., entity_type_id with examples). The description adds no further parameter info beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a document from a template and CRM record, and lists the return fields (id, downloadUrl, pdfUrl). This distinguishes it from siblings like b24_documentgenerator_templates which only list templates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for document generation from a template and record, but does not explicitly state when to use it versus alternatives or provide exclusions. The context with sibling tools makes it reasonably clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_documentgenerator_templatesA
Read-onlyIdempotent

List document templates (crm.documentgenerator.template.list).

Filter examples: {'active':'Y'}, {'entityTypeId':2} (deals). Returns a pagination envelope of templates (id, name, ...).

ParametersJSON Schema
NameRequiredDescriptionDefault
startNoPagination offset (page size is 50). Use 'next' from a prior response.
filterNoBitrix filter object. Keys may carry operator prefixes: '>', '<', '>=', '<=', '!', '%' (substring), '=%', e.g. {">=DATE_CREATE": "2026-01-01", "%TITLE": "draft"}.
fetch_allNoAuto-paginate and return all matching records (capped by BITRIX_MAX_PAGES, default 40 pages = 2000 records). Use a filter to keep this bounded.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is clear. The description adds that it returns a pagination envelope of templates, which is useful but not substantial beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (two sentences) and front-loaded with the main action. Every word adds value, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 5 parameters, 100% schema coverage, and existing output schema, the description is minimally sufficient. It covers the main action, filter usage, and return structure. However, it could provide more guidance on alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is documented in the schema. The description adds value with concrete filter examples and mentions pagination, even though the schema already describes filter format and start parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List document templates' and gives the underlying API method (crm.documentgenerator.template.list), making the verb and resource explicit. Filter examples further clarify the scope. It distinguishes from siblings by specifying the resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides filter examples and indicates it lists templates, but does not specify when to use this tool versus alternatives like b24_crm_list or b24_documentgenerator_add. No explicit guidelines for when to use or avoid.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_group_createB

Create a workgroup/project (sonet_group.create). Returns the new group id.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesGroup fields. Minimum NAME; common: DESCRIPTION, VISIBLE ('Y'/'N'), OPENED, SUBJECT_ID, INITIATE_PERMS.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds the return value (new group id), but does not disclose other behavioral traits like permissions or failure conditions. With annotations present, the bar is lower, so a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the purpose and return value. It includes the API method name for reference. There is no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the nested 'fields' parameter and the presence of an output schema, the description is too brief. It does not explain mandatory fields beyond NAME, error conditions, or the significance of openWorldHint=true. More context is needed for a creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the parameter description for 'fields' in the schema already lists common sub-fields (NAME, DESCRIPTION, VISIBLE, etc.). The description repeats this information, adding no new meaning beyond the schema. Baseline of 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create' and the resource 'workgroup/project', and mentions the return value 'new group id'. It distinguishes itself from sibling tools like b24_group_update and b24_group_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 b24_group_update for modifying existing groups. It lacks prerequisites or conditions for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_group_listA
Read-onlyIdempotent

List workgroups/projects (sonet_group.get) with a working filter.

Filter keys include NAME, '%NAME' (substring), ACTIVE ('Y'/'N'), CLOSED, OWNER_ID, SUBJECT_ID. Returns a pagination envelope of group objects (ID, NAME, DESCRIPTION, SCRUM_MASTER_ID, ...).

ParametersJSON Schema
NameRequiredDescriptionDefault
orderNoSort object, e.g. {'ID':'DESC'} or {'DATE_CREATE':'ASC'}.
startNoPagination offset (page size is 50). Use 'next' from a prior response.
filterNoBitrix filter object. Keys may carry operator prefixes: '>', '<', '>=', '<=', '!', '%' (substring), '=%', e.g. {">=DATE_CREATE": "2026-01-01", "%TITLE": "draft"}.
selectNoFields to return, e.g. ['ID','TITLE','*','UF_*']. Omit for defaults.
fetch_allNoAuto-paginate and return all matching records (capped by BITRIX_MAX_PAGES, default 40 pages = 2000 records). Use a filter to keep this bounded.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds value by stating it returns a pagination envelope of group objects with specific fields, plus mentions the working filter behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words: first sentence states purpose, second lists filter keys and return info. It is optimally concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 optional parameters, pagination, filtering, and an output schema, the description covers all essentials: purpose, filter keys, pagination envelope, and underlying method. It is complete given the complexity and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema itself provides detailed parameter descriptions. The description lists filter keys but does not add significant new meaning beyond the schema, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists workgroups/projects with a filter, specifying the underlying API method (sonet_group.get). It distinguishes from sibling tools like b24_group_create, b24_group_update, etc., which are for other operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly lists filter keys (NAME, ACTIVE, etc.) and mentions pagination, providing clear context for usage. It does not include explicit exclusions or when-not-to-use, but the purpose is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_group_updateB

Update a workgroup (sonet_group.update).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesFields to change.
group_idYesGroup id to update.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds no behavioral context beyond that, such as side effects, permissions, or reversibility, which is minimal even with annotations present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence of 6 words is highly concise and front-loaded with action, containing no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having output schema and 4 parameters, the description provides no additional context about the update operation, accepted field structure, or any constraints beyond the schema. Incomplete for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters. The description does not add additional meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Update a workgroup' with the API method in parentheses, distinguishing it from sibling tools that create, list, or manage group users.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use or not use this tool versus alternatives like b24_group_create or b24_group_list. The description lacks any when-to-use or when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_group_usersA
Read-onlyIdempotent

List members of a workgroup (sonet_group.user.get).

Returns members with USER_ID and ROLE ('A' owner/moderator, 'E' member, ...).

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYesGroup id whose members to list.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses return fields (USER_ID and ROLE with meaning) which adds value beyond annotations that indicate read-only, idempotent, non-destructive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose and immediately followed by output details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Essential information is provided for a straightforward listing tool; returns and parameters are well-covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions; the description adds no additional parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'List members of a workgroup' with the API method, distinguishing from sibling tools like b24_group_list or b24_group_create.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no explicit guidance on when to use this tool over alternatives or 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.

b24_im_dialog_messagesA
Read-onlyIdempotent

Read message history of a chat/dialog (im.dialog.messages.get).

Returns messages plus the referenced users/files. Page back with last_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many recent messages to return (default 20).
last_idNoReturn messages older than this message id (for paging back through history).
dialog_idYesDialog id: 'chat123' for a group chat, or a numeric user id (as string) for a 1:1 dialog.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate safe read operation (readOnlyHint, idempotentHint, non-destructive). Description adds that it returns referenced users/files and pagination mechanism, which supplements the annotations well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with essential information front-loaded. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only paged tool with output schema present, the description adequately covers behavior and return values. No missing critical details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. Description reinforces pagination via last_id but does not add significant new meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Describes a specific action ('Read message history of a chat/dialog') and the return content ('messages plus the referenced users/files'). Clearly distinguishes from sibling tools, which are mostly CRM, tasks, or admin functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions pagination via last_id and provides context for reading history. However, does not explicitly state when not to use or name alternative tools, but the sibling context makes alternatives clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_im_notify_personalA

Send a personal notification to a user (im.notify.personal.add).

Appears in the recipient's notification center. Returns the notification id.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesNotification text.
user_idYesRecipient user id.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate the tool is not read-only (readOnlyHint: false) and not destructive. The description adds that the notification appears in the recipient's notification center and returns the notification id, providing useful behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise with two sentences. It front-loads the purpose and includes the API method name, making it clear and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description adequately covers the return value. It explains the basic effect (notification in center) and the tool's core action. Minor improvement could clarify error handling, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters are described in the schema (100% coverage), so the description does not add significant meaning beyond what the schema provides. The description mentions 'recipient user id' and 'notification text,' but these are already clear from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'send' and the resource 'personal notification', including the underlying API method. It distinguishes from sibling tools like b24_im_dialog_messages by specifying it's a notification, not a message.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for sending personal notifications but lacks explicit guidance on when to use this tool versus alternatives (e.g., b24_im_dialog_messages). No prerequisites or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_im_recentA
Read-onlyIdempotent

List the acting user's recent chats/dialogs (im.recent.get).

Returns recent conversations with their DIALOG_ID, last message, and unread counters. Use a DIALOG_ID with b24_im_dialog_messages to read history.

ParametersJSON Schema
NameRequiredDescriptionDefault
skip_chatNoSkip group chats and show only 1:1 dialogs.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already readOnlyHint, idempotentHint, destructiveHint false. Description adds return fields (DIALOG_ID, last message, unread counters). No contradiction. Additional behavioral details (e.g., pagination) not mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundant words. Action verb first. Efficiently conveys purpose and post-use guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Has output schema; description mentions key fields. Lacks ordering or date-range hints but sufficient for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage 100%, schema fully documents all 3 parameters with descriptions. Description adds no new parameter info beyond schema. Baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Explicit verb and resource: 'List the acting user's recent chats/dialogs'. Names the API method (im.recent.get). Distinguishes from sibling b24_im_dialog_messages by mentioning use of DIALOG_ID for history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States clear next step: 'Use a DIALOG_ID with b24_im_dialog_messages to read history.' Provides context but no explicit when-not-to-use or alternatives among many IM siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_list_methodsA
Read-onlyIdempotent

Discover which REST methods/scopes this webhook can access.

Calls scope (granted scopes) and, when full=true, methods (all method names). Handy for figuring out what the portal exposes before writing a b24_call.

Returns: JSON: {"scopes": [...], "methods": [...optional...]}.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNoIf true, list every available method; otherwise return scope summary only.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explains that it calls 'scope' and optionally 'methods' based on the 'full' parameter, and describes the return format. This adds behavioral context beyond the annotations (readOnlyHint, idempotentHint), which already signal safe, non-destructive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus a return format line, no wasted words. The key purpose is front-loaded, and every sentence contributes meaningful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (0 required params, full schema coverage, existing output schema description, and annotations covering safety), the description adequately informs the agent of the tool's purpose, behavior, and return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 3 parameters, fully explaining each. The description only mentions 'full=true' to list methods, adding minimal extra value beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Discover which REST methods/scopes this webhook can access.' It uses a specific verb (discover) and resource (methods/scopes), and is distinct from sibling tools like b24_bizproc_template_list or b24_call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Indicates usage context: 'Handy for figuring out what the portal exposes before writing a b24_call.' It provides a clear when-to-use hint, though does not explicitly state when not to use or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_lists_element_addB

Create a list element (lists.element.add). Returns the new element id.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesElement fields, e.g. {'NAME':'Row 1','PROPERTY_123':'value'}.
iblock_idYesInformation-block id of the list (numeric IBLOCK_ID).
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
iblock_type_idYesInformation-block type, e.g. 'lists' (portal lists), 'bitrix_processes' (workflows), 'lists_socnet' (group lists).
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, destructiveHint=false, etc., which are consistent with creation. The description adds the return of 'new element id', but no other behavioral traits (e.g., side effects, permissions) are disclosed beyond what annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste. Every word serves a purpose: the action, the method name, and the return value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema and 100% parameter coverage, the description is minimally sufficient. However, for a creation tool with nested objects and 5 parameters, additional context (e.g., prerequisites, permissions) would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description does not add meaning beyond the schema descriptions, meeting the baseline but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a list element' and specifies the return value. It distinguishes this from sibling tools like b24_lists_element_list (list) and b24_lists_get (get info), but does not explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, no prerequisites or exclusions mentioned. The description lacks context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_lists_element_listA
Read-onlyIdempotent

List elements (records) of a list (lists.element.get) with pagination.

Field codes are usually PROPERTY_ for custom properties plus NAME, ID, CREATED_BY, etc. Use b24_call('lists.field.get', ...) to inspect field codes.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderNoSort object, e.g. {'ID':'DESC'} or {'DATE_CREATE':'ASC'}.
startNoPagination offset (page size is 50). Use 'next' from a prior response.
filterNoBitrix filter object. Keys may carry operator prefixes: '>', '<', '>=', '<=', '!', '%' (substring), '=%', e.g. {">=DATE_CREATE": "2026-01-01", "%TITLE": "draft"}.
selectNoFields to return, e.g. ['ID','TITLE','*','UF_*']. Omit for defaults.
fetch_allNoAuto-paginate and return all matching records (capped by BITRIX_MAX_PAGES, default 40 pages = 2000 records). Use a filter to keep this bounded.
iblock_idYesInformation-block id of the list (numeric IBLOCK_ID).
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
iblock_type_idYesInformation-block type, e.g. 'lists' (portal lists), 'bitrix_processes' (workflows), 'lists_socnet' (group lists).
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds significant behavioral context: pagination offset/page size, auto-pagination with cap, filter operators, webhook precedence, and field code patterns. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences in the first paragraph and a second paragraph providing a helpful hint. It is front-loaded with purpose. No wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (9 parameters, pagination, auto-fetch, webhook setup, field codes), the description covers all major aspects: purpose, pagination behavior, filter operators, fetch_all limits, webhook precedence, and references to related tools for field inspection. Output schema exists, so return values are not needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions. The description adds value by explaining field code patterns (PROPERTY_<n>), suggesting 'b24_call' to inspect fields, and clarifying that 'select' can include '*' or 'UF_*'. This enriches understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists elements/records of a list with pagination, using the underlying API method 'lists.element.get'. It specifies the resource and verb, and hints at field codes, distinguishing it from sibling tools like b24_lists_element_add.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly contrast with alternatives or state when not to use this tool. Usage is implied from the purpose, but no explicit when/when-not guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_lists_getA
Read-onlyIdempotent

List the available Lists of a given type (lists.get).

Returns the list definitions (IBLOCK_ID, NAME, ...). Use an IBLOCK_ID with b24_lists_element_list to read its records.

ParametersJSON Schema
NameRequiredDescriptionDefault
iblock_codeNoOptional list code to fetch a single list.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
iblock_type_idYesInformation-block type, e.g. 'lists' (portal lists), 'bitrix_processes' (workflows), 'lists_socnet' (group lists).
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds that it returns list definitions, consistent with safe read operation. No additional behavioral traits like auth or rate limits, but annotations cover core safety.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, includes practical usage hint. Every sentence adds value; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists and annotations cover safety, description adequately explains tool's function and output usage. Parameter descriptions in schema are thorough. Complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. Description does not add new parameter details beyond mentioning 'given type' for iblock_type_id. Baseline score justified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists available lists by type, returns definitions (IBLOCK_ID, NAME), and distinguishes from sibling b24_lists_element_list by explaining how to use the output. Specific verb and resource with differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: lists of a given type with examples for iblock_type_id. Suggests using IBLOCK_ID with b24_lists_element_list. Does not explicitly mention when not to use or alternatives, but practical guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_sale_order_getA
Read-onlyIdempotent

Fetch a single store order (sale.order.get). Returns {"order": {...}}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesOrder id.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds the return format but does not go beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one line plus return format) with no filler. It is front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (single required parameter, good schema, annotations, and output schema), the description is complete and sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds no additional meaning to parameters beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Fetch' and the resource 'single store order', and specifies the return structure. It is distinct from sibling tools that fetch other entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for fetching a specific order but provides no explicit guidance on when to use this tool versus alternatives like b24_crm_list or b24_tasks_list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_scrum_sprint_listA
Read-onlyIdempotent

List sprints of a Scrum group (tasks.api.scrum.sprint.list).

Returns a pagination envelope of sprint objects (id, name, dateStart, dateEnd, status, ...). Use the active sprint's id with b24_scrum_kanban_stages to get the real board columns.

ParametersJSON Schema
NameRequiredDescriptionDefault
startNoPagination offset (page size is 50). Use 'next' from a prior response.
statusNoSprint status filter: 'active' (default), 'planned', 'completed', or null for all. Defaulting to 'active' avoids the pagination trap where the current sprint is never reached.active
group_idYesScrum group/project id (GROUP_ID).
fetch_allNoAuto-paginate and return all matching records (capped by BITRIX_MAX_PAGES, default 40 pages = 2000 records). Use a filter to keep this bounded.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds return format details (pagination envelope of sprint objects with fields). No contradictions, and adds value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences plus a one-sentence hint. Every part is essential; no fluff. Front-loaded with action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given rich annotations, full schema coverage, and output schema existence, the description is sufficient. It covers the purpose, a key usage hint, and return shape. Minor omission: no mention of pagination behavior beyond 'pagination envelope', but schema covers start and fetch_all.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with detailed descriptions for all 6 parameters. The description does not add further parameter-specific semantics. Baseline 3 is appropriate as schema fully documents parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'List' and resource 'sprints of a Scrum group', with API method reference. No ambiguity about what the tool does, and it is distinct from sibling tools (no other sprint-list tool).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a specific downstream usage hint (use active sprint id with b24_scrum_kanban_stages for board columns). Does not explicitly state when not to use or compare to alternative tools, but context is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_scrum_task_moveA

Move a task to a column on a Scrum sprint board (tasks.api.scrum.kanban.addTask).

Use this instead of b24_task_update's STAGE_ID to relocate a task that belongs to an active sprint. Confirmed live: tasks.task.update with STAGE_ID is accepted with no error and the new value reads back correctly, but the card does not actually move on the real board (reload and it's still in the old column) — this method is Bitrix's board-aware write and is the one that does move it.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask id to move.
stage_idYesTarget kanban column id (from b24_scrum_kanban_stages or b24_scrum_board).
sprint_idYesSprint id the task belongs to (from b24_scrum_sprint_list or b24_scrum_board).
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations by revealing that b24_task_update's STAGE_ID is accepted but ineffective, and describes this tool as 'board-aware write'. Annotations already indicate non-read-only, so the description adds useful nuance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately sized and front-loaded, with the core purpose, usage guidance, and a real-world observation. Every sentence adds value, but it could be slightly more concise without losing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters, annotations, and an output schema, the description is complete enough. It explains the key behavior and alternative, though it doesn't detail return values (output schema likely covers that).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter already has a description. The tool description does not add additional meaning beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool moves a task to a column on a Scrum sprint board, and explicitly distinguishes it from the sibling tool b24_task_update by noting that b24_task_update's STAGE_ID does not actually move the card on the board.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance to use this tool instead of b24_task_update's STAGE_ID for tasks in active sprints, and explains the alternative's failure mode, giving clear when-to-use and when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_task_addA

Create a task (tasks.task.add). Returns {"task": {...}} with the new id.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesTask fields. TITLE and RESPONSIBLE_ID are required, e.g. {'TITLE':'Do X','RESPONSIBLE_ID':1,'DEADLINE':'2026-08-01T18:00:00','GROUP_ID':10}.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is not read-only, not destructive, and not idempotent. The description adds that creating a task returns the new object, but does not discuss behavioral implications like validation failures, permission requirements, or side effects beyond the creation itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that conveys the core action and return value. There is no redundant or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters (1 required), a nested object, and an output schema, the description is minimal. It does not explain error handling, permission requirements, or what happens with invalid fields. While the schema covers some context, the description could be more complete for a create operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already details each parameter. The description adds a concrete example for the 'fields' parameter showing required keys, but does not significantly enhance understanding 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Create a task' with the API method name, and mentions the return format with the new ID. This clearly identifies the action and resource, and distinguishes it from sibling tools like b24_task_get or b24_tasks_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 other create tools in the list. It does not mention prerequisites like valid webhook or user permissions, nor does it specify 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.

b24_task_checklist_listB
Read-onlyIdempotent

List a task's checklist items (task.checklistitem.getlist).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask id.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds no further behavioral context (e.g., pagination, permissions, ordering). It merely repeats the list action, providing minimal extra value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no wasted words, but could be slightly more informative (e.g., mentioning that it returns all checklist items) without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple list operation with output schema present. However, the description does not mention what fields are returned or that it returns a list, relying on the output schema completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 meaning beyond what the schema already provides for the 'id' parameter; it only reiterates 'Task id'. The webhook parameters are standard and not elaborated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List a task's checklist items', specifying the verb (list), resource (task's checklist items), and includes the API method for clarity. It distinguishes it from sibling tools like b24_task_comment_list or b24_task_get.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives, no prerequisites or conditions. The description only states what it does, not when or why to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_task_comment_addA

Add a comment to a task (task.commentitem.add). Returns the new comment id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask id to comment on.
textYesComment text.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate it's a write operation (readOnlyHint=false, destructiveHint=false). The description adds that it returns the new comment id, which is useful. However, no further behavioral details (e.g., notification, permissions) beyond what annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: one sentence with the method name and return value. No unnecessary words, front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (4 parameters, output schema exists for return value), the description is mostly complete. It lacks details on when to use webhook overrides or permission implications, but these are captured in the parameter descriptions. A minor gap for a low-complexity tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all parameters with descriptions (100% coverage). The tool description does not add any additional meaning to the parameters beyond what the schema already provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Add a comment to a task', specifies the underlying API method, and notes the return value. It distinguishes from sibling tools like b24_task_comments_list (list) and b24_task_elapsed_add (time).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (to add a comment) but offers no explicit guidance on when not to use it or alternatives. Given sibling tools exist for listing comments or other task operations, a usage hint would improve clarity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_task_comments_listA
Read-onlyIdempotent

List a task's comments (task.commentitem.getlist). Returns the comment list.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask id.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, etc. The description only adds 'Returns the comment list,' which is minimal extra context. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the main purpose with no unnecessary words. Each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and rich annotations, the description is nearly complete. It could mention pagination or ordering but is sufficient for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description adds no additional meaning to parameters beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: 'List a task's comments' with the underlying API method. It distinguishes from siblings like b24_task_comment_add by focusing on listing comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidelines on when to use or when not to use; usage is implied by the name and description. Lacks alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_task_elapsed_addB

Log time spent on a task (task.elapseditem.add). Returns the entry id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask id.
commentNoOptional note for the time entry.
secondsYesTime spent, in seconds.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false (mutation) and destructiveHint=false. Description adds 'Log time' which is consistent but provides no additional behavioral context beyond what schema and annotations offer. No mention of side effects, rate limits, or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short (one sentence plus parenthetical), front-loads the action. Minimal but efficient. Could include more structure without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, required=2, and output schema exists, the description is minimal. It states the return value ('entry id') but doesn't explain output format or additional context. Adequate but could be improved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are well-documented in schema. The tool description adds no extra meaning for parameters. Baseline score of 3 fits since description doesn't need to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action 'Log time spent on a task' and mentions the underlying API method 'task.elapseditem.add' and that it returns the entry id. This distinguishes it from sibling task tools like b24_task_comment_add or b24_task_add.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. Doesn't mention prerequisites like task existence, permissions, or when not to use it (e.g., for creating tasks vs logging time). Sibling tools exist but no differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_task_getA
Read-onlyIdempotent

Fetch a single task by id (tasks.task.get). Returns {"task": {...}}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask id.
selectNoFields to return, e.g. ['ID','TITLE','*','UF_*']. Omit for defaults.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds the return format, but no further behavioral context beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with purpose, zero waste. Perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, complete annotations, and output schema, the description suffices. It could mention the required 'id' parameter, but schema covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so description adds no parameter info beyond schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch a single task by id', providing a specific verb and resource. This distinguishes it from sibling tools like b24_tasks_list that list tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a single task is needed, but it does not explicitly differentiate from alternatives or provide when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_tasks_listA
Read-onlyIdempotent

List tasks with filtering, sorting, and pagination (tasks.task.list).

Common filter keys: RESPONSIBLE_ID, CREATED_BY, GROUP_ID (project/group), STATUS (1 new,2 pending,3 in progress,4 supposedly done,5 completed,6 deferred), STAGE_ID (kanban column), >=CREATED_DATE, etc. Common select: ['ID','TITLE','STATUS','RESPONSIBLE_ID','GROUP_ID','CREATED_BY', 'DEADLINE','STAGE_ID','COMMENTS_COUNT','TAGS'].

Caveat for Scrum sprint boards (confirmed live, not just theoretical): STAGE_ID here is reliable for a regular group kanban, but for a task on an active sprint it goes stale the moment the card is moved the correct way (b24_scrum_task_move / a real drag on the board) — Bitrix tracks that move in a separate structure with no public method to read it back. Filtering by STAGE_ID on a sprint board is approximate at best.

Returns: JSON pagination envelope {items, count, total, next, has_more, truncated}.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderNoSort object, e.g. {'ID':'DESC'} or {'DATE_CREATE':'ASC'}.
startNoPagination offset (page size is 50). Use 'next' from a prior response.
filterNoBitrix filter object. Keys may carry operator prefixes: '>', '<', '>=', '<=', '!', '%' (substring), '=%', e.g. {">=DATE_CREATE": "2026-01-01", "%TITLE": "draft"}.
selectNoFields to return, e.g. ['ID','TITLE','*','UF_*']. Omit for defaults.
fetch_allNoAuto-paginate and return all matching records (capped by BITRIX_MAX_PAGES, default 40 pages = 2000 records). Use a filter to keep this bounded.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint, destructiveHint, idempotentHint) already provide safety profile. The description adds critical behavior: STAGE_ID unreliability on sprint boards, pagination behavior, auto-pagination with fetch_all, and return shape. No contradiction. Adds value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured: summary line, common filter/select details, caveat section, return format. It is informative but not overly verbose; the caveat is necessary and justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex list tool with 7 parameters and existing output schema, the description covers filtering, sorting, pagination, auto-pagination, webhook override, and a crucial behavioral caveat. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3). Description enriches parameters with common filter keys (RESPONSIBLE_ID, STATUS values, etc.), select fields, filter operator prefixes, fetch_all behavior and cap, and webhook fallback precedence. This significantly aids agent understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List tasks with filtering, sorting, and pagination' and specifies the API method (tasks.task.list). It identifies the resource (tasks) and provides specific details, though it does not explicitly differentiate from sibling task-related list tools like b24_task_comments_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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. The description includes a caveat about STAGE_ID on sprint boards, which offers usage caution, but lacks direct comparisons or when-not-to-use advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_telephony_statisticsA
Read-onlyIdempotent

List call statistics (voximplant.statistic.get) with pagination.

Common filter keys: '>=CALL_START_DATE', 'PORTAL_USER_ID', 'CALL_TYPE' (1 outbound, 2 inbound), 'CALL_FAILED_CODE', 'PHONE_NUMBER'. Returns a pagination envelope of call records (CALL_ID, duration, cost, recording URL...).

ParametersJSON Schema
NameRequiredDescriptionDefault
startNoPagination offset (page size is 50). Use 'next' from a prior response.
filterNoBitrix filter object. Keys may carry operator prefixes: '>', '<', '>=', '<=', '!', '%' (substring), '=%', e.g. {">=DATE_CREATE": "2026-01-01", "%TITLE": "draft"}.
fetch_allNoAuto-paginate and return all matching records (capped by BITRIX_MAX_PAGES, default 40 pages = 2000 records). Use a filter to keep this bounded.
sort_fieldNoField to sort by, e.g. 'CALL_START_DATE'.
sort_orderNo'ASC' or 'DESC' (default).DESC
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is read-only, idempotent, and non-destructive. The description adds valuable behavioral details: pagination with offset, auto-pagination with fetch_all and a default page cap (40 pages = 2000 records), and the structure of the response (pagination envelope, key fields). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: a single introductory sentence followed by a brief enumeration of filter keys and return format. Every sentence adds value, no redundancy, and it is front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists and all parameters are described in the schema, the description adequately covers what the tool does, including pagination behavior and common filters. It provides sufficient context for an agent to use the tool correctly without missing critical information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage, so each parameter's description is already present. The tool description adds context by listing commonly used filter keys (e.g., '>=CALL_START_DATE', 'PORTAL_USER_ID') with examples and indicating the response fields (CALL_ID, duration, etc.). This enhances understanding beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists call statistics using the Bitrix24 voximplant.statistic.get API, with pagination. It distinguishes itself well from sibling tools, which are mostly CRM or task-related, by focusing on telephony statistics specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides common filter keys and pagination details, which gives some usage context, but it does not explicitly state when to use this tool versus alternatives (e.g., b24_call for single call initiation). No direct alternative exists among siblings, but guidance on when not to use it is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_test_connectionA
Read-onlyIdempotent

Verify the webhook works and report the acting user and portal.

Calls profile (identity + portal) and reports the resolved webhook. Use this first when diagnosing auth/permission problems.

Returns: JSON: {"ok": true, "portal": "...", "user": {"ID","NAME","LAST_NAME","ADMIN"...}} or an error envelope with the Bitrix code.

ParametersJSON Schema
NameRequiredDescriptionDefault
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds value by revealing the internal call to 'profile' and the return structure, including both success and error responses. This contextualizes the behavior beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, structured in three clear parts: purpose, usage hint, and return format. Every sentence provides necessary information without redundancy, achieving high efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and rich annotations, the description covers purpose, usage, and return format adequately. It could mention that calling it repeatedly is safe (implied by idempotentHint), but overall it is nearly comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters having clear descriptions. The description does not add further meaning to the parameters beyond what is already in the schema. Baseline 3 is appropriate as the description does not compensate for any gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Verify the webhook works and report the acting user and portal.' It uses specific verbs and resources, distinguishing it from sibling tools like b24_user_current or b24_user_get, which focus on user info but not connection verification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this first when diagnosing auth/permission problems,' providing clear context for when to use. While it doesn't list alternatives or when not to use, the guidance is sufficient and appropriate for a diagnostic tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_user_currentA
Read-onlyIdempotent

Return the acting user's profile (user.current): id, name, admin flag, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false, covering safety. Description adds context about return fields (id, name, admin flag) but no new behavioral traits beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence succinctly conveys purpose and content. No wasted words, front-loaded with action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with fully described parameters and an output schema, the description provides sufficient context. No missing information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. Description does not add meaning to parameters, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('Return') and resource ('acting user's profile'), lists specific fields, and differentiates from sibling tools like b24_user_get and b24_user_search by targeting the current user.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies use case (get current user info) but does not explicitly state when to prefer this tool over siblings or when not to use it. No exclusions or alternative guidance provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

b24_user_getA
Read-onlyIdempotent

Find users (user.get) with a real filter and pagination.

Filter keys include ID, ACTIVE ('Y'/'N'), NAME, LAST_NAME, EMAIL, UF_DEPARTMENT, WORK_POSITION, and '%'-prefixed substring variants (e.g. {'%LAST_NAME': 'Ivan'}). Always filter to keep the result bounded.

Returns: JSON pagination envelope {items, count, total, next, has_more, truncated}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoShortcut to fetch one user by id (merged into the filter as ID).
orderNoSort object, e.g. {'ID':'DESC'} or {'DATE_CREATE':'ASC'}.
startNoPagination offset (page size is 50). Use 'next' from a prior response.
filterNoBitrix filter object. Keys may carry operator prefixes: '>', '<', '>=', '<=', '!', '%' (substring), '=%', e.g. {">=DATE_CREATE": "2026-01-01", "%TITLE": "draft"}.
fetch_allNoAuto-paginate and return all matching records (capped by BITRIX_MAX_PAGES, default 40 pages = 2000 records). Use a filter to keep this bounded.
webhook_urlNoOverride the default incoming webhook for this call (https://<portal>/rest/<user_id>/<token>/). If omitted, uses personal_webhook, then the X-B24-Webhook HTTP header, then the BITRIX_WEBHOOK_URL env default.
personal_webhookNoAct as a specific user (their personal incoming webhook). Takes precedence over webhook_url. Required to write to the portal under that user's permissions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and idempotentHint=true, and the description adds behavioral details such as the pagination envelope, next token, truncated flag, and fetch_all cap. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three well-organized paragraphs: purpose and filter keys, pagination and fetch_all, and return format. No extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given annotations and output schema, the description covers all critical aspects: filter usage, pagination, fetch_all limits, webhook overrides, and return envelope. It is complete for agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The description enhances filter parameter semantics by listing common keys and '%'-prefixed substring variants, adding value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Find users' with 'real filter and pagination', specifying the verb and resource. It distinguishes from siblings like b24_user_current and b24_user_search by emphasizing filtered queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises to 'Always filter to keep the result bounded' and mentions pagination offset and auto-paginate with fetch_all. It provides context but does not explicitly contrast with related tools like b24_user_search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.3/5.0
Disambiguation4/5

Most tools target distinct operations and entities, but some overlap exists (e.g., b24_user_get vs b24_user_search, b24_catalog_product_list vs b24_crm_product_list) which could cause confusion. Overall, descriptions help differentiate.

Naming Consistency5/5

All tools follow a consistent b24_<domain>_<action> pattern with clear domain prefixes (e.g., crm, task, calendar) and verb-noun action suffixes. No mixed conventions or vague verbs like 'process' or 'handle'.

Tool Count3/5

52 tools is high compared to typical well-scoped servers, but the breadth of Bitrix24's API justifies many of them. Some tools could be combined (e.g., user_get and user_search), but the count is borderline heavy.

Completeness2/5

Several essential CRUD operations are missing from typed tools (e.g., no update for deals, tasks, calendar events; no add for contacts, deletes for groups). The universal b24_call covers these, but the typed surface is incomplete for common workflows.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides 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.
    13
    13
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server for interacting with Bitrix24 REST API, enabling CRUD operations on deals, contacts, companies, users, leads, and tasks, plus analytics and risk assessment.
    2
  • F
    license
    Not graded
    quality
    C
    maintenance
    Production-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.
  • A
    license
    Not graded
    quality
    B
    maintenance
    A secure, self-hosted MCP server for Bitrix24 CRM that enables reading CRM data and performing confirmation-gated writes through schema discovery and OAuth integration.
    13
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/john7ross/BitrixMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server