Skip to main content
Glama
paskal

bitrix24-mcp-server

by paskal

Bitrix24 MCP Server

An MCP (Model Context Protocol) server that exposes Bitrix24 REST API to AI assistants. Provides 35 tools for managing tasks, CRM entities, call recordings (incl. local transcription), users, workgroups, and Knowledge Base articles via Bitrix24's inbound webhook API.

Tools

Tasks (7)

  • bitrix24_task_list — list and filter tasks by status, assignee, project, etc.

  • bitrix24_task_get — get a single task with full details

  • bitrix24_task_create — create a task with title, description, assignee, deadline, priority, tags

  • bitrix24_task_update — update any task field

  • bitrix24_task_complete — mark a task as completed

  • bitrix24_task_start — set task status to "in progress"

  • bitrix24_task_defer — defer a task

Task Comments (2)

  • bitrix24_task_comment_list — list comments on a task

  • bitrix24_task_comment_add — add a comment (supports BBCode and @mentions)

Task Checklists (3)

  • bitrix24_task_checklist_list — list checklist items

  • bitrix24_task_checklist_add — add a checklist item

  • bitrix24_task_checklist_complete — mark a checklist item as done

Kanban Stages (2)

  • bitrix24_task_stages_list — list Kanban stages for a project

  • bitrix24_task_stage_move — move a task to a different stage

CRM (9)

  • bitrix24_crm_deal_list / bitrix24_crm_deal_get — deals

  • bitrix24_crm_contact_list / bitrix24_crm_contact_get — contacts

  • bitrix24_crm_lead_list / bitrix24_crm_lead_get — leads

  • bitrix24_crm_activity_list — timeline activities (calls/emails/SMS) on a lead/deal; call log with direction, duration, recording files

  • bitrix24_voximplant_statistic_get — telephony call stats (duration, in/out, recording file id, transcript status)

  • bitrix24_crm_timeline_comment_list — manual timeline comments (manager notes)

Note: Bitrix's own call transcripts and BitrixGPT call scoring are UI-only CoPilot features — not exposed by any Bitrix24 REST method (verified against all ~1170 webhook methods), so no tool can read or trigger them. Instead we download the recording and transcribe it ourselves — see below.

Call transcription (5)

Transcription and note-saving are separate — transcribe never writes to Bitrix, so you can get a transcript (and label it) without committing anything. Three quality/speed tiers, all decoding the audio locally (it never leaves the machine):

Tier

Tool

Models

Speed

Output

fast

bitrix24_call_transcribe_fast

GigaAM v2 only

~5× real-time, fastest

raw lowercase, no punctuation, no speaker labels

default

bitrix24_call_transcribe

Whisper large-v3

slower

punctuated, readable, raw segments (no speaker labels)

max

bitrix24_call_transcribe_max

GigaAM + Whisper + pyannote

slowest (3 models)

both transcripts + speaker-tagged turns to reconcile

