mcpBPMSoft
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BPMSOFT_URL | Yes | URL приложения, например https://mycompany.bpmsoft.com | |
| BPMSOFT_DEBUG | No | 1 — логировать method url status duration; trace — ещё и тела с маскированием паролей и токенов | off |
| BPMSOFT_PASSWORD | Yes | Пароль | |
| BPMSOFT_PLATFORM | No | net8 или netframework | net8 |
| BPMSOFT_USERNAME | Yes | Логин | |
| BPMSOFT_PAGE_SIZE | No | Размер страницы при автопагинации | 5000 |
| BPMSOFT_MAX_FILE_SIZE | No | Лимит размера файла (10 МБ) | 10485760 |
| BPMSOFT_ODATA_VERSION | No | 4 или 3 | 4 |
| BPMSOFT_MAX_BATCH_SIZE | No | Лимит подзапросов в $batch | 100 |
| BPMSOFT_REQUEST_TIMEOUT | No | Таймаут одного HTTP-запроса (мс) | 30000 |
| BPMSOFT_LOOKUP_CACHE_TTL | No | TTL кеша lookup в секундах | 300 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| bpm_initA | Инициализирует подключение к BPMSoft (URL, логин, пароль, версия OData, платформа) и проверяет учётные данные. Должен быть вызван первым, если сервер запущен без переменных окружения BPMSOFT_URL/USERNAME/PASSWORD. После успешного вызова все остальные инструменты становятся работоспособными. |
| bpm_get_recordsA | Возвращает записи указанной OData-коллекции с фильтрацией ($filter), выборкой полей ($select), сортировкой ($orderby), $expand и $top/$skip. По умолчанию автопагинация выключена и применяется лимит max_records (избегаем переполнения контекста LLM). Установите auto_paginate=true и/или увеличьте max_records если нужен полный набор. |
| bpm_get_recordA | Возвращает одну запись коллекции по UUID с опциональными $select и $expand. |
| bpm_count_recordsA | Возвращает число записей коллекции через /$count, опционально с $filter. |
| bpm_search_recordsA | Альтернатива bpm_get_records с человекочитаемыми критериями. Принимает массив criteria вида [{field, op, value}], где field может быть на русском (caption), op — на русском («содержит», «равно», «за последние 7 дней», «между») или OData (eq/contains/...). Сервер сам соберёт $filter. Полезен, когда LLM не хочет писать OData синтаксис вручную. |
| bpm_create_recordA | Создаёт запись в коллекции (POST). Lookup-поля можно передавать человекочитаемыми текстовыми значениями — сервер автоматически разрешит UUID. Возвращает созданную запись. |
| bpm_update_recordA | Обновляет поля записи по UUID (PATCH). Lookup-поля с текстовыми значениями разрешаются автоматически. Идемпотентно при одинаковых данных. |
| bpm_delete_recordA | Удаляет запись из коллекции по UUID (DELETE). Действие необратимо. |
| bpm_update_by_filterA | Находит записи по $filter и обновляет каждую через PATCH. Требует параметр expected_count: если найдено иное число записей — операция отменяется (защита от случайного массового обновления). |
| bpm_delete_by_filterA | Находит записи по $filter и удаляет каждую через DELETE. Требует параметр expected_count: при несовпадении операция отменяется. Действие необратимо. |
| bpm_get_collectionsA | Возвращает доступные EntitySet (коллекции) BPMSoft из $metadata. Поддерживает фильтр-подстроку по имени. |
| bpm_get_schemaA | Возвращает схему коллекции: поля, типы, обязательность, lookup-связи. По возможности включает локализованные подписи (рус. названия) полей из SysSchema/SysEntitySchemaColumn. |
| bpm_lookup_valueA | Резолвит UUID записи справочника по человекочитаемому значению (точное совпадение eq). При fuzzy=true и пустом результате повторяет поиск через contains() и возвращает кандидатов. |
| bpm_find_fieldA | Находит поля по фрагменту русского/английского названия среди уже загруженных схем коллекций. Полезно когда пользователь оперирует «ИНН», «Город» и т.п. |
| bpm_describe_instanceA | Возвращает обзор инстанса: число коллекций, главные бизнес-сущности (Contact, Account, Activity, Lead, Opportunity, Order, Case — те, что реально присутствуют), счётчики записей в них, число пользовательских (Usr*) коллекций и кастомных полей в основных сущностях. Кеширует результат на 5 минут. Полезен в самом начале диалога с новым инстансом. |
| bpm_get_enum_valuesA | Возвращает значения справочника, к которому привязано lookup-поле указанной коллекции. Например, для Activity.ActivityCategory вернёт список всех категорий активностей с UUID и названиями. Полезно перед bpm_create_record/bpm_update_record для перечисления вариантов или поиска UUID по точному имени. |
| bpm_workflow_catalogA | Возвращает каталог типичных пользовательских сценариев работы с BPMSoft и какие tool-ы для них вызывать. Карта основных сущностей и их связей. Ограничения BPMSoft 1.8. Используйте в начале сессии, когда LLM-агент не знает с чего начать. |
| bpm_batch_createA | Создаёт несколько записей в одном $batch (только OData v4). Lookup-поля автоматически резолвятся. Поддерживает continue_on_error для пропуска ошибочных записей. |
| bpm_batch_updateA | Обновляет несколько записей в одном $batch (только OData v4). Lookup-поля резолвятся автоматически. Поддерживает continue_on_error. |
| bpm_batch_deleteA | Удаляет несколько записей по UUID в одном $batch (только OData v4). Поддерживает continue_on_error. Действие необратимо. |
| bpm_upload_fileA | Загружает локальный файл в SysImage: создаёт запись метаданных и кладёт бинарные данные. Опционально привязывает к указанной записи по полю-ссылке. |
| bpm_download_fileA | Скачивает бинарные данные из SysImage по UUID и сохраняет в файл (если указан save_path). |
| bpm_field_uploadA | PUT бинарных данных напрямую в поле сущности по схеме {Collection}({id})/{FieldName}. Используйте для произвольных бинарных полей (не только SysImage). |
| bpm_field_downloadB | GET бинарных данных напрямую из поля сущности по схеме {Collection}({id})/{FieldName}. Сохраняет в save_path или возвращает размер. |
| bpm_field_deleteC | DELETE бинарных данных в поле сущности. |
| bpm_register_contactA | Зарегистрировать контакт. Опционально создаёт/находит контрагента (Account) по имени и привязывает к нему контакт. Один вызов вместо create_record(Account)+create_record(Contact)+update_record. Все имена полей могут быть переданы на русском (caption) или латинице. |
| bpm_log_activityA | Зафиксировать активность (задача, звонок, встреча) с привязкой к записи. Тип активности и владелец резолвятся по тексту через справочники. Поддерживает связь с Contact/Account/Opportunity. |
| bpm_set_statusA | Установить статус записи по человекочитаемому имени. Сервер сам найдёт поле-статус в коллекции (StatusId/StageId) и разрешит UUID статуса в его справочнике. |
| bpm_search_unifiedA | Сквозной поиск по подстроке Name в основных коллекциях (Contact, Account, Lead, Opportunity). Возвращает плоский список совпадений с указанием коллекции и UUID. Подходит для запросов вида «найди всё про Иванова». |
| bpm_run_processA | Вызывает ProcessEngineService.svc/{ProcessName}/Execute. Передаёт входные параметры через query-string. Опционально возвращает результат указанного выходного параметра. Используется для запуска кастомных БП, обёртывающих сложную логику (например, ESQ-запросы с агрегацией, массовые операции, бизнес-логика). |
| bpm_exec_process_elementA | Вызывает ProcessEngineService.svc/ExecProcElByUId с UID элемента. Используется для возобновления приостановленных элементов (например, пользовательских задач) уже выполняющегося процесса. |
| bpm_post_feedA | Создаёт запись в коллекции SocialMessage для целевой записи (entity+id). Лента — основной канал комментариев BPMSoft. Параметры: collection (имя сущности), id (UUID записи), message (текст). Опционально: parent_id для ответа на сообщение. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| getting_started | Обзор сервера BPMSoft: ключевые сущности, типичные сценарии и инструменты. Используй этот prompt в начале сессии, чтобы быстро понять, что доступно. |
| quick_search | Сквозной поиск по подстроке в основных коллекциях (Contact, Account, Lead, Opportunity). Подсказывает использовать bpm_search_unified, а затем bpm_get_record для деталей. |
| create_contact_flow | Сценарий регистрации нового контакта (опционально с привязкой к контрагенту). Подсказывает использовать bpm_register_contact с указанными параметрами. |
| weekly_report | Подготовка сводки за последние N дней: новые контакты, активные сделки, завершённые задачи. Использует criteria-DSL и операторы относительных дат. |
| cleanup_duplicates_check | Поиск потенциальных дубликатов в коллекции по указанному полю. Только READ-операции — никаких удалений без подтверждения пользователя. |
| pipeline_analysis | Анализ воронки Opportunity: распределение по стадиям, средняя сумма, конверсии. При необходимости запрашивает схему через bpm_get_schema. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| bpmsoft_collections | Перечень всех доступных EntitySet (коллекций) BPMSoft с типами сущностей. Источник — $metadata. |
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/Catter58/mcpBPMSoft'
If you have feedback or need assistance with the MCP directory API, please join our Discord server