Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
b24_callA

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

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

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

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

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

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

b24_batch

Run up to 50 REST calls in a single request (chained, with back-references).

Reduces API-limit pressure: 50 sub-calls count as one hit. Commands run in order; a later command can consume an earlier one's output using Bitrix's $result[key][field] reference syntax placed literally inside its params.

Args: commands: e.g. [{"key":"make","method":"crm.deal.add","params":{"fields":{"TITLE":"X"}}}, {"key":"note","method":"crm.timeline.comment.add", "params":{"fields":{"ENTITY_ID":"$result[make]","ENTITY_TYPE":"deal","COMMENT":"hi"}}}] halt: stop on first error if true.

Returns: JSON string: {"result": {key: }, "result_error": {key: err}, "result_next": {...}, "result_total": {...}}.

Write safety: with BITRIX_READ_ONLY=1 the whole batch is refused if any command is a write method.

b24_test_connectionA

Verify the webhook works and report the acting user and portal.

Calls profile (identity + portal) and reports the resolved webhook. Use this first when diagnosing auth/permission problems.

Returns: JSON: {"ok": true, "portal": "...", "user": {"ID","NAME","LAST_NAME","ADMIN"...}} or an error envelope with the Bitrix code.

b24_list_methodsA

Discover which REST methods/scopes this webhook can access.

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

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

b24_crm_listA

List CRM records with filtering, sorting, and pagination.

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

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

b24_crm_get

Fetch a single CRM record by id (all fields).

Returns the record payload (classic entities return the fields object; the modern crm.item API returns {"item": {...}}).

b24_crm_fieldsA

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

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

b24_crm_add

Create a CRM record. Returns the new id (classic) or {"item": {...}} (modern).

Writing requires a webhook with the acting user's permissions — pass personal_webhook to create under a specific user.

b24_crm_update

Update fields of an existing CRM record. Returns success/the updated item.

b24_crm_deleteA

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

b24_crm_timeline_comment_add

Post a comment to a CRM record's timeline. Returns the new comment id.

b24_crm_category_listA

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

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

b24_crm_status_listA

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

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

b24_crm_activity_list

List CRM activities — calls, meetings, emails, tasks (crm.activity.list).

Common filter keys: OWNER_TYPE_ID (1 lead,2 deal,3 contact,4 company), OWNER_ID, TYPE_ID (1 meeting,2 call,3 task,4 email), COMPLETED ('Y'/'N'), RESPONSIBLE_ID, '>=CREATED'. Returns a pagination envelope.

b24_crm_activity_addA

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

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

b24_crm_productrows_get

List the product rows of a deal/lead/quote (crm.item.productrow.list).

b24_crm_productrows_setB

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

b24_crm_currency_listB

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

b24_crm_requisite_list

List requisites — legal/bank details of contacts & companies (crm.requisite.list).

Common filter keys: ENTITY_TYPE_ID (3 contact, 4 company), ENTITY_ID, PRESET_ID.

b24_crm_timeline_comment_listA

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

b24_crm_activity_delete

Delete a CRM activity (crm.activity.delete). Irreversible.

b24_crm_deal_contacts_get

List contacts linked to a deal (crm.deal.contact.items.get).

b24_crm_deal_contacts_setB

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

b24_tasks_listA

List tasks with filtering, sorting, and pagination (tasks.task.list).

Common filter keys: RESPONSIBLE_ID, CREATED_BY, GROUP_ID (project/group), STATUS (1 new,2 pending,3 in progress,4 supposedly done,5 completed,6 deferred), STAGE_ID (kanban column), >=CREATED_DATE, etc. Common select: ['ID','TITLE','STATUS','RESPONSIBLE_ID','GROUP_ID','CREATED_BY', 'DEADLINE','STAGE_ID','COMMENTS_COUNT','TAGS'].

