b24-mcp
b24-mcp
Bitrix24 用のローカル MCP サーバー。AI エージェントにポータルの最新データを提供する — カレンダー、タスクとその中の議論、チャット、コラボレーションプロジェクト、AI 通話分析、人物カード。
読み取り専用。クラウド・オンプレミスを問わず、あらゆるポータルで動作する。あなたの個人用インバウンドウェブフック経由で接続する。
エージェントが HTTP を扱えるのに、なぜこれが必要なのか
エージェントは REST に直接アクセスできる。しかしその場合:
リクエストのたびに URL を組み立て、メソッド名や API バージョンを覚え、レスポンスをパースする必要がある;
トークンが毎回エージェントの環境を通過する;
ポータルを変更するメソッドを呼び出せてしまうのを防ぐ手段がない。
このサーバーがそれを解消する: エージェントはビジネスオペレーション(tasks_list、task_chat)を呼び出すだけで、トランスポート、バージョン、ページネーション、正規化は内部で処理される。外部に公開されるのは読み取り専用の列挙されたオペレーションのみ — raw-REST は一切公開されない。
Related MCP server: Bitrix24 MCP Bridge
できること(14 ツール)
ツール | 機能 |
| ウェブフックの所有者を確認 — 接続が生きているかのクイックチェック |
| 人物を検索: 役職、部署、連絡先、アクティブかどうか |
| 期間内のイベント: 時間、参加者、主催者、会議か個人ブロックか |
|
|
| タスクのヘッダー: 説明、ステータス、期限、チャットの有無 |
| タスク内の議論 — 本質はフィールドではなくここにある |
| タスクの結果: チャットにはなく、テキストなしのシステム行しかない |
| 期間内の自分のタスクの動き + 新しく発生したタスク |
| ダイアログを読む: グループチャットまたは個人チャット |
| アクティビティの新しさ順のコラボプロジェクト |
| プロジェクトの構成: 子チャット |
| プロジェクトチャット内の議論 |
| 期間内の AI 分析済み通話 |
| 通話分析: テーマ、合意事項、アクションアイテム、文字起こし |
レスポンスは正規化されている: リストは {items, count, limit} で返され、マークアップは除去され、リミットは制限される。
インストール
Python 3.11+ が必要。
git clone <этот-репозиторий> b24-mcp && cd b24-mcp
python3 -m venv .venv
.venv/bin/python -m pip install -e .設定
1. ポータルでインバウンドウェブフックを発行する。 開発者セクション: アプリケーション → 開発者向け → その他 → インバウンドウェブフック。
サーバーが使用する権限(スコープ):
Scope | 用途 |
| 人物と組織構造 |
| イベント |
| タスク |
| チャット: タスク、個人、グループ、プロジェクト |
| AI 通話分析(これがなくても他はすべて動作する) |
権限が少ないほどリスクが低い。まずは call なしで始め、通話が必要になったら追加する。
2. ウェブフックを .env に置く:
cp .env.example .env
chmod 600 .env # сервер откажется читать файл, доступный другимB24_WEBHOOK=https://<твой-портал>/rest/<число>/<токен>/
B24_USER_ID=<твой id> # необязательно: определится сам через user.current3. MCP クライアントに接続する。 Claude Code の例(~/.claude.json):
{
"mcpServers": {
"b24": {
"command": "/абсолютный/путь/b24-mcp/.venv/bin/python",
"args": ["-m", "b24_mcp.server"],
"env": { "B24_MCP_ENV": "/абсолютный/путь/b24-mcp/.env" }
}
}
}クライアントを再起動し、エージェントに「ポータルとの接続を確認して」と尋ねる — whoami が呼び出される。
セキュリティ
トークンは権限
600の.envに保存される。 サーバーは起動時に権限をチェックし、ファイルが他者に読み取り可能な場合は動作を拒否する。トークンはツールのレスポンスにもログにもエラーメッセージにも含まれない。 ログにはオペレーション名と時間のみ記録され、URL は記録されない。
読み取り専用。 クライアントはトランスポートレベルで write メソッドが禁止されて作成され、外部に公開されるのは列挙されたオペレーションのみ。ツールのコードにバグがあっても、タスクが作成されたりメッセージが送信されたりすることはない。
正直な境界: これにより「コマンド出力にシークレットが誤って漏れる」というクラスの問題は解消されるが、エージェントからシェルを奪うものではない。ファイルシステムへのアクセス権があれば、
.envを読むことは依然として可能だ — あなたのユーザーで実行される他のプロセスと同様に。見えるのはウェブフック所有者が参加しているものだけ。他人のプライベートチャットやイベントはサーバーから取得できない。
トークンが漏れたら、ポータルでウェブフックを失効させて新しいものを発行する; 変更が必要なのは
.envだけだ。
開発
.venv/bin/python -m pip install -e '.[dev]'
.venv/bin/python -m pytest -q --asyncio-mode=autoテストはネットワークなしで実行される。ツールリスト(新しいツールが黙って追加されないこと)、「読み取り専用」バリア、正規化コントラクト、ポータルのレスポンス形式 — 見落としやすいものも含めて — を検証する。
デバッグに時間がかかったコントラクトの 2 つの落とし穴(テストで固定済み):
通話の文字起こしは
transcriptionフィールド(transcriptではない)にあり、サマリーはセグメント({segments: [{title, summary}]})で返され、合意事項とタスクはagreement/actionItemキー(textではない)の下にある。間違えるとエラーではなく黙って空のレスポンスが返る。通話参加者は
userIdフィールドで識別され、idではない。idを読むとNoneが返り — 参加者を人物と関連付けることができない。
境界
サーバーは意図的に以下を行わない:
write オペレーション — タスクを作成せず、メッセージを送信せず、ポータルを変更しない;
重い実行 — 1 ヶ月分の全メッセージの総なめ、四半期レポートのエクスポート、チェックポイント付きの要約ウォークスルーなど。ツール呼び出しはエージェントの 1 回のやり取りの中で完結する: そこには時間の上限があり、進捗を保存する場所もない。そのようなタスクは MCP ツールではなく、別のスクリプトで解決すべきものだ。
ライセンス
MIT。
Available Tools
13 toolscalendar_eventsB
События календаря: время, участники, кто host.
is_meeting + attendees дают отличить структурную встречу от личного
блока. Одиночное событие с проектным названием — спроси владельца, с кем
это, не классифицируй молча.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Сколько дней от start | |
| start | No | YYYY-MM-DD, по умолчанию сегодня | |
| user_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description bears full burden. It discloses that events have fields like `is_meeting` and `attendees`, and advises on classification, but does not explain sorting, pagination, permissions, or output structure beyond the bare mention of time/participants/host.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (two sentences) and front-loaded with the core purpose. However, the second sentence is somewhat cryptic and could be clearer. Overall, it is concise with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values are partially covered. The description mentions important fields but omits filter behavior (date range, user scope) and does not explain the absence of user_id parameter documentation. The interpretation advice adds value but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (days and start have descriptions, user_id does not). The description adds no parameter-specific details, leaving user_id undocumented and failing to explain how days and start affect the query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool provides calendar events with time, participants, and host, which clearly indicates retrieval of event details. However, it lacks an explicit verb like 'list' or 'get', and the description veers into interpretation advice rather than a straightforward purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives, nor does it specify prerequisites or filtering scope. It only gives interpretation advice for event data, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chat_readA
Прочитать диалог, где ты участник: групповой чат или личку.
Вложения отдаются списком (имя, размер, disk_id) — ссылки на скачивание сюда не попадают, они могут нести auth-параметр.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | ||
| limit | No | ||
| chat_id | No | Групповой/проектный чат | |
| user_id | No | Личка с человеком | |
| include_system | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes that attachments are returned as a list with name, size, disk_id, and notes that download links are excluded. With no annotations, this adds useful behavioral detail. Could mention response structure more but output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers basic purpose and attachment info, but doesn't explain overall return format (messages) or usage context for boolean parameters. Output schema exists but description still leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 40% of parameters have schema descriptions. The description adds no extra meaning for 'full', 'limit', or 'include_system', which remain undocumented. It reiterates chat_id/user_id purpose already in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it reads a dialog where the user is a participant, distinguishing it from sibling tools which are unrelated. Verb 'read' with specific resource 'dialog', and specifies both group chat and personal chat.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly restricts to dialogs where the user is a participant, but does not explicitly mention when not to use or provide alternatives. Clear context for when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
followup_getA
Разбор звонка: тема, повестка, договорённости, action items, участники.
⚠️ action_items — СЫРЬЁ портала, а не готовый список твоих задач. Кому
принадлежит задача, решай по говорящему и адресату: «ты сделай» → владелец
адресат, «я сделаю» → владелец говорящий. Для этого бери transcript=True.
| Name | Required | Description | Default |
|---|---|---|---|
| call_id | Yes | ||
| transcript | No | Добавить полную расшифровку (тяжело) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description warns that action_items are raw portal data and need transcript for ownership resolution, and notes transcript is heavy. This adds valuable behavioral context, though no side effects or permissions are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with a warning, front-loaded with purpose. Every sentence adds value and is efficiently presented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (call breakdown with action items) and presence of output schema, the description covers key behavioral aspects. Could mention participants more explicitly, but sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only transcript described). The description adds meaning by explaining how to use transcript to resolve task ownership, which goes beyond schema, compensating for missing call_id description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns call breakdown: topic, agenda, agreements, action items, participants. This is specific and distinct from sibling followups_list which likely lists all followups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to set transcript=True for interpreting action items, but does not explicitly state when to use this tool vs alternatives or exclude cases. 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.
followups_listC
Завершённые звонки с ГОТОВЫМ AI-разбором за окно.
Звонки без разбора портал не возвращает — пустой список это норма, а не сбой.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| user_id | No | Только под админскими правами | |
| max_items | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clarifies that calls without analysis are not returned and an empty list is not an error. With no annotations provided, this adds some behavioral context. However, it does not mention permissions, idempotency, or performance characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences without extraneous information. It is front-loaded with the core purpose. However, it omits important context that could be added without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters, no annotations, and an output schema exists, the description leaves gaps. It explains the return condition (only calls with analysis) but lacks information about required permissions, parameter interactions, or typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description indirectly relates to the 'days' parameter by mentioning 'window', but does not explain the parameters in detail. Only one of three parameters (user_id) has a description in the schema, and the tool description adds minimal additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it returns 'completed calls with ready AI analysis', which clearly identifies the resource and action. It distinguishes itself from sibling 'followup_get' by implying a list operation. However, it could be more explicit about listing vs. retrieving a single item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'followup_get' or other list tools. It does mention that an empty list is normal behavior, which is helpful but does not address use case differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
person_findA
Найти человека на портале: должность, отдел, контакты, активен ли.
Зови ЭТО до обращения по ID — в крупной компании есть однофамильцы.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ID, email или часть имени/фамилии |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the burden. It implies a read operation but does not explicitly state no side effects or disclose authentication/rate limits. Adequate but could be improved by noting read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states purpose and returns, the second provides critical usage guidance. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two parameters and an output schema. Description covers purpose, return fields, and usage context. Lacks explicit behavioral transparency but is otherwise complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter details beyond what the input schema provides. Schema coverage is 50% (query has description, limit does not), but the description does not compensate. The tool's purpose is clear, but parameter meaning is not enhanced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds a person on the portal and lists specific returned fields (position, department, contacts, active status). It distinguishes from sibling tools by being the only person-search tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises calling this before using a tool that queries by ID, citing potential name ambiguity in large companies. This provides clear when-to-use and alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_chatsA
Из чего состоит проект: дочерние чаты (задачи, синки, под-чаты).
Главный чат проекта сюда не входит — это и есть project_id.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It does not disclose whether the tool is read-only, any authorization requirements, or potential side effects. The description only covers what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no redundant words, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers the tool's purpose and scope. It could be slightly more detailed about the nature of child chats, but it is sufficient for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description adds value by explaining that 'project_id' refers to the main project chat. However, it does not provide additional details about the parameter beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns child chats (tasks, syncs, sub-chats) of a project and explicitly notes that the main project chat is excluded. This differentiates it from siblings like 'project_read' and 'chat_read'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context by specifying that the main project chat is not included and is accessed via 'project_id'. However, it does not explicitly state when not to use this tool or mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_readC
Прочитать обсуждение в чате проекта.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Окно; без него — последнее | |
| limit | No | ||
| chat_id | Yes | Чат проекта: главный или дочерний | |
| live_only | No | Отбросить системные записи |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose any behavioral traits (e.g., auth requirements, read-only nature, side effects) beyond the name's implication of a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (a single phrase) but under-specified; it lacks structure and does not front-load key context beyond the basic purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four parameters and an output schema, the description is too sparse; it does not clarify scope, limitations, or relationship to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75% (three of four parameters have descriptions), so the baseline is 3 despite the tool description adding no parameter-specific information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a project chat discussion, but it does not differentiate from sibling tools like 'chat_read' or 'task_chat', which may have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or conditions for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projects_listC
Проекты-коллабы по свежести активности.
Проект группирует чаты (задачи, синки, под-чаты); их содержания обычно нет в заметках — это прямой слой слепых пятен.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description only mentions grouping by freshness but doesn't explain return format, whether it lists projects or details, or any side effects. Lacks operational clarity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are short and front-loaded with the purpose, but they omit critical operational details. Conciseness is acceptable but at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple schema with one optional parameter and an output schema, the description should clarify what is returned and how 'freshness' is determined. It falls short, leaving gaps about usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'limit' has no description in schema (0% coverage). The description does not mention or explain its purpose, leaving the agent to infer from defaults and constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description hints at listing collab projects sorted by freshness, but the verb 'list' is implicit. It's not as explicit as sibling tools like 'tasks_list'. The purpose is somewhat clear but could be more direct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over alternatives like project_chats or project_read. No context for prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_chatB
Обсуждение внутри задачи — там суть, а не в полях.
Системные записи (назначения, смены сроков) по умолчанию скрыты.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Вся история, а не последнее окно | |
| limit | No | ||
| task_id | Yes | ||
| include_system | No | Показать системные записи |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that system records are hidden by default, which is a key behavioral trait. However, without annotations, it lacks explicit safety information (e.g., read-only or destructive nature) and does not discuss pagination or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose. Every sentence adds value and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description need not detail return values. However, it omits explanation of the limit and full parameters, and does not clarify the scope of the discussion retrieved. The description is too brief for a chat tool with multiple parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (descriptions for full and include_system). The tool description adds context for include_system by mentioning system records are hidden, but does not compensate for missing schema descriptions on task_id and limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves discussion inside a task, with the phrase 'Обсуждение внутри задачи — там суть, а не в полях'. This distinguishes it from task field operations but does not explicitly differentiate from sibling tools like chat_read or project_chats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies it's for task discussions but does not address when not to use it (e.g., for general chat) or provide prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_getB
Шапка задачи: тело, статус, дедлайн, есть ли чат обсуждения.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It states the tool returns fields (body, status, deadline, chat flag), implying a read operation with no side effects. However, it does not disclose authentication needs, rate limits, or whether the task must exist. The description is adequate but not explicit about behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence in Russian, with no extraneous text. It front-loads the key return fields. However, it could be slightly more structured (e.g., specifying that it is a read operation). Overall, it earns its place with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists (but not shown), the description does not need to detail return types. However, with no annotations and a simple tool, the description is minimally sufficient: it lists returned aspects but omits usage context (e.g., requires task_id, is safe to call repeatedly). For a straightforward get tool, this is average completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameter descriptions in schema). The single required parameter 'task_id' is not described in the tool description. The return field list implies task_id is needed to identify the task, but the description does not explicitly link the parameter to its purpose or validate its format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The Russian description indicates the tool retrieves a task's header including body, status, deadline, and discussion chat presence. It clearly specifies the resource (task) and verb (get), and the list of fields distinguishes it from sibling tools like tasks_list (full list) or task_chat (chat only). However, the term 'шапка' is slightly vague and could be interpreted differently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description does not mention prerequisites (e.g., task_id), nor does it exclude use cases. With siblings like tasks_list and task_chat, the description fails to help an agent decide which tool to invoke.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks_listB
Задачи человека в выбранной роли.
Дефолт responsible = «висит лично на нём». У руководителя почти все
видимые задачи чужие (он постановщик/наблюдатель) — без роли список шумит.
Поле self_note помечает «заметки сам себе» (постановщик = исполнитель).
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | responsible | originator | auditor | accomplice | member | responsible |
| limit | No | ||
| user_id | No | ||
| include_done | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It explains behavior for 'responsible' role and 'self_note' field, but lacks details on read-only status, rate limits, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with multiple sentences, each adding value. Front-loaded with main purpose. Slight ambiguity around 'self_note' field, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, return values need not be explained. However, important context like the effect of 'include_done' and 'user_id' is missing. The description covers role behavior but not other parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%. The description mentions 'self_note' but this is not a parameter. No additional meaning is added for 'limit', 'user_id', or 'include_done' beyond the schema defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Tasks of a person in the selected role', which matches the tool name. It adds nuance about default role and self-notes, but does not explicitly distinguish from sibling tools like 'task_get' or 'tasks_updates'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context on when to use different roles (e.g., default 'responsible' for personal tasks, managers need role to avoid noise), but does not compare to alternatives or specify when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks_updatesA
Что шевелится в СВОИХ задачах за окно + какие появились новые.
Идёт по recent-хвосту, а не по списку своих member-задач (их тысячи → таймаут). Дёшево: последняя реплика уже приходит в recent.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| deep | No | Дочитать треды, а не последнюю реплику |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden of behavioral disclosure. It explains the tool uses a recent tail approach and is efficient, but does not explicitly state whether it is read-only or if it has any side effects. It also does not mention authorization requirements or rate limits. The behavioral description is decent but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences in Russian) and front-loaded with the main purpose. Every sentence provides useful information, though the translation may lose some nuance. It is appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (so return values are documented), the description is sufficiently complete. It explains why this tool exists (avoid timeout) and contrasts with the member task list. It covers the core functionality for an agent to decide when to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, but the description does not add meaning to either parameter. The 'deep' parameter already has a description in the schema ("Дочитать треды, а не последнюю реплику"), and 'days' is only in the schema with default and range. The description does not explain how these parameters affect behavior beyond the schema, so it adds little value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool shows updates in own tasks ("Что шевелится в СВОИХ задачах") and mentions new ones, distinguishing it from sibling tools like tasks_list (list all tasks) and task_get (single task). The phrase 'за окно' (over a window) is a bit vague but overall the purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use the tool: it goes by the recent tail rather than the full list of own member tasks to avoid timeout. It also states it is cheap ('Дёшево') because the last reply already comes in recent. This helps an agent choose this tool over alternatives like tasks_list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoamiA
Кто владелец подключённого вебхука. Быстрая проверка, что мост живой.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose potential side effects, rate limits, or authentication requirements. However, the tool is likely a simple read-only identity check.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a parameterless tool with an output schema; it explains the purpose and use case adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the description does not need to add meaning beyond the schema. Baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the owner of the connected webhook and serves as a quick health check, distinguishing it from sibling tools that deal with tasks, projects, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage for verifying connectivity/authentication ('quick check that the bridge is alive'), but does not explicitly mention when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct resource or aspect: calls (followups_list vs followup_get), tasks (list, get, chat, updates), people, projects, calendar, and chat. No overlapping purposes; descriptions clarify boundaries.
Mostly consistent verb_noun snake_case pattern (e.g., tasks_list, task_get, project_read). Minor inconsistencies: plural vs singular (tasks_list vs task_get, followups_list vs followup_get) and a standalone unlike whoami.
13 tools cover the apparent domain of a CRM portal (people, tasks, projects, calls, calendar, chats) without redundancy. Each tool earns its place for a focused integration.
Heavily read-oriented: tools retrieve data but lack create, update, or delete operations. Users can inspect tasks, projects, calls, and chats but cannot modify them, causing dead ends for agents needing to take action.
Maintenance
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
MCP server that delivers up-to-date Bitrix24 REST API documentation.
MCP server enabling AI agents to manage Bitrix24 features via standardized protocol
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server for Bitrix24 CRM integration, enabling AI agents to manage contacts, deals, tasks, and more via natural language.13
- AlicenseNot gradedqualityAmaintenanceЛокальный MCP-сервер, дающий ИИ-агенту read-only доступ к задачам, проектам и чатам Bitrix24 в объёме прав пользователя — через браузерное расширение, переиспользующее живую сессию. Без прав администратора и без официального REST-вебхука.12MIT
- AlicenseBqualityAmaintenanceUniversal MCP server for the Bitrix24 REST API, enabling full read and write access to CRM, tasks, calendar, disk, and more. Supports any MCP client with stdio or Streamable HTTP transport.881MIT
- AlicenseNot gradedqualityBmaintenanceA secure, self-hosted MCP server for Bitrix24 CRM that enables reading CRM data and performing confirmation-gated writes through schema discovery and OAuth integration.13MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ffelrm/b24-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server