Skip to main content
Glama

b24-mcp

비트릭스24용 로컬 MCP 서버. AI 에이전트에게 포털의 최신 데이터 — 캘린더, 태스크 및 태스크 내 토론, 채팅, 콜라보 프로젝트, 통화 AI 분석, 인물 카드 — 를 제공한다.

읽기 전용. 개인 인바운드 웹훅을 통해 클라우드 또는 온프레미스 등 모든 포털에서 작동한다.

에이전트가 이미 HTTP를 할 줄 아는데 왜 필요한가

에이전트는 REST를 직접 호출할 수 있다. 하지만 그럴 경우:

  • 요청마다 URL을 조합하고, 메서드 이름과 API 버전을 기억하고, 응답을 파싱해야 한다;

  • 토큰이 매 호출마다 에이전트의 환경을 통과한다;

  • 포털을 변경하는 메서드를 호출하는 것을 막을 수 없다.

서버가 이 문제를 해결한다: 에이전트는 비즈니스 연산(tasks_list, task_chat)을 호출하고, 전송, 버전, 페이지네이션, 정규화는 내부에서 처리된다. 외부로 노출되는 것은 읽기와 나열된 연산뿐이며, raw-REST는 전혀 노출되지 않는다.

Related MCP server: Bitrix24 MCP Bridge

제공 기능 (14개 도구)

도구

기능

whoami

웹훅 소유자 확인 — 연결이 살아있는지 빠르게 확인

person_find

사람 찾기: 직책, 부서, 연락처, 활성 여부

calendar_events

기간 내 이벤트: 시간, 참석자, 주최자, 미팅인지 개인 블록인지

tasks_list

responsible / originator / auditor 역할의 사람 태스크

task_get

태스크 헤더: 설명, 상태, 마감일, 채팅 존재 여부

task_chat

태스크 내 토론 — 핵심은 필드가 아니라 여기에 있음

task_result

태스크 결과: 채팅에는 없고, 텍스트 없는 시스템 메시지만 있음

tasks_updates

기간 내 내 태스크의 변동 사항 + 새로 생성된 태스크

chat_read

대화 읽기: 그룹 채팅 또는 개인 메시지

projects_list

활동 최신순 콜라보 프로젝트

project_chats

프로젝트 구성: 하위 채팅

project_read

프로젝트 채팅 내 토론

followups_list

기간 내 AI 분석이 완료된 통화

followup_get

통화 분석: 주제, 합의 사항, action items, 대화 기록

응답은 정규화된다: 목록은 {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):

Scope

용도

user, department

사람 및 조직 구조

calendar

이벤트

task, tasks_extended

태스크

im

채팅: 태스크, 개인, 그룹, 프로젝트

call

통화 AI 분석 (없어도 나머지는 모두 동작)

권한이 적을수록 위험이 적다. call 없이 시작하고, 통화가 필요해지면 추가하라.

2. 웹훅을 .env에 넣는다:

cp .env.example .env
chmod 600 .env          # сервер откажется читать файл, доступный другим
B24_WEBHOOK=https://<твой-портал>/rest/<число>/<токен>/
B24_USER_ID=<твой id>   # необязательно: определится сам через user.current

3. 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

테스트는 네트워크 없이 실행된다. 도구 목록(새 도구가 조용히 추가되지 않도록), "읽기 전용" 장벽, 정규화 계약, 포털 응답 형식 — 특히 놓치기 쉬운 형식들을 검증한다.

계약의 두 가지 함정, 디버깅에 시간이 들었던 부분 (테스트로 고정됨):

  • 통화 대화 기록은 transcription 필드에 있다 (transcript 아님), 요약은 세그먼트로 온다 ({segments: [{title, summary}]}), 합의 사항과 태스크는 agreement / actionItem 키 아래에 있고 text가 아니다. 놓치면 오류가 아니라 조용히 빈 응답이 온다.

  • 통화 참가자는 userId 필드로 식별되며 id가 아니다. id를 읽으면 None이 반환되고 — 참가자를 사람과 연결할 수 없다.

경계

서버는 의도적으로 다음을 수행하지 않는다:

  • write 연산 — 태스크를 만들지 않고, 메시지를 보내지 않으며, 포털을 변경하지 않는다;

  • 대규모 실행 — 한 달치 전체 대화를 전수 조사하거나, 분기 보고서를 내보내거나, 체크포인트가 있는 요약 순회 같은 작업. 도구 호출은 에이전트의 단일 요청 수명 내에서 실행된다: 시간 상한이 있고 진행 상황을 저장할 곳이 없다. 이러한 작업은 MCP 도구가 아닌 별도 스크립트로 해결해야 한다.

라이선스

MIT.

Available Tools

13 tools
calendar_eventsB

События календаря: время, участники, кто host.

is_meeting + attendees дают отличить структурную встречу от личного блока. Одиночное событие с проектным названием — спроси владельца, с кем это, не классифицируй молча.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoСколько дней от start
startNoYYYY-MM-DD, по умолчанию сегодня
user_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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-параметр.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNo
limitNo
chat_idNoГрупповой/проектный чат
user_idNoЛичка с человеком
include_systemNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
call_idYes
transcriptNoДобавить полную расшифровку (тяжело)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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-разбором за окно.

Звонки без разбора портал не возвращает — пустой список это норма, а не сбой.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
user_idNoТолько под админскими правами
max_itemsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

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 '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 — в крупной компании есть однофамильцы.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYesID, email или часть имени/фамилии

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/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 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.

Conciseness5/5

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.

Completeness4/5

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

Given the presence of an output schema, the description adequately covers the 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

Прочитать обсуждение в чате проекта.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoОкно; без него — последнее
limitNo
chat_idYesЧат проекта: главный или дочерний
live_onlyNoОтбросить системные записи

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior1/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines1/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, 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

Проекты-коллабы по свежести активности.

Проект группирует чаты (задачи, синки, под-чаты); их содержания обычно нет в заметках — это прямой слой слепых пятен.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

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

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose3/5

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.

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 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

Обсуждение внутри задачи — там суть, а не в полях.

Системные записи (назначения, смены сроков) по умолчанию скрыты.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNoВся история, а не последнее окно
limitNo
task_idYes
include_systemNoПоказать системные записи

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No explicit guidance on when to use this tool 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

Шапка задачи: тело, статус, дедлайн, есть ли чат обсуждения.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No explicit guidance on when to use this tool 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 помечает «заметки сам себе» (постановщик = исполнитель).

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoresponsible | originator | auditor | accomplice | memberresponsible
limitNo
user_idNo
include_doneNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
deepNoДочитать треды, а не последнюю реплику

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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

Кто владелец подключённого вебхука. Быстрая проверка, что мост живой.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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

The description is complete for a 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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

B3.2/5.0
Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness2/5

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

ActivityMaintained
ResponsivenessNo issues

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

  • A
    license
    Not graded
    quality
    A
    maintenance
    Локальный MCP-сервер, дающий ИИ-агенту read-only доступ к задачам, проектам и чатам Bitrix24 в объёме прав пользователя — через браузерное расширение, переиспользующее живую сессию. Без прав администратора и без официального REST-вебхука.
    12
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Universal 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.
    88
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A secure, self-hosted MCP server for Bitrix24 CRM that enables reading CRM data and performing confirmation-gated writes through schema discovery and OAuth integration.
    13
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ffelrm/b24-mcp'

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