Caveat for Scrum sprint boards (confirmed live, not just theoretical): STAGE_ID here is reliable for a regular group kanban, but for a task on an active sprint it goes stale the moment the card is moved the correct way (b24_scrum_task_move / a real drag on the board) — Bitrix tracks that move in a separate structure with no public method to read it back. Filtering by STAGE_ID on a sprint board is approximate at best.

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

b24_task_getA

Fetch a single task by id (tasks.task.get). Returns {"task": {...}}.

b24_task_addA

Create a task (tasks.task.add). Returns {"task": {...}} with the new id.

b24_task_update

Update a task (tasks.task.update).

Also used to move kanban stage (STAGE_ID) — but only for a regular group's kanban (task.stages.get). For a task on an active Scrum sprint board, STAGE_ID here is accepted with no error and reads back correctly, but does NOT relocate the card on the real board (confirmed live: reload the page and it's still in the old column). Use b24_scrum_task_move instead when the task's sprintId is set.

b24_task_complete

Mark a task complete (tasks.task.complete).

b24_task_delete

Delete a task (tasks.task.delete). Irreversible.

b24_task_comments_listA

List a task's comments (task.commentitem.getlist). Returns the comment list.

b24_task_comment_addA

Add a comment to a task (task.commentitem.add). Returns the new comment id.

b24_task_stages_get

Get kanban stages of a regular (non-Scrum) project/group (task.stages.get).

For Scrum groups use b24_scrum_kanban_stages instead — their columns belong to the active sprint, not the group.

b24_task_checklist_listB

List a task's checklist items (task.checklistitem.getlist).

b24_task_checklist_add

Add a checklist item to a task (task.checklistitem.add).

b24_task_elapsed_addB

Log time spent on a task (task.elapseditem.add). Returns the entry id.

b24_task_result_list

List a task's results (tasks.task.result.list) — the marked outcomes of the task.

b24_scrum_sprint_listA

List sprints of a Scrum group (tasks.api.scrum.sprint.list).

Returns a pagination envelope of sprint objects (id, name, dateStart, dateEnd, status, ...). Use the active sprint's id with b24_scrum_kanban_stages to get the real board columns.

b24_scrum_kanban_stages

Get the real kanban columns of a sprint (tasks.api.scrum.kanban.getStages).

Returns the column definitions (id, name, ...). Feed a column id as STAGE_ID into b24_tasks_list (with the same GROUP_ID) to list tasks in that column.

b24_scrum_board

One-shot board snapshot: the active sprint plus its kanban columns.

Convenience that runs the correct two-step flow for you and returns {"sprint": {...active sprint...}, "stages": [...columns...]}. Returns a clear message if the group has no active sprint.

b24_scrum_task_moveA

Move a task to a column on a Scrum sprint board (tasks.api.scrum.kanban.addTask).

Use this instead of b24_task_update's STAGE_ID to relocate a task that belongs to an active sprint. Confirmed live: tasks.task.update with STAGE_ID is accepted with no error and the new value reads back correctly, but the card does not actually move on the real board (reload and it's still in the old column) — this method is Bitrix's board-aware write and is the one that does move it.

b24_calendar_event_listA

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

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

b24_calendar_section_listB

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

b24_calendar_event_addB

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

b24_calendar_event_update

Update a calendar event (calendar.event.update).

b24_calendar_event_deleteA

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

b24_disk_storage_list

List available Disk storages (disk.storage.getlist): personal, group, company.

Returns a pagination envelope of storage objects (ID, NAME, ENTITY_TYPE, ...). Use a storage's root folder id with b24_disk_folder_items to browse it.

b24_disk_folder_items

List the contents of a Disk folder (disk.folder.getchildren).

Returns a pagination envelope of files and subfolders (ID, NAME, TYPE, DOWNLOAD_URL for files, ...).

b24_disk_file_get

Get file metadata incl. DOWNLOAD_URL (disk.file.get).

Note: files attached to task/chat messages may require the acting user to be a participant — pass that user's personal_webhook if you get ACCESS_DENIED.