Pick by need: fast for the quick gist (cheap, never hallucinates, but rough), default for a readable single transcript, max for the best possible (dual transcript + diarization the caller reconciles).

  • bitrix24_call_transcribe_fastfast tier. Single model, GigaAM v2 (Russian-native RNNT): ~5× real-time on CPU, never hallucinates, gets domain terms right. Raw lowercase / minimal punctuation / no speaker labels. Returns {text, engine, responsibleId, direction}. Brand names auto-normalised (вилюкс → Velux). Requires a light Python env (gigaam + soundfile + torch) at B24_FAST_PYTHON; if missing → error_type: missing_deps.

  • bitrix24_call_transcribedefault tier. Transcribe a call recording locally and fully offline. Whisper large-v3, auto-bootstrapping venv, no token. Substitutes for Bitrix's UI-only transcription. Returns raw, unlabelled {text, segments, responsibleId, direction}. Speaker labelling is the calling model's call (it gets the manager via responsibleId and the client's name from the lead).

  • bitrix24_call_transcribe_maxmax tier. The highest-quality pipeline: GigaAM v2 (RU-native, never hallucinates) + Whisper large-v3 (condition_on_previous_text=False + domain hotwords, for punctuation/proper-nouns) + pyannote diarization (speaker turns). Returns both transcripts + speaker-tagged segments ({whisper_text, gigaam_text, segments, speakers, reconcile_hint}) for the calling model to reconcile into one clean transcript. Brand names auto-normalised (V-LUX / вилюкс → Velux). Requires a heavy Python env at B24_MAX_PYTHON (faster-whisper + gigaam + pyannote.audio + torch) and an HF token (HF_TOKEN/B24_HF_TOKEN) whose account accepted the pyannote gated models. Missing any of that → a clear error_type (missing_hf_token / missing_deps / model_not_approved) telling you exactly what to fix. See Call transcription setup.

  • bitrix24_crm_timeline_note_get — read the «заметка» on a timeline item (returns text or null). Check before saving.

  • bitrix24_crm_timeline_note_save — save the note on a timeline item (e.g. a call), so it appears at the item, not as a loose lead comment. Anti-clobber safeguard: default mode='create' will not overwrite an existing note — it writes your text to a local draft file and returns the existing note + a recommendation, so the caller decides. Re-call with mode='replace' (overwrite) or mode='append' (keep both). (writer — hidden in READONLY_MODE)

Users & Workgroups (3)

  • bitrix24_user_get — get user(s) by ID or filter

  • bitrix24_user_search — search users by name

  • bitrix24_workgroup_list — list workgroups and projects

Knowledge Base (4, optional)

Requires the third-party marketplace app «База знаний и тестирование» by IT-Solution installed on your portal. Bitrix24's native REST API does not expose knowledge base content — this app fills the gap with its own REST API.

  • kb_article_get — fetch a KB article by ID (rendered HTML body, title, access lists, metadata)

  • kb_directory_structure — list a directory's nested sub-directories and articles (IDs and titles, no bodies)

  • kb_article_save — create or update an article (HTML body)

  • kb_gpt_ask — query the KB's built-in GPT assistant

KB tools are registered only when KB_API_TOKEN (or KB_API_TOKEN_OP_REF) is set; otherwise they're silently skipped.

Related MCP server: Bitrix24 MCP Server

Prerequisites

  • Node.js 20+

  • A Bitrix24 portal with an inbound webhook

Creating a Webhook

  1. Go to your Bitrix24 portal → ПриложенияРазработчикамГотовые сценарииДругоеВходящий вебхук

  2. Select the required scopes:

    • task, tasks_extended — task management

    • crm — CRM read access

    • user, user_basic — user lookups

    • sonet_group — workgroups/projects

    • bizproc — business processes (optional)

    • im — chat/notifications (optional)

    • calendar — calendar (optional)

    • telephony — telephony (optional)

    • department — org structure (optional)

  3. Click Сохранить and copy the webhook URL (format: https://your-domain.bitrix24.ru/rest/USER_ID/SECRET/)

Setup

git clone <this-repo>
cd bitrix24-mcp-server
npm install

Authentication

The server reads the webhook URL from (checked in order):

  1. BITRIX24_WEBHOOK_URL environment variable — the full webhook URL

  2. BITRIX24_WEBHOOK_OP_REF environment variable — a 1Password reference (e.g. op://Vault/Item/field), resolved via op CLI at startup

Knowledge Base token (optional)

To enable the kb_* tools, install «База знаний и тестирование» on your portal, obtain an integration token in the app's settings, and set one of:

  1. KB_API_TOKEN — the raw token string

  2. KB_API_TOKEN_OP_REF — a 1Password reference, same format as above

If neither is set, KB tools are silently omitted and the rest of the server runs normally.

Call transcription (local & private)

All three transcription tiers decode call recordings on the machine running this MCP — the audio is never sent to any cloud service. Call recordings are customers' voices (personal data); keeping transcription offline avoids shipping PII to a third-party API and keeps it free.

Default tier — zero setup

bitrix24_call_transcribe works out of the box. On first use the server bootstraps a managed Python venv at ~/.cache/bitrix24-mcp/whisper-venv, installs faster-whisper into it, and downloads the Whisper large-v3 model (~3 GB) — so the first call is slow, and subsequent calls are served by a persistent worker pool that keeps the model loaded. The only prerequisite is a python3 on PATH able to create venvs. No ffmpeg is needed for this tier (faster-whisper bundles PyAV for audio decoding).

Environment variables (all optional):

Var

Default

Purpose

B24_TRANSCRIBE_PYTHON

Interpreter that already has faster-whisper; set it to skip the managed venv

B24_BOOTSTRAP_PYTHON

python3

Base interpreter used to create the managed venv

B24_TRANSCRIBE_SCRIPT

bundled scripts/transcribe_worker.py

Override the worker script

B24_TRANSCRIBE_CONCURRENCY

CPU cores ÷ 4

Parallel transcription workers

B24_WHISPER_MODEL

large-v3

Whisper model name/size

B24_WHISPER_COMPUTE

int8

ctranslate2 compute type

B24_WHISPER_LANG

ru

Language hint; empty = autodetect

Fast tier — one venv

bitrix24_call_transcribe_fast runs GigaAM v2, a Russian-only RNNT model (~5× real-time on CPU, never hallucinates; raw lowercase output). It needs a Python environment with gigaam — GigaAM requires Python < 3.13 (which pins a compatible torch) and shells out to the ffmpeg binary, so ffmpeg must be on PATH:

brew install ffmpeg            # or your platform's package manager
python3.12 -m venv ~/.venvs/b24-giga
~/.venvs/b24-giga/bin/pip install gigaam soundfile
export B24_FAST_PYTHON=~/.venvs/b24-giga/bin/python

Max tier — heavy venv + HuggingFace token

bitrix24_call_transcribe_max runs GigaAM + Whisper (with anti-hallucination settings and domain hotwords) + pyannote speaker diarization, and returns both transcripts plus speaker-tagged segments for the calling model to reconcile. It needs everything from the fast tier plus faster-whisper and pyannote.audio in one environment, and a HuggingFace token whose account has accepted the gated model terms at pyannote/speaker-diarization-community-1 and pyannote/segmentation-3.0:

brew install ffmpeg            # or your platform's package manager
python3.12 -m venv ~/.venvs/b24-max
~/.venvs/b24-max/bin/pip install gigaam soundfile faster-whisper pyannote.audio
export B24_MAX_PYTHON=~/.venvs/b24-max/bin/python
export HF_TOKEN=hf_...         # or B24_HF_TOKEN

B24_FAST_SCRIPT / B24_MAX_SCRIPT override the bundled scripts/transcribe_fast.py / scripts/transcribe_max.py. Models for all tiers download lazily into ~/.cache/huggingface on first use.

If a tier's environment is missing, its tool returns a clear, actionable error (error_type: missing_deps / missing_hf_token / model_not_approved) and the rest of the server is unaffected.

Claude Code Integration

Create a start.sh script:

#!/bin/sh
export BITRIX24_WEBHOOK_URL="https://your-domain.bitrix24.ru/rest/USER_ID/SECRET/"
cd /path/to/bitrix24-mcp-server
exec npx tsx src/index.ts
chmod +x start.sh

Add to your project's .mcp.json:

{
  "mcpServers": {
    "bitrix24": {
      "command": "/path/to/bitrix24-mcp-server/start.sh",
      "args": []
    }
  }
}

Option B: Direct command

{
  "mcpServers": {
    "bitrix24": {
      "command": "npx",
      "args": ["tsx", "src/index.ts"],
      "cwd": "/path/to/bitrix24-mcp-server",
      "env": {
        "BITRIX24_WEBHOOK_URL": "https://your-domain.bitrix24.ru/rest/USER_ID/SECRET/"
      }
    }
  }
}

Note: Option B depends on the MCP client correctly passing env and resolving npx from PATH. If it doesn't connect, use Option A.

Verify

After restarting Claude Code, run /mcp to confirm the server is connected. You should see 31 tools, or 35 if the Knowledge Base token is configured.

Development

npm run typecheck    # type-check without emitting
npm run build        # compile to dist/
npm run inspect      # open MCP Inspector UI

Deploying to the terrty agent host

The agent containers there launch the server as node /opt/b24-mcp/dist/index.js, the compiled output, not tsx src/. dist/ is gitignored, so a git pull alone ships nothing: the running agents keep the old behaviour and give no sign of it.

ssh terrty 'cd ~/bitrix24-mcp-server && git pull --ff-only origin master && npm run build'
ssh terrty 'for c in fg-agent-dmitry fg-agent-maria fg-agent-aleksandr; do docker restart -t 30 "$c"; done'

The restart matters because the server is spawned over stdio by a long-lived agent session, so an already-running child keeps executing the old bundle until its parent restarts. Verify against a known record rather than trusting the build, for example a lead whose email carries a named attachment.

Caught 2026-07-28: the attachment-resolution change was pulled but not built, so dist/attachments.js did not exist and the agents ran the previous version for hours.

Testing manually

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | \
  BITRIX24_WEBHOOK_URL="https://..." npx tsx src/index.ts

Architecture

src/
  index.ts            # entry point, auth, stdio transport
  bitrix-client.ts    # REST client with rate limiting (2 req/s) and pagination
  kb-client.ts        # IT-Solution KB API client (optional, activated by token)
  types.ts            # helpers (textResult, errorResult, zId, status/priority maps)
  tools/
    index.ts          # registers all tool modules
    tasks.ts          # tasks.task.* CRUD
    task-comments.ts  # task.commentitem.*
    task-checklist.ts # task.checklistitem.*
    task-stages.ts    # task.stages.*
    crm-deals.ts      # crm.deal.*
    crm-contacts.ts   # crm.contact.*
    crm-leads.ts      # crm.lead.*
    users.ts          # user.*
    workgroups.ts     # sonet_group.*
    im-chat.ts        # im.chat.*
    kb-articles.ts    # IT-Solution KB: article.*, directory.*, gpt.ask

Bitrix24 API Notes

  • Rate limit: 2 requests/second for webhooks (enforced by the client's request queue)

  • Pagination: 50 items per page; callList() fetches all pages up to a configurable max

  • Tasks API uses camelCase field names; CRM API uses UPPER_CASE

  • Batch API (batch() method) executes up to 50 sub-requests in a single rate-limited call

Extending

Add a new tool module:

  1. Create src/tools/my-entity.ts exporting registerMyEntityTools(server, client)

  2. Import and call it in src/tools/index.ts

  3. Use client.call() for single requests, client.callList() for paginated lists

  4. Wrap handlers in try/catch → errorResult(e)

  5. Validate IDs with zId from types.ts

Licence

MIT

Available Tools

43 tools
bitrix24_call_transcribeA

Transcribe a CRM call recording LOCALLY and fully offline (audio never leaves the machine). Resolves the call's recording (Voximplant/Mango RECORD_FILE_ID), downloads it, and decodes it with local Whisper large-v3 (strong Russian). Works out of the box — the MCP auto-bootstraps its own Python venv + model on first use (first call is slow: it downloads the ~3 GB model). A bounded worker pool serves calls, so firing hundreds at once just queues and drains N-at-a-time. This does NOT write anything to Bitrix — it only returns the transcript. To store it, the caller saves it with bitrix24_crm_timeline_note_save. Returns {text, segments, responsibleId, direction}: raw, unlabelled segments (Whisper splits by pause, not by speaker). For «who-said-what» labels the calling model decides — it has responsibleId (the manager) here and the client's name on the lead. Substitutes for Bitrix's UI-only call transcription/BitrixGPT scoring, which is NOT in the REST API. NOTE: phone audio is 8 kHz mono (mixed-speaker), so expect substance-accurate but imperfect text.

ParametersJSON Schema
NameRequiredDescriptionDefault
activityIdYesThe call activity ID (from bitrix24_crm_activity_list — a VOXIMPLANT_CALL activity)

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description fully covers behavioral traits: offline processing, model download on first use, bounded worker pool, no writes to Bitrix, raw segments without speaker labels, audio quality caveats, and return structure. 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?

Description is efficiently structured: purpose in first sentence, key details following. Every sentence adds value (e.g., model download, worker pool, no write, return format, audio quality). No waste.

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 necessary aspects for an agent: how it works, prerequisites, return format, limitations (no speaker labels, audio quality), and links to saving alternative. No output schema, but description compensates.

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?

Single parameter 'activityId' has 100% schema coverage with clear description. The tool description adds no additional parameter details beyond what the schema provides, meeting baseline but not exceeding.

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 transcribes CRM call recordings locally and offline, using specific verb 'Transcribe' and resource 'CRM call recording'. It distinguishes from siblings by emphasizing 'LOCALLY and fully offline' and mentions that it substitutes for Bitrix's UI-only transcription not available via REST API.

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 guidance on when to use (local transcription), notes first-call slowness due to model download, describes queue behavior for multiple calls, and explicitly states that the tool does NOT write to Bitrix (for saving, use alternative sibling tool). However, it does not compare with the sibling tools 'transcribe_fast' or 'transcribe_max'.

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

bitrix24_call_transcribe_fastA

FAST transcription of a CRM call — the quickest, cheapest tier. Runs a SINGLE local model, GigaAM v2 (Russian-native RNNT): ~5x real-time on CPU, never hallucinates, gets Russian domain terms right. Trade-off vs the default bitrix24_call_transcribe (Whisper): raw lowercase, minimal punctuation, NO speaker labels. Use it when you want the gist fast/cheap and don't need Whisper's punctuation or the max tier's dual-transcript + diarization. The three tiers: fast = GigaAM only (this) · default = Whisper large-v3 (slower, punctuated, readable) · max = both + diarization reconciled (best, slowest). Audio is decoded LOCALLY (never leaves the machine). Returns {text, engine, responsibleId, direction}; brand names auto-normalised (вилюкс → Velux). REQUIRES a Python env (gigaam + soundfile + torch) at B24_FAST_PYTHON — if missing, returns a clear error (error_type: missing_deps). Does NOT write to Bitrix; save with bitrix24_crm_timeline_note_save.

ParametersJSON Schema
NameRequiredDescriptionDefault
activityIdYesThe call activity ID (a VOXIMPLANT_CALL activity)

TDQS

A4.8/5.0
Behavior5/5

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

Discloses key behaviors: runs locally, trade-offs (lowercase, no punctuation, no speaker labels), requires Python environment, returns clear error if missing deps, does not write to Bitrix, and brand auto-normalization. No annotations provided, so description carries full burden and excels.

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?

Well-structured with clear front-loading of the tool's purpose. While slightly long, every sentence adds useful information. Could be slightly more concise, but overall efficient.

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 input, output format, dependencies, error handling, and post-processing. No output schema exists, but description includes return fields. 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.

Parameters4/5

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

Schema coverage is 100% for the single parameter `activityId`. Description adds context that it is a VOXIMPLANT_CALL activity, which aids understanding beyond the schema's description.

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 tool does FAST transcription using GigaAM v2 model, distinguishing it from the default and max tiers. The verb 'transcribe' combined with 'fast' and resource 'CRM call' is specific.

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?

Explicitly says when to use: 'when you want the gist fast/cheap and don't need Whisper's punctuation or the max tier's dual-transcript + diarization.' Also explains the three-tier trade-off and that it does not write to Bitrix, directing to save with another tool.

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

bitrix24_call_transcribe_maxA

MAX-quality transcription of a CRM call — the highest-fidelity pipeline, for when the basic bitrix24_call_transcribe isn't good enough. Runs THREE local models on the recording and returns the raw materials for you (the calling model) to reconcile into one clean transcript: • GigaAM v2 — Russian-native, never hallucinates, gets domain terms right (the reliable backbone) • Whisper large-v3 with condition_on_previous_text=False + domain hotwords — punctuation + proper nouns • pyannote diarization — speaker turns (who spoke when) Returns {whisper_text, gigaam_text, segments:[{start,speaker,text}], speakers, reconcile_hint}. YOU reconcile: keep Whisper for punctuation/proper-nouns, trust GigaAM where Whisper diverges into non-Russian garbage (hallucination), assign Менеджер/Клиент per speaker from content, fix diarization flips — then save with bitrix24_crm_timeline_note_save. Brand names are auto-normalised (V-LUX / вилюкс → Velux, etc.). REQUIRES: a heavy Python env (faster-whisper + gigaam + pyannote.audio + torch) at B24_MAX_PYTHON, and an HF token (env HF_TOKEN or B24_HF_TOKEN) whose account has accepted the pyannote gated-model terms. If any of that is missing the tool returns a clear, actionable error (error_type: missing_hf_token | missing_deps | model_not_approved) — fix that, then retry. Slower than basic (three models, no pooling).

ParametersJSON Schema
NameRequiredDescriptionDefault
activityIdYesThe call activity ID (a VOXIMPLANT_CALL activity)

TDQS

A4.6/5.0
Behavior5/5

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

Given no annotations, the description fully discloses the tool's internal behavior: it runs three models (GigaAM, Whisper, pyannote), returns raw materials for reconciliation, is slower than basic, and lists potential error types. It also mentions auto-normalization of brand names. This is complete 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?

The description is relatively long but well-structured with bullet points and clear sections. Each sentence adds value, though it could be slightly more concise without losing important details. The front-loading is effective with the core purpose stated first.

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?

The description covers all necessary context: input (activityId), complex output format (whisper_text, gigaam_text, segments, etc.), post-processing instructions (reconciliation steps), system requirements, error handling, and even notes brand name normalization. It is fully self-contained for an AI agent to use correctly.

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?

With schema coverage at 100%, the description adds minimal new information about the required 'activityId' parameter beyond what the schema provides ('The call activity ID (a VOXIMPLANT_CALL activity)'). The description contextualizes it as part of the broader use case but does not enhance semantic understanding of the parameter itself.

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 provides 'MAX-quality transcription of a CRM call' and explicitly distinguishes it from the sibling tool 'bitrix24_call_transcribe' by stating it's for when the basic version isn't good enough. The verb 'transcribe' and resource 'CRM call' are specific.

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 explicitly states when to use this tool ('when the basic bitrix24_call_transcribe isn't good enough'), outlines prerequisites (heavy Python env, HF token), explains error conditions and how to respond, and suggests a follow-up tool (bitrix24_crm_timeline_note_save). This provides comprehensive usage guidance.

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

bitrix24_crm_activity_listA

List timeline activities (calls, emails, SMS, meetings) on a CRM lead/deal/contact/company. Use this to see a lead's call log: each phone call is one activity. Key fields: TYPE_ID (2=call, 4=email, 6=SMS, 1=meeting, 3=task), PROVIDER_TYPE_ID ('CALL' for phone), DIRECTION (1=incoming, 2=outgoing), START_TIME/END_TIME (subtract for duration), RESPONSIBLE_ID (the manager). FILES are ATTACHMENTS, not just call recordings: on an email activity they are the documents that were sent or received (счёт, спецификация, смета, КП, договор, ТЗ, чертежи). Raw Bitrix returns them as bare {id, url} with no name, so this tool resolves each one and adds name/size/kind plus a per-activity FILES_SUMMARY {documents, document_names, call_recordings, signature_images, images, other}. ALWAYS read FILES_SUMMARY.document_names before concluding that a manager sent no calculation, no price or no КП — the price is routinely in the attached PDF while the email body says only «направляю расчёт». Inline Outlook signature logos (image001.png and similar) are classified as signature_image and carry no meaning. CALL TRANSCRIPTS: the activity record itself has no transcript field (DESCRIPTION/PROVIDER_DATA are empty on calls, and Bitrix's own BitrixGPT call scoring is UI-only), but this portal runs a local speech-to-text pipeline that writes finished transcripts into the call's TIMELINE NOTE. So a missing transcript here does NOT mean there is none: check bitrix24_crm_timeline_note_get (itemId = the call activity ID) before concluding anything about a call, then fall back to bitrix24_crm_timeline_comment_list. Coverage of the note pipeline is partial (~16% of call activities, skewed to longer calls), so an absent note is not evidence that no conversation happened. For call duration/direction/recording-file-id use bitrix24_voximplant_statistic_get, which is authoritative over anything written in a note header.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax activities to return (default cap 500 = 10 pages x 50; pass limit >= total to fetch all).
orderNoSort order, e.g. {CREATED: 'desc'}
filterNoExtra filter merged with the owner, e.g. {PROVIDER_TYPE_ID: 'CALL'} for calls only, {PROVIDER_ID: 'CRM_EMAIL'} for emails, {COMPLETED: 'Y'}, {DIRECTION: 2} for outgoing. Date-bound filters accept full ISO timestamps and are honoured: {'>=CREATED': '2026-07-20T00:00:00+03:00'}, {'<CREATED': '...'}, {'>CREATED': '...'} (verified 2026-07-28; the filter is posted as JSON so there is no key-encoding trap).
selectNoFields to return
ownerIdYesID of the lead/deal/contact/company
ownerTypeYesCRM entity type the activities belong to
resolveFilesNoResolve attachment names/sizes/kinds via disk.file.get (default true). Costs one extra REST call per 50 attachments and nothing when the result set has none. Pass false only when attachments are irrelevant and latency matters; the raw {id, url} pairs are then useless for judging what was sent.

TDQS

A4.8/5.0
Behavior5/5

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

No annotations provided, so description carries full burden. Discloses file resolution behavior, transcript gaps, note pipeline coverage, and signature image classification. Transparent about limitations.

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?

Long but all content is valuable. Front-loaded with purpose. Slightly verbose but justified by complexity. Could benefit from clearer sectioning, but not detrimental.

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 7 params, nested objects, no output schema, description covers input semantics, behavior, edge cases (file resolution, transcript), and references sibling tools. Fully equips agent.

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%, baseline 3. Description adds significant value: explains filter semantics (e.g., PROVIDER_TYPE_ID), resolveFiles default and impact, order usage. Exceeds 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?

Description clearly states tool lists timeline activities (calls, emails, SMS, meetings) on CRM entities (lead/deal/contact/company). Distinguishes from siblings for call duration, transcripts, etc.

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?

Explicitly says when to use (e.g., see call log) and when not to (use voximplant for call duration, timeline note for transcripts). Provides clear alternatives and fallbacks.

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

bitrix24_crm_contact_getB

Get a single CRM contact by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
contactIdYesContact ID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose any behavioral traits such as error handling (e.g., missing ID), authentication requirements, or response structure. The minimal description fails to compensate for the lack of 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 with no wasted words. Front-loaded purpose. Appropriate length for a simple retrieval tool.

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?

No output schema and no description of what the response contains. For a 'get' tool, agents need to know the structure of the returned contact object. This omission leaves the tool incomplete.

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 only parameter (contactId) is fully described in the schema with type and pattern. The description adds no additional meaning beyond the schema's own description. Schema coverage is 100%, 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 explicitly states 'Get a single CRM contact by ID', clearly identifying the verb, resource, and filtering criterion. Distinguishes from sibling list tools like bitrix24_crm_contact_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?

Implies use when you have a contact ID, but no explicit guidance on when to use this versus alternatives like contact_list or other get tools. No exclusion criteria or prerequisites mentioned.

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

bitrix24_crm_contact_listB

List and filter CRM contacts

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax contacts to return
orderNoSort order, e.g. {ID: 'desc'}
filterNoFilter, e.g. {ASSIGNED_BY_ID: 854}. Comparison operators DO work here, re-verified against this portal 2026-07-28: {'>=DATE_CREATE': '2026-07-20T00:00:00+03:00'} (inclusive, full ISO timestamp honoured), {'>DATE_CREATE': ...} (exclusive), {'>=ID': N} and {'>ID': N} all filter correctly — this tool posts the filter as JSON, so the curl --data-urlencode trap (which leaves the '>' in the KEY unencoded and makes Bitrix drop the condition) does not apply. Date-only values with a strict '>' are NOT required. The operator that IS unreliable: {FIELD: ''} ("is empty") on UF string fields returns records regardless (measured: 8 of 50 rows came back non-empty), so always client-check the value. {'!FIELD': ''} (truthy) and {FIELD: value} (exact) are reliable.
selectNoFields to return

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'List and filter', failing to mention default behavior, pagination, sort order, or side effects. The detailed filter operator notes are in the schema, not the description, so the description itself offers minimal 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?

The description is concise (4 words) and front-loaded with the action. It is efficient with no fluff, but it omits important context that could justify a slightly longer description. Still, it earns a 4 for being to the point.

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 list tool with no output schema, the description should disclose what is returned (e.g., array of contacts), default ordering, pagination limits, etc. It fails to provide this, leaving the agent with insufficient context to understand the tool's full behavior.

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 additional meaning beyond 'List and filter'—it does not elaborate on parameters or their usage 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 'List and filter CRM contacts' clearly specifies the verb (list and filter) and resource (CRM contacts). It effectively distinguishes this tool from sibling tools like bitrix24_crm_contact_get (single contact) and bitrix24_crm_deal_list (deals).

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 listing or filtering contacts but provides no explicit guidance on when to use this tool versus alternatives (e.g., get for single contacts) or any exclusions. No context about appropriate scenarios is given.

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

bitrix24_crm_deal_getA

Get a single CRM deal by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
dealIdYesDeal ID

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It correctly indicates a read operation but does not disclose error handling (e.g., behavior for invalid ID), required permissions, or response structure. While it is functional, it lacks detail 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, well-constructed sentence with no superfluous words. It is front-loaded and easy to parse, earning full marks.

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?

For a simple retrieval tool with one parameter and no output schema, the description is minimally adequate. However, it does not specify the return value (e.g., deal object fields) or potential errors, leaving some context gaps. A mention of the response 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?

The input schema covers 100% of parameters and describes 'dealId' as 'Deal ID'. The description adds no further semantic value—it merely echoes the schema. Since schema coverage is high, 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 the verb 'get', the resource 'CRM deal', and the qualifier 'by ID'. This effectively distinguishes it from sibling tools like bitrix24_crm_deal_list, which deals with listing deals.

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 that this tool should be used when you have a specific deal ID and need a single record. It does not explicitly state when not to use it or mention alternatives, but the context of sibling tools (e.g., list, update) provides sufficient differentiation.

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

bitrix24_crm_deal_listB

List and filter CRM deals

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax deals to return. WITHOUT this the tool returns at most 500 (10 pages x 50) and silently truncates — the response 'total' shows the true match count while 'deals' is capped at 500. For a query that matches more, pass limit >= total to fetch everything.
orderNoSort order, e.g. {ID: 'desc'}
filterNoFilter, e.g. {STAGE_ID: 'WON', ASSIGNED_BY_ID: 854}. Comparison operators DO work here, re-verified against this portal 2026-07-28: {'>=DATE_CREATE': '2026-07-20T00:00:00+03:00'} (inclusive, full ISO timestamp honoured), {'>DATE_CREATE': ...} (exclusive), {'>=ID': N} and {'>ID': N} all filter correctly — this tool posts the filter as JSON, so the curl --data-urlencode trap (which leaves the '>' in the KEY unencoded and makes Bitrix drop the condition) does not apply. Date-only values with a strict '>' are NOT required. The operator that IS unreliable: {FIELD: ''} ("is empty") on UF string fields returns records regardless (measured: 8 of 50 rows came back non-empty), so always client-check the value. {'!FIELD': ''} (truthy) and {FIELD: value} (exact) are reliable.
selectNoFields to return

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. The description text 'List and filter CRM deals' reveals nothing about truncation, pagination, or operator reliability, which are critical for correct invocation.

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 extremely concise (5 words), but it provides only a basic purpose. It lacks structural elements like bullet points or contextual cues expected for a tool with 4 parameters.

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's complexity (4 parameters, nested objects, no output schema), the one-line description is insufficient. Important details about return behavior and filtering are omitted from the description itself.

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 baseline is 3. The description adds no parameter meaning beyond the schema, but the schema's parameter descriptions are detailed. The description itself does not enhance 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?

The description 'List and filter CRM deals' clearly states the verb (list and filter) and the resource (CRM deals), differentiating it from sibling tools like bitrix24_crm_deal_get which retrieves a single deal.

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 no explicit guidance on when to use this tool versus alternatives (e.g., bitrix24_crm_deal_get for single deals). Usage context is implied but not stated.

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

bitrix24_crm_lead_getB

Get a single CRM lead by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
leadIdYesLead ID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must convey behavior. It omits critical details such as read-only nature, idempotency, error handling (e.g., missing ID), or authentication 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?

The description is a single, front-loaded sentence that conveys the core purpose without waste, though it could benefit from minimal additional context 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?

For a simple retrieval tool with 100% schema coverage and no output schema, the description is minimally viable but lacks behavioral/usage context that would improve 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%, and the description adds no new meaning beyond the schema's 'leadId' description and pattern. The baseline of 3 is appropriate as the schema already documents the parameter adequately.

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 (Get), resource (a single CRM lead), and method (by ID), clearly distinguishing it from sibling tools like bitrix24_crm_lead_list which lists leads.

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 specific lead ID is known but does not explicitly contrast with alternatives like bitrix24_crm_lead_list 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.

bitrix24_crm_lead_listC

List and filter CRM leads

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax leads to return. WITHOUT this the tool returns at most 500 (10 pages x 50) and silently truncates — the response 'total' shows the true match count while 'leads' is capped at 500. For a query that matches more, pass limit >= total to fetch everything.
orderNoSort order, e.g. {ID: 'desc'}
filterNoFilter, e.g. {STATUS_ID: 'NEW', ASSIGNED_BY_ID: 854}. Comparison operators DO work here, re-verified against this portal 2026-07-28: {'>=DATE_CREATE': '2026-07-20T00:00:00+03:00'} (inclusive, full ISO timestamp honoured), {'>DATE_CREATE': ...} (exclusive), {'>=ID': N} and {'>ID': N} all filter correctly — this tool posts the filter as JSON, so the curl --data-urlencode trap (which leaves the '>' in the KEY unencoded and makes Bitrix drop the condition) does not apply. Date-only values with a strict '>' are NOT required. The operator that IS unreliable: {FIELD: ''} ("is empty") on UF string fields returns records regardless (measured: 8 of 50 rows came back non-empty), so always client-check the value. {'!FIELD': ''} (truthy) and {FIELD: value} (exact) are reliable.
selectNoFields to return

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. The one-line description only states the basic function and does not mention important traits like pagination, filtering behavior, or data safety. The parameter descriptions in the schema provide some behavioral notes, but those are not part of the tool's description field.

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 extremely concise at five words, conveying the essential purpose without redundancy. However, it could benefit from a slightly more structured format, e.g., mentioning key features like filtering.

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 tool with four parameters, no output schema, and no annotations, the description is insufficiently complete. It omits details about pagination limits, default behavior, typical use cases, and what the response looks like. The parameter descriptions help but are not part of the description field.

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% (all parameters have descriptions), so baseline is 3. The tool description adds no additional meaning about 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.

Purpose4/5

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

The description clearly states the tool lists and filters CRM leads, specifying the resource (leads) and action. However, it does not explicitly differentiate from sibling tools like bitrix24_crm_deal_list or bitrix24_crm_lead_get, though the resource name provides implicit distinction.

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 such as bitrix24_crm_lead_get for individual leads or list tools for other CRM entities. The description lacks any context for selection.

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

bitrix24_crm_timeline_comment_listA

List manual timeline comments (manager notes) on a CRM lead/deal/contact/company. These are the free-text notes a manager types into the entity timeline — separate from activities (calls/emails). Returns COMMENT (the note text), AUTHOR_ID (who wrote it), CREATED. Useful for reviewing what a manager recorded about a deal beyond the structured fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax comments to return (default cap 500).
orderNoSort order, e.g. {CREATED: 'desc'}
ownerIdYesID of the lead/deal/contact/company
ownerTypeYesCRM entity type the comments belong to

TDQS

A4/5.0
Behavior3/5

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

No annotations given, description carries full burden. It implies a read operation and lists return fields, but omits details like pagination, rate limits, or authentication requirements.

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, no 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?

No output schema but description gives return fields. Adequate for a list tool, though missing details on default limit behavior or ordering.

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 all 4 parameters with descriptions (100% coverage). Description adds no extra meaning to parameters, 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 it lists manual timeline comments (manager notes) on CRM entities, distinguishes from activities and structured fields, and specifies return fields (COMMENT, AUTHOR_ID, CREATED).

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?

Mentioned usefulness for reviewing manager notes beyond structured fields, but lacks explicit when-not-to-use or comparison with sibling tools like activity list or note get.

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

bitrix24_crm_timeline_note_getA

Read the «заметка» note attached to a CRM timeline item (e.g. a specific call). Returns the note text, or null if there is none. Use this before saving to check whether a note already exists (so you don't clobber a human note or a prior transcript).

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesTimeline item ID — for a call note this is the call activity's ID
ownerIdYesID of the lead/deal/contact/company
itemTypeNoTimeline item type (default 'activity' — a call/email/meeting)
ownerTypeYesCRM entity the timeline item belongs to

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It accurately describes a read-only operation that returns text or null, with no side effects. Could mention auth or error handling, but overall transparent.

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?

Three sentences: purpose, return value, and usage guidance. No unnecessary text. Front-loaded and efficient.

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 input (referencing schema), output (note text or null), and context (use before saving). No gaps for a read tool with 100% schema coverage.

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 baseline is 3. The description adds little beyond what the schema already provides, e.g., clarifying that 'itemId' for a call note is the call activity's ID. No significant added 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?

The description clearly states it reads a note attached to a CRM timeline item, specifies the return value (note text or null), and distinguishes from the sibling tool 'bitrix24_crm_timeline_note_save' by implying this is the getter.

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?

Explicitly tells the agent to use this before saving to avoid overwriting existing notes or transcripts. This provides clear context for when to use the tool versus alternatives.

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

bitrix24_crm_timeline_note_saveA

Save the «заметка» note on a CRM timeline item (e.g. the note on a specific call, so it appears at the call, not as a loose lead comment). A timeline item has exactly ONE note — saving REPLACES it. Anti-clobber safeguard: in the default mode='create', if a note already exists this does NOT overwrite it — it writes your text to a local draft file and returns the existing note plus a recommendation, so the calling model can decide. Re-call with mode='replace' to overwrite, or mode='append' to keep both (existing + a separator + new).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNocreate (default): save only if no note exists; if one exists, do NOT overwrite — return it + a draft file so you can decide. replace: overwrite any existing note. append: existing note + separator + new text.
textYesNote text to save
itemIdYesTimeline item ID — for a call note this is the call activity's ID
ownerIdYesID of the lead/deal/contact/company
itemTypeNoTimeline item type the note hangs off (default 'activity')
ownerTypeYesCRM entity the timeline item belongs to

TDQS

A4.6/5.0
Behavior5/5

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

No annotations are provided, so the description fully covers behavioral traits: note replacement, mode-specific behaviors (draft file, return of existing note in create mode), and the exact effects of each mode.

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 paragraph, efficiently covering purpose and all modes without redundancy. It could use slight structuring but is effective.

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 (three modes, 6 parameters), the description explains all relevant details: the one-note constraint, mode behaviors, and parameter context. No output schema needed; return values are hinted.

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% description coverage, but the tool description adds significant context beyond schema (e.g., 'for a call note this is the call activity's ID' for itemId, and mode behavior details). It adds 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 verb 'save' and the resource 'note on a CRM timeline item', with a specific example of call notes. It distinguishes from generic note saving by specifying the timeline context.

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 explicit guidance on the three modes (create, replace, append) and their effects, including the anti-clobber safeguard. It lacks direct comparison to sibling note retrieval tool but is otherwise clear.

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

bitrix24_im_chat_listA

List IM chats the current user participates in. Returns recent conversations sorted by last activity. Use to discover chat IDs for reading messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by type: 'chat' for group chats, 'open' for open channels, 'user' for 1-on-1 (default: all)
limitNoMax chats to return (default: 50)

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must fully disclose behavior. It reveals that results are sorted by last activity and limited to the current user's chats. However, it does not mention side effects (none expected), authentication requirements, or limitations like pagination or whether archived chats are included. This leaves moderate gaps for a safe read operation.

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, consisting of two short sentences that front-load the action and purpose. Every word contributes to understanding, with no unnecessary fluff or repetition. This is an excellent example of efficient documentation.

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 low complexity (2 optional parameters, no output schema), the description covers the core functionality well. It explains what the tool does, how the results are sorted, and the intended use case. However, it omits the default value for the limit parameter (50) and does not mention pagination behavior, which would be helpful for agents consuming large datasets.

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 provides full descriptions for both parameters (type and limit), with 100% coverage. The tool description does not add any additional meaning or context about these parameters beyond what is in the schema, resulting in no extra value. 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 the tool lists IM chats the current user participates in, with a specific verb ('List') and resource ('IM chats'). It also indicates the output is sorted by last activity and provides a concrete purpose (discover chat IDs for reading messages), distinguishing it from sibling tools like bitrix24_im_chat_search and bitrix24_im_chat_messages.

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 gives explicit usage context ('discover chat IDs for reading messages'), which implies when to use this tool. However, it does not explicitly mention when not to use it or name alternatives like bitrix24_im_chat_search for searching. The context is clear but lacks exclusions.

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

bitrix24_im_chat_messagesA

Read messages from a Bitrix24 IM chat. Use for reading task chats, group chats, or 1-on-1 dialogs. For task chats, the DIALOG_ID is 'chatNNN' where NNN is the task's chatId field. Messages with attachments carry a 'files' array (fileId, name, type, dimensions); image attachments are inlined as viewable images by default so you see what a human reading the chat sees. Non-image files and over-sized images are listed by metadata — fetch them with bitrix24_im_file_get. ⚠️ TEXT FIELDS: 'text' is the display-rendered form with BBCode/HTML stripped — it is LOSSY. A message containing [URL=https://…]#146426[/URL] comes back as bare '#146426', and [USER=…] mentions and [B]bold[/B] are flattened the same way. When the original markup exists, the message also carries 'textRaw' with it intact. NEVER rebuild a message for bitrix24_im_message_update from 'text' — you will silently destroy every link, mention and format in it (caught 2026-07-24: an edited ads report lost all 8 CRM deep links). Edit from 'textRaw', or re-author the BBCode explicitly.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax messages to return (default: 20)
firstIdNoMessage ID to start from (for pagination — pass the smallest ID from previous response to go further back in history)
dialogIdYesDialog ID: 'chatNNN' for group/task chats, or user ID as string for 1-on-1
maxImagesNoCap on inlined images per read (default: 20).
includeImagesNoInline image attachments as viewable images (default: true). Set false for a text-only, lower-token read.

TDQS

A4.6/5.0
Behavior5/5

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

No annotations exist, so the description bears full burden. It expertly discloses the lossy nature of 'text' field, warns against using it for editing, and includes a real-world incident to underscore the risk. It also explains attachment handling, including default inlining of images and listing of non-image files. This is exceptional behavioral transparency.

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

Conciseness4/5

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

The description is well-structured: clear purpose, usage guidance, and then critical behavioral warnings. It is slightly lengthy but every sentence adds unique value, such as the pagination hint for 'firstId' and the editing caution. Minor redundancy could be tightened but overall efficient.

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 absence of an output schema, the description fully covers return fields (text, textRaw, files) and attachment behavior. It explains pagination, image inlining, and provides cross-reference to bitrix24_im_file_get. All essential context for an agent to use the tool correctly is present.

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 baseline is 3. The description adds value beyond the schema by clarifying DIALOG_ID formats for task chats ('chatNNN') and explaining the behavior of 'includeImages' and 'maxImages' defaults. This enriches understanding without redundancy.

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 'Read messages from a Bitrix24 IM chat' with a specific verb and resource. It further specifies use cases (task chats, group chats, 1-on-1 dialogs) and distinguishes from sibling tools like bitrix24_im_message_send, bitrix24_im_message_update, etc., by its reading function.

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 guides when to use the tool ('Use for reading task chats, group chats, or 1-on-1 dialogs') and provides critical formatting for DIALOG_ID. It also directs to bitrix24_im_file_get for non-image files. However, it does not explicitly state when not to use (e.g., for writing messages) or list sibling alternatives for other actions.

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

bitrix24_im_file_getA

Fetch a single file attached to a Bitrix24 chat message by its fileId (from bitrix24_im_chat_messages files[].fileId). Images are returned as viewable image content; other file types return metadata plus a webhook-authenticated download URL. Use this for attachments bitrix24_im_chat_messages didn't inline (non-images, or images past the inline size/count cap).

ParametersJSON Schema
NameRequiredDescriptionDefault
fileIdYesNumeric disk file ID from a chat message's files[] entry

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, description carries full burden. It reveals that images return viewable content while other files return metadata plus a webhook-authenticated download URL. Could add that it's read-only and safe, but current detail is good.

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 well-structured sentences. First sentence states purpose and identifier. Second sentence gives usage context and return behavior. No wasted words, front-loaded.

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?

Covers purpose, parameter, usage scenario, and return types for both image and non-image files. Lacks mention of errors or authentication details beyond 'webhook-authenticated', but overall sufficient for a simple fetch 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 both schema and description describe fileId similarly (numeric disk file ID from chat message files[]). Description adds no extra semantics beyond clarifying the source, which is already in 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?

Specifically states 'Fetch a single file attached to a Bitrix24 chat message', giving clear verb and resource. Identifies the fileId from a related tool, distinguishing it from siblings like bitrix24_im_post_file and bitrix24_im_chat_messages.

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?

Explicitly says 'Use this for attachments bitrix24_im_chat_messages didn't inline (non-images, or images past the inline size/count cap)', providing clear when-to-use guidance. Also describes what to expect for images vs other file types.

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

bitrix24_im_message_deleteA

Delete a message from a Bitrix24 IM chat (including task chats). Pass the numeric message ID as returned by bitrix24_im_chat_messages or bitrix24_task_comment_list. Only the message author or admins can delete.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYesNumeric ID of the message to delete

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It mentions authorization, but does not state whether deletion is irreversible or any side effects on replies/attachments. Some behavioral traits are implied but not fully disclosed.

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?

Three sentences, all essential. No redundant information. The most important information (what the tool does) is front-loaded.

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 delete operation with one parameter, the description covers the key points. It lacks details on error handling or response format, but given no output schema, it is mostly adequate.

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 single parameter messageId is described in the schema, and the description adds value by specifying the source of valid IDs (from bitrix24_im_chat_messages or bitrix24_task_comment_list). This enhances parameter 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 action (delete), the resource (message), and scope (including task chats). It also directs to sibling tools for obtaining the message ID, distinguishing it from other message tools like update or send.

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 on when to use (deleting a message) and prerequisites (message ID from specific tools). Also notes authorization restrictions (only author or admins). Could be more explicit about when not to use, but the context is sufficient.

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

bitrix24_im_message_sendA

Send a NEW Bitrix24 IM message. Use this to message a person privately (1-on-1) or post into a group/task chat — it's the send counterpart to bitrix24_im_message_update (edit) and bitrix24_im_message_delete. The message is sent under the webhook owner's identity. For a PRIVATE 1-on-1 message pass the recipient's numeric user ID as dialogId (e.g. '8' for Aleksandr); for a group/task chat pass 'chatNNN'. Returns the new message ID (reuse it with update/delete). FORMATTING — plain text + BBCode only; Bitrix does NOT parse Markdown (bold, backticks, # headings render literally). Supported: [B]bold[/B], [I]italic[/I], [U]under[/U], [S]strike[/S], [URL=...]text[/URL], [USER=ID]Name[/USER] mentions. For bullet lists put a literal • at the line start — []/[LIST] do NOT render in chat (they show as literal «[]»); no tag exists for inline code/filename, wrap in «…». When attaching a file to a chat (the disk im.disk.file.commit MESSAGE caption), keep the caption to ONE short line and post any long explanation as a SEPARATE following message — captions render in an oversized font, so a multi-paragraph caption becomes a wall of text. To post a comment onto a TASK specifically, prefer bitrix24_task_comment_add (it also shows in the task comment section). DISCLOSURE — the message text MUST end with a final line, on its own, reading exactly «(написано агентом)»: it posts under the human owner's account but is agent-written, and this line discloses that to the reader (owner rule, favor-group).

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesMessage text — plain text + BBCode only, NO Markdown. Bullet lines start with • (not [*]). See tool description for the full formatting contract + the file-caption rule.
dialogIdYesRecipient: numeric user ID as a string for a private 1-on-1 message (e.g. '6'), or 'chatNNN' for a group/task chat

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses behavioral traits: the message is sent under the webhook owner's identity, returns the new message ID, the formatting limitations (BBCode only, no Markdown, specific tags), the file caption rule, and the mandatory disclosure line. This is comprehensive 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?

The description is relatively long but well-structured, starting with purpose and sibling relationships, then parameter details, formatting rules, and special cases. Every sentence earns its place, though it could be slightly more concise by grouping related information more tightly.

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 no annotations, no output schema, and a complex tool with formatting and behavior nuances, the description is complete: it covers invocation, formatting, disclosure, file attachment behavior, and alternatives. There is little ambiguity left for the agent.

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%, so baseline is 3, but the description adds significant value: it explains dialogId format with concrete examples (e.g., '8' for Aleksandr, 'chatNNN'), details the text formatting contract (BBCode support, bullet list syntax, disclosure line), and adds the file-caption rule not found in 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 a NEW Bitrix24 IM message') and specifies the resource (private 1-on-1 or group/task chat). It explicitly distinguishes from sibling tools by naming bitrix24_im_message_update, bitrix24_im_message_delete, and bitrix24_task_comment_add, making the purpose unambiguous.

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 when-to-use scenarios (private message vs. group chat) and when-not-to-use (task comments should use bitrix24_task_comment_add). It also includes detailed formatting rules and a disclosure requirement, giving clear guidance on correct invocation.

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

bitrix24_im_message_updateA

Edit the text of a Bitrix24 IM chat message (including task chats). Pass the numeric message ID and the new text. Only the message author can edit. Same formatting rules as bitrix24_im_message_send: plain text + BBCode only (no Markdown), bullet lines start with a literal • (not [*]). Keep the «(написано агентом)» disclosure line as the final line of the edited text (owner rule, favor-group). ⚠️ The text you pass REPLACES the message wholesale — there is no merge. If you are editing an existing message, build the new text from that message's 'textRaw' (bitrix24_im_chat_messages), NOT from its 'text', which has BBCode stripped: round-tripping 'text' silently deletes every [URL=…] deep link, [USER=…] mention and [B]bold[/B]. Re-emit CRM references in full BBCode, e.g. [URL=https://fs-group.bitrix24.ru/crm/lead/details/NNNNN/]#NNNNN[/URL].

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesNew message text (BBCode supported, e.g. [USER=854]Name[/USER] for mentions)
messageIdYesNumeric ID of the message to edit

TDQS

A5/5.0
Behavior5/5

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

With no annotations, description fully discloses key behaviors: wholesale replacement (no merge), author-only editing, and the risk of BBCode stripping if using wrong field. This is comprehensive for a mutation tool.

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?

Every sentence adds critical information. Well-structured: starts with purpose, then conditions, then warnings. Appropriate length for the complexity.

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 no annotations and no output schema, the description covers all essential aspects: operation, constraints, formatting, common pitfalls, and usage context. Nothing significant missing.

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?

Despite 100% schema coverage, description adds significant value for the 'text' parameter: formatting details, disclosure line requirement, and warning about using 'textRaw' over 'text'. This goes 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?

Description clearly states 'Edit the text of a Bitrix24 IM chat message' with specific verb and resource. Distinguishes from sibling tools like send and delete by focusing on editing existing messages.

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?

Provides explicit constraints: only message author can edit, formatting rules (BBCode, bullet points, disclosure line), and warns against using stripped 'text' field. Gives clear instructions on constructing new text from 'textRaw'.

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

bitrix24_im_post_fileA

Post local file(s) of ANY type into a Bitrix24 chat — .txt/.docx/.pdf/.zip/images alike — in a group/workgroup/project chat, a task chat, or a 1-on-1. This is the attachment counterpart to bitrix24_im_message_send (which is text-only) and the chat equivalent of bitrix24_task_attach_file / bitrix24_task_post_image (which only post into a TASK). IMAGES additionally render INLINE as a preview thumbnail; every other type posts as a normal downloadable file message with the caption — so use this whenever a file has to reach a chat, not just for pictures. Under the hood it uploads each file into the CHAT'S OWN disk folder and commits it (im.disk.folder.get → disk.folder.uploadfile → im.disk.file.commit) — the native-client flow, so every chat member can see it regardless of shared-folder permissions. One SEPARATE message is posted per file (Bitrix renders multiple images stacked in a single message with broken placeholders), and the same message caption is reused on each; for distinct captions call once per file. CAPTION RULE — the file-commit caption renders in an OVERSIZED font, so keep it to ONE short line and post any long explanation as a separate bitrix24_im_message_send message. Returns an array of the created message IDs. Same disclosure convention as bitrix24_im_message_send applies to any accompanying text message. ALWAYS prefer this over hand-rolling the upload with curl: it uses a proper multipart encoder, so filenames containing commas, spaces or Cyrillic are handled correctly, whereas curl -F 'file=@x;filename=a, b.txt' treats the comma as a multi-file separator and dies with «curl: (26) Failed to open/read local data» (caught 2026-07-24).

ParametersJSON Schema
NameRequiredDescriptionDefault
messageNoShort one-line caption, reused on each file's message (see the caption rule). Optional — omit for no caption.
dialogIdYesTarget chat: 'chatNNN' for a group/task chat, or a numeric user ID for a 1-on-1
filePathsYesAbsolute local path(s) to the file(s) — any type. One message is posted per file.

TDQS

A4.8/5.0
Behavior5/5

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

No annotations provided, so description carries full burden. Discloses internal implementation (im.disk.folder.get → disk.folder.uploadfile → im.disk.file.commit), behavior differences for images (inline preview) vs other types (downloadable), one message per file rule, oversized font caption caveat, and a historical curl bug. Very transparent.

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 thorough but not overly verbose. Front-loaded with core purpose, then details. Every sentence provides useful information. Could be slightly tighter, but overall efficient for its comprehensiveness.

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 no output schema, description explains return type (array of message IDs). Covers file types, caption behavior, differences from siblings, internal flow, and usage notes. Very complete for an agent to understand and invoke correctly.

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 baseline is 3. The description adds value beyond schema by explaining the caption rule (oversized font), reusing the same caption, and why to keep it short. It also reinforces handling of filenames with special characters. However, the schema already includes similar descriptions for each 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 tool posts local files of any type into Bitrix24 chats, with explicit verb 'Post' and resource 'local file(s) into a Bitrix24 chat'. It distinguishes from siblings like bitrix24_im_message_send (text-only) and bitrix24_task_attach_file/bitrix24_task_post_image (task-only), making purpose unambiguous.

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?

Provides explicit when-to-use (for any file reaching a chat), when-not-to-use (for long explanations, use separate message), and alternatives (hand-rolling with curl is discouraged). Also advises calling once per file for distinct captions and keeping caption to one short line.

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

bitrix24_task_attach_fileA

Attach a local file (docx, pdf, image, anything) to a Bitrix24 task. Use this for delivering briefs, reports, signed-off specs — anything that should land as a downloadable attachment in the task's Files tab. The file shows as « добавил файл» in chat but WITHOUT an image thumbnail/preview even for PNG/JPG (chat just shows filename). For screenshots / images you want INLINE-PREVIEWED in chat, use bitrix24_task_post_image instead — that posts a proper chat message with IMAGE attachment blocks that render as thumbnails. Stays linked to UF_TASK_WEBDAV_FILES. SAFE: existing attachments are preserved (read-merge-write); your file is appended, not replaced. Two-step under the hood: disk.folder.uploadfile → multipart POST → tasks.task.update with the merged UF_TASK_WEBDAV_FILES list (each id encoded as 'n').

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID
fileNameNoOverride the file name visible in B24. Defaults to basename(filePath).
filePathYesAbsolute local path to the file to upload (e.g. /tmp/brief.docx)
folderIdNoDisk folder ID to upload to. Default 732896 (shared 'Блог' folder, verified writable for user 854). Override only if you need the file in a specific workgroup folder.

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, description fully carries burden. Details two-step internal process (uploadfile then update), chat appearance without thumbnail, safety (preserves existing attachments), and the 'n<diskFileId>' encoding. 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.

Conciseness4/5

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

Single paragraph, well-structured with purpose first, then guidance, then behavior, then safety, then implementation detail. Slightly long but all sentences add 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?

For a tool with 4 params and no output schema, description covers purpose, usage, behavior, parameter nuances, safety, and internal steps. No gaps for effective invokation.

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%. Description adds value beyond schema: explains default folder ID (732896) and its context (shared 'Блог' folder, writable for user 854), and that fileName defaults to basename. Provides override rationale for folderId.

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 tool attaches a local file to a Bitrix24 task. Specifies file types and use cases (briefs, reports, signed-off specs). Explicitly distinguishes from sibling `bitrix24_task_post_image` for inline previews.

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?

Provides explicit guidance on when to use (delivering briefs, reports) and when not (images needing inline preview, alternatives given). Explains file appearance in chat (no preview) and safety behavior (append, not replace).

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

bitrix24_task_checklist_addB

Add a checklist item to a Bitrix24 task

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesChecklist item text
taskIdYesTask ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; the only behavioral hint is mutation (adds), but nothing about idempotency, side effects, or authentication requirements.

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 8 words, front-loaded with the core action, no redundancy.

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?

No output schema, no mention of return value (e.g., created item ID), no explanation of how this relates to checklists (e.g., if multiple checklists exist per task). Minimal context for a write 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 covers 100% of parameters with descriptions; the tool description adds no extra meaning 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?

Description clearly states the action (Add) and resource (checklist item) within a specific context (Bitrix24 task). It distinguishes from sibling tools like list or complete checklist items.

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 mentioned (e.g., task existence, permissions), and no conditions for effective use.

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

bitrix24_task_checklist_completeB

Mark a checklist item as complete

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesChecklist item ID
taskIdYesTask ID

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only states the action ('complete') but does not disclose any behavioral traits such as idempotency, error handling, permission requirements, or whether the action can be undone.

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, concise sentence with no unnecessary words. It is front-loaded and easy to parse.

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 covers the basic purpose but lacks any additional context about return values (no output schema) or behavior. For a simple mutation tool with 2 parameters, it meets minimum viability but leaves gaps in usage and behavioral understanding.

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% (both parameters described with patterns). The tool description adds no extra meaning beyond what the schema already provides, 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?

Description uses a specific verb ('mark') and resource ('checklist item as complete'), clearly distinguishing it from sibling tools like checklist_list or checklist_add. The purpose is immediately understandable.

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 (e.g., when to mark complete vs update or delete). The description simply states the action without context.

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

bitrix24_task_checklist_listB

List checklist items for a Bitrix24 task

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID

TDQS

B3.4/5.0
Behavior2/5

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

The description does not disclose any behavioral traits beyond the basic read operation. It omits information about pagination, sorting, filtering, or potential side effects. Since no annotations are provided, the description carries the full burden but fails to add meaningful behavioral context.

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, clear sentence with no redundant information. Every word contributes to understanding the tool's purpose.

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 listing tool with one parameter and no output schema, the description adequately conveys the function. It could mention that the result is a list of items, but the purpose is clear enough for an agent to use correctly.

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% for the single parameter 'taskId'. The schema already provides a description ('Task ID') and pattern constraint. The tool description adds no additional meaning, so it meets the baseline for high coverage.

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 ('List') and resource ('checklist items') for a specific context ('for a Bitrix24 task'). It effectively distinguishes this tool from siblings like bitrix24_task_checklist_add and bitrix24_task_checklist_complete.

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 or when not to use it. The description lacks any context about prerequisites, scope, or relationship to sibling tools.

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

bitrix24_task_comment_addA

Add a comment to a Bitrix24 task. Uses legacy forum API which posts to both the task chat and the comment section. The message will appear in the task's IM chat for all participants. RETURNS the comment ID (numeric) — keep it: the same ID can later be passed to bitrix24_task_comment_update to edit, bitrix24_task_comment_delete to remove, or bitrix24_im_message_update/bitrix24_im_message_delete (same underlying message). To ATTACH A FILE to the task (docx brief, screenshot, pdf, etc.), do NOT try to inline it in the comment — use bitrix24_task_attach_file separately. Typical pattern: (1) attach the file, then (2) post a short comment referencing the attached file name. Comment text supports BBCode but NOT Markdown (backticks render literally, ** doesn't bold). Use [B]…[/B], [I]…[/I], [URL=…]…[/URL], [USER=ID]Name[/USER] for mentions. For bullet lists in a COMMENT put a literal • at the line start — []/[LIST] render literally («[]») in comments (they only format inside task DESCRIPTIONS, not comments). DISCLOSURE — the comment text MUST end with a final line, on its own, reading exactly «(написано агентом)»: it posts under the human owner's account but is agent-written (owner rule, favor-group).

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesComment text (BBCode only — no Markdown. Patterns: [B]bold[/B], [URL=…]text[/URL], [USER=854]Name[/USER])
taskIdYesTask ID

TDQS

A4.8/5.0
Behavior5/5

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

Discloses behavioral traits beyond annotations (none provided): uses legacy forum API, posts to both chat and comment section, returns numeric ID to keep, requires a specific ending line ('(написано агентом)'), and explains BBCode limitations like Markdown not supported.

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 long but every sentence adds necessary context; it is well-structured with purpose, behavior, return value, usage tips, formatting rules, and a required disclosure. Could be slightly tighter but still efficient.

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 (two parameters, no output schema), the description fully explains the required usage pattern, return value, formatting nuances, and behavioral implications. No gaps remain.

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 covers 100% of parameters, baseline 3. Description adds significant value by detailing BBCode patterns, the required disclosure line, and the text parameter's formatting constraints beyond the schema's short description.

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 states verbatim 'Add a comment to a Bitrix24 task' and distinguishes from siblings by explaining the return ID's usage for update/delete tools and explicitly separating file attachment via bitrix24_task_attach_file.

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?

Provides explicit guidance: do not inline files, follow typical pattern (attach then comment), BBCode not Markdown, required disclosure line, and notes that [*]/[LIST] only work in descriptions. Clearly separates when to use this vs sibling tools.

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

bitrix24_task_comment_deleteA

Delete a Bitrix24 task comment by ID. Pass the comment ID returned by bitrix24_task_comment_add. The deleted comment is replaced by a «Это сообщение было удалено» placeholder in the task chat. Only the author or admins can delete. Internally calls im.message.delete (same reason as comment_update — direct task.commentitem.delete is action-not-allowed via webhook scope).

ParametersJSON Schema
NameRequiredDescriptionDefault
commentIdYesComment ID returned by bitrix24_task_comment_add (same as IM message ID)

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses behavioral traits: the deletion is permanent but replaced by a placeholder, authorization requirements, and the internal API call (im.message.delete). No contradictions exist.

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 three sentences, directly front-loaded with the action, and every sentence adds value (purpose, source of ID, placeholder effect, authorization, internal call reason). No unnecessary 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?

For a simple delete tool with one parameter and no output schema, the description covers all necessary aspects: what happens to the comment (placeholder), who can delete, and why a specific API is used. It is fully complete for the tool's context.

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 schema already covers the parameter with a description, but the description adds useful context: the commentId is the same as the IM message ID and originates from bitrix24_task_comment_add. This reinforces understanding beyond the schema, warranting a score above 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 the verb and resource: 'Delete a Bitrix24 task comment by ID.' It specifies the source of the ID (from bitrix24_task_comment_add) and distinguishes it from sibling tools by explaining the internal mechanism (im.message.delete) and the placeholder behavior, making the purpose unmistakable.

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 context on when to use the tool (to delete task comments) and specifies authorization (only author or admins). It implicitly guides the agent away from using generic IM deletion tools by noting the internal API call and webhook scope limitation, though it does not explicitly list alternatives.

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

bitrix24_task_comment_listA

Read task chat messages (modern B24). In current Bitrix24, all task discussion happens in the task's IM chat (right panel). Legacy forum comments (left panel) are deprecated. This tool reads from IM chat first, falls back to forum comments for old tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax messages to return (default: 20)
taskIdYesTask ID

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It discloses the fallback behavior and implies read-only operation. However, it does not mention pagination, sorting, or any potential side effects, which would further enhance transparency.

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 three sentences, front-loaded with the verb and resource, and every sentence provides value. No 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 no output schema, the description does not explain return format (e.g., fields like id, text, author). For a list tool, this is a gap. However, the tool name and sibling tools may imply structure, so not critically incomplete.

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 both parameters with descriptions, achieving 100% coverage. The description adds no additional semantic meaning beyond what the schema provides (e.g., no explanation of how limit interacts with fallback). 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 'Read task chat messages' and distinguishes from sibling write tools (add/update/delete) by specifying it is a read operation for task comments, with clarification that it reads from IM chat with fallback to legacy forum comments.

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 that modern Bitrix24 uses IM chat for task discussions and that this tool handles both modern and legacy formats via fallback. It gives clear context but does not explicitly mention when not to use it (e.g., versus other read tools like bitrix24_im_chat_messages).

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

bitrix24_task_comment_updateA

Edit the text of an existing Bitrix24 task comment. Pass the comment ID returned by bitrix24_task_comment_add (it equals the IM message ID — task comments mirror 1:1 to the task's IM chat). Use this instead of posting a follow-up «UPD:» comment when you need to correct an earlier message. Only the comment's author can edit. Note: task.commentitem.update direct REST returns ACTION_NOT_ALLOWED for typical webhook scopes, so this tool internally calls im.message.update which works.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesNew comment text (BBCode — same conventions as add)
commentIdYesComment ID returned by bitrix24_task_comment_add (same as IM message ID)

TDQS

A4.4/5.0
Behavior4/5

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

Discloses that `task.commentitem.update` direct REST returns ACTION_NOT_ALLOWED for typical webhook scopes, so the tool internally calls `im.message.update`. Also notes that comment ID equals IM message ID and only author can edit. No annotations provided, so description carries full burden and delivers 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?

The description is a single paragraph of 4 sentences, each serving a purpose: what it does, how to get comment ID, when to use, author constraint, and technical note. No redundant or irrelevant 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?

With no output schema and missing annotations, the description adequately covers purpose, parameters, usage guidelines, and behavioral nuance. It lacks explicit return value information, but given the tool's simplicity (update operation), it is sufficiently complete for an agent to invoke correctly.

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?

Both parameters have schema descriptions. The description adds meaning beyond schema: for `commentId` it specifies 'returned by bitrix24_task_comment_add (same as IM message ID)', and for `text` it mentions 'BBCode — same conventions as add'. Schema coverage is 100%, baseline 3, but added context earns a 4.

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 'Edit the text of an existing Bitrix24 task comment', specifying verb and resource. It distinguishes from sibling tool `bitrix24_task_comment_add` by noting that comment ID equals IM message ID and that this tool is for corrections. The purpose is unambiguous and differentiated.

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 says 'Use this instead of posting a follow-up «UPD:» comment when you need to correct an earlier message' and states 'Only the comment's author can edit'. Provides clear context for appropriate use, though does not explicitly mention when to use alternatives like adding a new comment.

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

bitrix24_task_completeB

Mark a Bitrix24 task as completed

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It only states 'mark as completed' without detailing side effects, permissions required, or whether the action is reversible.

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 with no unnecessary words. It is efficient but could include more detail without becoming verbose.

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 lack of output schema and the minimal description, an agent lacks context on what happens after completion (e.g., status changes, notifications, or related actions). More detail is needed for a complete understanding.

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 single parameter 'taskId' is fully described in the schema with type and pattern. The description adds no 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 action 'Mark a Bitrix24 task as completed', specifying the verb and resource. It distinguishes from sibling tools like 'bitrix24_task_start' and 'bitrix24_task_defer'.

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 for when it should or should not be used.

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

bitrix24_task_createB

Create a new Bitrix24 task

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTask tags
titleYesTask title
groupIdNoWorkgroup/project ID
auditorsNoObserver user IDs
deadlineNoDeadline in ISO 8601 format
parentIdNoParent task ID
priorityNoPriority: 0=low, 1=normal, 2=high
accomplicesNoCo-executor user IDs
descriptionNoTask description (BBCode supported)
taskControlNoRequire creator acceptance on completion
responsibleIdYesAssignee user ID

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states 'create' but does not disclose side effects (e.g., notifications sent, permissions required, or whether task creation may fail silently). This leaves significant unknowns for the agent.

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 with no redundancy. Every word is necessary. It is efficiently structured.

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?

With 11 parameters, no output schema, and no annotations, the description is too minimal. It does not explain what the tool returns (e.g., result ID), error scenarios, or how to handle responses. Given the complexity, more context is needed.

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 11 parameters. The description adds no extra parameter meaning beyond the 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 'Create a new Bitrix24 task' clearly states the verb and resource. It is specific and easily distinguishes from sibling tools like bitrix24_task_list (list), bitrix24_task_update (update), and bitrix24_task_complete (complete).

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 vs alternatives. It does not mention prerequisites (e.g., user must exist), context, or when not to use it. Sibling tools exist for different operations, but no differentiation is offered.

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

bitrix24_task_deferC

Defer a Bitrix24 task

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the action name. It does not disclose any behavioral traits such as changes to task state, reversibility, or side effects, making it insufficient for safe invocation.

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 very concise, one short sentence, and front-loaded. However, it may be too brief, sacrificing detail for brevity. Still, it is efficient and to the point.

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 lack of annotations and output schema, the description should provide more context about what deferring means, expected outcomes, or usage constraints. It is incomplete for an agent to understand the tool's full behavior.

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 'taskId' is described as 'Task ID' in the schema. The description adds no extra meaning beyond the schema, so it meets the baseline but provides no additional help.

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 uses a clear verb 'Defer' and resource 'Bitrix24 task', indicating a specific action on a task. However, it does not differentiate this action from siblings like 'bitrix24_task_complete' or 'bitrix24_task_start', leaving ambiguity about what deferring entails.

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. The description does not mention context, prerequisites, or when not to use it, leaving the agent without decision support.

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

bitrix24_task_getA

Get a single Bitrix24 task by ID with full details

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Only states 'with full details', implying read-only retrieval but lacks specifics on permissions, error handling, or side effects. Insufficient for a read tool.

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, efficient sentence that front-loads the core purpose. No extraneous 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?

Simple tool with one parameter and no output schema; description covers basic retrieval intent but does not elaborate on return structure or edge cases. Adequate for minimal 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% (taskId described as 'Task ID' in schema), so description adds no new meaning. 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?

Clearly states 'Get a single Bitrix24 task by ID with full details', with specific verb, resource, and scope. Distinguishes from sibling tools like bitrix24_task_list (multiple tasks) and update/mutate tools.

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?

Implies use when you have a specific task ID and need full details, but provides no explicit when-not or comparison to alternative tools like bitrix24_task_list. Minimal guidance.

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

bitrix24_task_listB

List and filter Bitrix24 tasks. Filter by status, responsible user, workgroup, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax tasks to return. WITHOUT this the tool returns at most 1000 (20 pages x 50) and silently truncates — 'total' shows the true match count. For a query that matches more, pass limit >= total.
orderNoSort order, e.g. {DEADLINE: 'asc'}
filterNoBitrix24 filter, e.g. {RESPONSIBLE_ID: 854, '!REAL_STATUS': [5,6]}
selectNoFields to return

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. The description omits important details such as pagination behavior, rate limits, or side effects. The schema includes a note about truncation at 1000 without limit, but that is not reflected in the description.

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

Conciseness4/5

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

The description is a single sentence, which is concise and includes key information. However, it could be slightly more informative by including brief behavioral notes without adding much length.

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 lack of output schema, the description does not explain the return value structure. It also does not mention the truncation behavior or pagination. With 4 parameters and nested objects, more context would be helpful, but it is minimally 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 baseline is 3. The description adds examples of filter criteria (status, responsible user), but these are already present in the schema descriptions. No additional meaning beyond the schema 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?

The description clearly states the tool's verb ('list and filter') and resource ('Bitrix24 tasks'), with examples of filter criteria. This effectively distinguishes it from sibling tools like bitrix24_task_get (single task) or bitrix24_task_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?

The description implies usage for listing and filtering tasks, but does not explicitly state when to use this tool versus alternatives. For example, it does not clarify that for a single task details, one should use bitrix24_task_get. General guidance is adequate but not explicit.

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

bitrix24_task_post_imageA

Post chat message(s) to a Bitrix24 task with images that render INLINE as thumbnails (not just filename links). Use this for screenshots, design mockups, photo evidence — anything where the reader should see the image without clicking through. Each local file path is uploaded to disk, then a SEPARATE chat message is posted per image (Bitrix renders multi-image single-messages with broken second-image placeholders — verified 2026-05-19). The same message caption is reused on each image's message; if you want per-image captions, call this tool once per image with a distinct message. Returns array of IM message IDs (one per image). Files are saved to B24 disk (folder 732896 by default) so they're permanently accessible, but NOT added to UF_TASK_WEBDAV_FILES — for that, use bitrix24_task_attach_file separately.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID to post into
messageYesCaption posted above each image. Same text on every message. Supports BBCode ([B]…[/B], [URL=…]…[/URL], [USER=ID]Name[/USER]). For distinct per-image captions, call this tool multiple times with single-element filePaths arrays.
folderIdNoDisk folder ID for upload. Default 732896 (shared 'Блог' folder, verified writable for user 854).
filePathsYesArray of absolute local paths to image files (PNG / JPG / WebP). One message posted per file.

TDQS

A4.9/5.0
Behavior5/5

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

Discloses that images render inline, each image gets a separate message due to a verified bug, files saved to disk folder 732896, permanently accessible but not added to task file field. Returns array of message IDs.

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 long but every sentence serves a purpose. Front-loads key features and differentiators. Could be slightly more concise but still efficient.

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 (4 params, no output schema, platform bug), description covers all needed context: return format, caveats, sibling tool relationship, and default behavior.

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?

Adds rich context beyond schema: explains separate message behavior per file, default folder verification, BBCode support, and per-image caption strategy. All parameters are well described.

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 posts chat messages with inline image thumbnails, distinguishes from bitrix24_task_attach_file, and notes that files are not attached to task file field.

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?

Explicitly recommends use for screenshots, design mockups, photo evidence. Tells when not to use (for attaching to UF_TASK_WEBDAV_FILES) and points to sibling bitrix24_task_attach_file. Advises on per-image captions.

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

bitrix24_task_stage_moveB

Move a task to a different Kanban stage

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID
stageIdYesTarget stage ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It only states the action without disclosing side effects, return value, or authorization requirements. For a mutation tool, this is insufficient.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no redundant information. It earns its place.

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?

For a simple two-parameter tool, the description is minimally adequate but lacks behavioral context (e.g., what happens if the move is invalid). In the presence of many sibling tools, more guidance 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%, and both parameters have descriptions in the schema. The tool description adds no extra 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 action ('Move'), the resource ('a task'), and the context ('to a different Kanban stage'). It effectively distinguishes the tool from siblings like bitrix24_task_list or bitrix24_task_stages_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 bitrix24_task_update, or any prerequisites such as required permissions or stage existence.

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

bitrix24_task_stages_listA

List Kanban stages for a workgroup/project (entityId=0 for personal Kanban)

ParametersJSON Schema
NameRequiredDescriptionDefault
entityIdYesWorkgroup/project ID, or 0 for personal Kanban

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It implies a read-only operation by saying 'list', but does not explicitly confirm non-destructive behavior or mention authentication requirements. The description is adequate but minimal.

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 with no unnecessary words. Every part serves a purpose.

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 list tool with one parameter and no output schema, the description is fairly complete. It could mention the order or format of returned stages, but the current description suffices for basic 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%, and the description essentially repeats the parameter meaning from the schema ('entityId=0 for personal Kanban'). It does not add significant new information 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 tool lists Kanban stages and specifies the context (workgroup/project or personal with entityId=0). This distinguishes it from siblings like bitrix24_task_stage_move and bitrix24_task_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 for when to use the tool, including the special case of entityId=0 for personal Kanban. However, it does not explicitly state when not to use it or mention alternatives.

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

bitrix24_task_startA

Start working on a Bitrix24 task (set status to In Progress)

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask ID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the burden. It only states the status change but does not describe side effects (e.g., whether it sends notifications, updates timestamps, or is reversible) or authorization requirements.

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

Conciseness5/5

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

The description is a single, concise sentence that efficiently communicates the tool's purpose with no superfluous 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?

For a simple action with one required parameter and no output schema, the description is minimally adequate. However, it does not specify that the tool returns a success/failure status or any other context about the 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?

With 100% schema description coverage and only one parameter (taskId), 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.

Purpose5/5

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

The description clearly states the action: 'Start working on a Bitrix24 task' and explicitly mentions the outcome ('set status to In Progress'). It distinguishes this from sibling tools like bitrix24_task_complete or bitrix24_task_defer.

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 (to start working), but provides no explicit guidance on when not to use or mention alternatives. For example, it does not clarify that the task must be in a 'New' status first.

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

bitrix24_task_updateB

Update an existing Bitrix24 task

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesFields to update (TITLE, DESCRIPTION, DEADLINE, PRIORITY, RESPONSIBLE_ID, etc.)
taskIdYesTask ID to update

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided; description fails to disclose behavioral traits like whether it's a partial update, required permissions, error handling, or idempotency. Minimal beyond stating mutation.

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 key action. No wasted words; efficient for what it provides.

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?

No output schema and no annotations; description is too brief for a mutation tool. Lacks details on response, side effects, and use cases. Incomplete 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%, so schema already describes parameters. Description adds no extra meaning beyond schema, earning baseline 3.

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 an existing Bitrix24 task' with specific verb and resource. Distinct from sibling tools like create, get, list, etc.

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 create or complete. No context on prerequisites or exclusions.

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

bitrix24_user_getB

Get Bitrix24 user(s) by ID or filter

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter, e.g. {ACTIVE: true}
userIdNoSpecific user ID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are present, so the description fully carries the burden of behavioral disclosure. It only states that the tool gets users by ID or filter, but does not mention read-only nature, idempotency, pagination, or behavior when multiple users match the filter. For a data retrieval tool, these are significant omissions.

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, consisting of a single sentence that front-loads the verb and resource. No redundant words or unnecessary details; every word earns its place.

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?

Without an output schema, the description should explain the return format (e.g., single object or array). It also does not describe valid filter keys or the behavior when both parameters are provided. The presence of nested objects in the schema is not elaborated upon.

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, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides (e.g., it only reiterates the two modes).

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 'Get' and resource 'Bitrix24 user(s)', specifying two modes: by ID or filter. This distinguishes it from sibling 'bitrix24_user_search' which likely performs a different type of user lookup.

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 retrieving users by known ID or filter, but it does not provide explicit guidance on when to use this tool versus alternatives like 'bitrix24_user_search' or other user-related tools. No exclusion criteria or prerequisites are mentioned.

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

bitrix24_voximplant_statistic_getA

Get telephony call statistics (Mango Office / Voximplant) — one row per call. Filter by CRM_ENTITY_ID (the lead/deal id), CRM_ACTIVITY_ID, CALL_ID, or PORTAL_USER_ID. Key fields: CALL_DURATION (seconds), CALL_TYPE (1=outbound, 2=inbound), CALL_START_DATE, PHONE_NUMBER, PORTAL_USER_ID (the manager), RECORD_FILE_ID (the audio recording's disk file id, null if not recorded), CALL_FAILED_CODE (200=answered, 304=missed), CALL_VOTE, REST_APP_NAME (the telephony connector). TRANSCRIPT_ID / TRANSCRIPT_PENDING stay null/'N' on this portal (re-verified 2026-07-28 across the 50 most recent calls): Bitrix's own transcription and BitrixGPT scoring are UI-only CoPilot features, not exposed via REST. To understand a call, first check the local pipeline's transcript in the timeline note (bitrix24_crm_timeline_note_get, itemId = CRM_ACTIVITY_ID); only if there is none, download the recording (RECORD_FILE_ID) and transcribe it with bitrix24_call_transcribe. This method is the authority on direction and duration — a note header that disagrees is wrong.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort column, e.g. 'CALL_START_DATE' (default)
limitNoMax rows to return (default cap 500; pass limit >= total to fetch all).
filterNoe.g. {CRM_ENTITY_ID: 143820} for all calls on a lead, {CRM_ACTIVITY_ID: 693490} for one call, {PORTAL_USER_ID: 796} for a manager. Date-bound: {'>CALL_START_DATE': 'YYYY-MM-DD'}.
sortOrderNoSort direction (default DESC)

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description fully discloses key behaviors: one row per call, explanation of fields, null status of TRANSCRIPT fields (verified), limitation of REST API vs UI, and authoritative claim for direction/duration.

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?

Well-structured and informative, but somewhat long. Each sentence adds value, so no waste; still, a slightly more compact format could be slightly better.

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?

No output schema, but the description explains key return fields and provides a complete workflow for understanding a call. Covers filtering, limits, and behavioral notes, making it fully actionable.

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 with concrete examples of filter values, date-bound syntax, and explanation of output fields, exceeding what the schema alone 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?

Starts with a clear verb+resource: 'Get telephony call statistics (Mango Office / Voximplant) — one row per call.' and distinguishes from siblings by providing workflow guidance referencing other tools.

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?

Explicitly states when to use this tool (to get call stats) and when to use alternatives (bitrix24_crm_timeline_note_get, bitrix24_call_transcribe) for transcript/recording. Provides authoritative guidance on direction/duration.

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

bitrix24_workgroup_listC

List Bitrix24 workgroups and projects

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter, e.g. {PROJECT: 'Y'} for projects only

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must fully convey behavioral traits. It states 'list', implying a read operation, but does not disclose pagination, default filtering, return format, or any side effects. A simple 'list' verb is insufficient for transparency.

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 a single sentence with no unnecessary words. However, it is too brief to be informative. Conciseness is good but at the cost of completeness.

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?

There is no output schema, and the description does not explain return structure, such as fields in each workgroup entry. The tool has one parameter but with an object type, which is covered by the schema. Overall, the description lacks important details for an agent to invoke it correctly.

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 schema description coverage is 100% with the filter parameter having a clear example '{PROJECT: "Y"}'. The description does not add additional meaning beyond the schema, so 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 'List Bitrix24 workgroups and projects', which matches the tool name. It specifies the resource (workgroups, projects) and the action (list). Among sibling tools, it uniquely focuses on workgroups, so no confusion. However, it could be slightly more explicit about whether it returns both workgroups and projects or filters.

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 like task_list, deal_list, or other list tools. The description does not mention context, prerequisites, or exclusions. It assumes the agent knows when to use a workgroup listing.

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

TDQS

A3.6/5.0
Disambiguation5/5

Every tool has a clear, distinct purpose with detailed descriptions that differentiate overlapping operations (e.g., attach_file vs post_image vs im_post_file). No ambiguity exists among the 43 tools.

Naming Consistency5/5

All tools follow a consistent 'bitrix24_<resource>_<action>' pattern, using snake_case throughout. The naming is predictable and uniform across all resources.

Tool Count4/5

43 tools is on the high side, but it covers a broad domain (tasks, CRM, telephony, IM) and each tool has a specific role. A few transcription tools are redundant but serve different quality tiers.

Completeness2/5

Significant gaps exist: CRM entities (deals, contacts, leads) lack create, update, and delete operations. IM chat creation and user management are missing. This will cause agent failures when full lifecycle operations are needed.

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
    D
    maintenance
    Enables language models to interact with Bitrix24 CRM, providing tools to manage deals, leads, contacts, tasks, activities, users, files, chat messages, and live chat sessions.
    13
    1
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to interact with Bitrix24 CRM through standardized MCP tools, including searching and managing contacts, deals, leads, tasks, and replying in chats.
    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/paskal/bitrix24-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server