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 |
Capabilities
Features and capabilities supported by this server
| 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
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