b24_disk_folder_addA

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

b24_disk_file_upload

Upload a file into a Disk folder (disk.folder.uploadfile).

Returns the created file object. Content must be base64; the fileContent parameter is sent as [name, base64] with a unique name generated on collision.

b24_disk_file_deleteA

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

b24_disk_file_contentA

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

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

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

b24_user_getA

Find users (user.get) with a real filter and pagination.

Filter keys include ID, ACTIVE ('Y'/'N'), NAME, LAST_NAME, EMAIL, UF_DEPARTMENT, WORK_POSITION, and '%'-prefixed substring variants (e.g. {'%LAST_NAME': 'Ivan'}). Always filter to keep the result bounded.

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

b24_user_currentA

Return the acting user's profile (user.current): id, name, admin flag, etc.

b24_user_searchA

Free-text search for users (user.search).

Better than user.get when you only have a partial name. Returns a pagination envelope of user objects.

b24_department_get

List/describe company departments (department.get).

Bitrix's department.get has no server-side filter — it silently ignores a filter param and returns the entire department list regardless of what's in it (confirmed against a live portal). An ID key (int or list) is sent the way Bitrix actually supports it (a top-level ID); any other key (NAME, %NAME substring, PARENT, UF_HEAD, ...) is matched client-side after fetching the full tree, so filtering here genuinely works instead of quietly dumping everything.

b24_im_recentA

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

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

b24_im_dialog_messagesA

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

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

b24_im_user_get

Get a user's IM profile (im.user.get): name, avatar, work status, online.

b24_im_chat_create

Create a group chat (im.chat.add). Returns the new chat id (use 'chat' as DIALOG_ID).

b24_im_chat_user_add

Add users to a group chat (im.chat.user.add).

b24_im_message_add

Send an IM message to a chat or user (im.message.add).

Visible to chat participants / the recipient. Returns the new message id.

b24_im_notify_personalA

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

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

b24_feed_post_add

Publish a post to the Live Feed (log.blogpost.add).

PUBLIC / broadly visible depending on dest. Use with care. Returns the new post id.

b24_lists_getA

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

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

b24_lists_element_listA

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

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

b24_lists_element_addB

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

b24_lists_element_update

Update a list element (lists.element.update).

b24_lists_element_delete

Delete a list element (lists.element.delete). Irreversible.

b24_catalog_product_listA

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

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

b24_catalog_product_get

Fetch one catalog product (catalog.product.get). Returns {"product": {...}}.

b24_catalog_product_addB

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

b24_catalog_product_updateC

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

b24_catalog_listA

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

b24_catalog_section_list

List catalog sections/categories (catalog.section.list).

Common filter keys: iblockId, id, name, sectionId (parent).

b24_crm_product_listA

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

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

b24_bizproc_template_listA

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

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

b24_bizproc_start

Launch a business process on a document (bizproc.workflow.start).

Potentially impactful — a workflow can move stages, send mail, create tasks. Returns the running workflow id.

b24_telephony_statisticsA

List call statistics (voximplant.statistic.get) with pagination.

Common filter keys: '>=CALL_START_DATE', 'PORTAL_USER_ID', 'CALL_TYPE' (1 outbound, 2 inbound), 'CALL_FAILED_CODE', 'PHONE_NUMBER'. Returns a pagination envelope of call records (CALL_ID, duration, cost, recording URL...).

b24_group_listA

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

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

b24_group_usersA

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

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

b24_group_createB

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

b24_group_updateB

Update a workgroup (sonet_group.update).

b24_group_delete

Delete a workgroup (sonet_group.delete). Irreversible.

b24_sale_order_list

List store orders (sale.order.list) with pagination.

Common filter keys: id, statusId, '>=dateInsert', userId, '>=price'. Returns a pagination envelope of order objects.

b24_sale_order_getA

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

b24_documentgenerator_templatesA

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

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

b24_documentgenerator_addA

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

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

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/john7ross/BitrixMCP'

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