shm-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@shm-mcp find user ivan@example.com and show their services and balance"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
shm-mcp
Standalone MCP-сервер для биллинговой панели SHM (форк danuk/shm, версия 2.15.0). Отдельный, самодостаточный сервер: не делит код с remnawave-mcp, но следует той же архитектуре и тому же слою безопасности (см. mcp/ARCHITECTURE.md).
Назначение
Сервер даёт MCP-клиенту (Claude Code и т.п.) один инструмент на каждую операцию method + path из двух OpenAPI-спек SHM:
Спека | Файл | Путей | Операций |
admin ( |
| 35 | 81 |
user ( |
| 39 | 67 |
Итого 148 сгенерированных инструментов + 4 служебных (api_search, api_describe, api_status, api_audit_tail).
Инструменты не пишутся руками: scripts/generate.ts читает обе спеки и генерирует src/generated/tools.ts. Файл коммитится — сервер не читает спеку в рантайме.
Related MCP server: mcp-server-enterprise-tools
Установка
npm ci
npm run buildТребуется Node.js ≥ 22.
Конфигурация
Скопируйте .env.example в .env и заполните:
cp .env.example .envКлючевые переменные (полный список с комментариями — в .env.example):
SHM_BASE_URL— базовый URL панели, уже включает/shm/v1(напримерhttps://admin.example.com/shm/v1). Пути из спеки (/admin/user,/user/service, …) относительные и дописываются к этому значению.SHM_ADMIN_AUTH=login:password(илиSHM_ADMIN_AUTH_FILE=/path/to/file— приоритет у файла) — Basic-авторизация администратора SHM. Через один и тот же админский Basic доступны и/admin/*, и/user/*(через опциональныйuser_id, см. ниже).MCP_MODE=ro|rw(по умолчаниюro).MCP_DENY,MCP_DENY_DEFAULTS,MCP_CONFIRM,MCP_DRY_RUN— слой безопасности (см. ниже).MCP_AUDIT_LOG,MCP_TIMEOUT_MS,MCP_MAX_RESPONSE_BYTES,MCP_TOOL_FILTER,MCP_REDACT.MCP_HTTP_PORT/MCP_HTTP_TOKEN— опциональный Streamable HTTP транспорт.
Секреты — только через env или *_FILE; .env никогда не коммитится.
Режимы безопасности
ro (по умолчанию)
Разрешён только GET. Всё остальное (POST/PUT/DELETE/PATCH) запрещено безусловно.
Но не все GET безопасны: часть GET-эндпоинтов SHM мутирует состояние ("мутирующие GET"). Они запрещены даже в ro:
GET /promo/apply/{code}— применяет промокод;GET /template/{id}(user-спека) — выполняет шаблон (в отличие отGET /admin/template/{id}, которое просто читает шаблон и остаётся разрешённым вro);GET /public/{id}— выполняет публичный шаблон;GET /user/passwd/reset*,GET /user/passkey/register,GET /user/auth/passkey,GET /user/otp/setup— операции аутентификации/восстановления доступа.
rw
Разрешено всё, кроме MCP_DENY и дефолтного denylist (см. ниже). Любая не-GET операция без confirm: true возвращает превью (метод, URL, заголовки без Authorization, тело) и не выполняется — это защита от случайного вызова. Второй вызов с confirm: true выполняет операцию.
MCP_DRY_RUN=1 — не-GET никогда не отправляется на сервер, всегда превью, независимо от confirm.
Дефолтный denylist (MCP_DENY_DEFAULTS=1, включён по умолчанию)
Правило | Почему |
| отдаёт приватные SSH-ключи серверов |
| удаляет глобальную конфигурацию панели |
| помечает задачу выполненной без реального выполнения |
| принудительно перезаписывает состояние задачи |
| добавляет задачу в спул вручную |
| запускает массовую рассылку (задача на всех клиентов) |
| удаляет платёж клиента |
| удаляет бонус клиента |
| удаляет списание по услуге |
Важно: POST /admin/spool/manual/{action} — один инструмент (admin_spool_manual_by_action_post) на все действия (retry|resume|pause|success|set|add). Deny-правило проверяется после подстановки аргумента action в путь, поэтому action:"retry" разрешён (с confirm:true в rw), а action:"success"/"set"/"add" — запрещены, даже если формально это один и тот же MCP-инструмент.
Отключить дефолтный denylist: MCP_DENY_DEFAULTS=0 (не рекомендуется).
MCP_DENY — дополнительные правила
Через запятую, формат METHOD /prefix или просто /prefix (все методы):
MCP_DENY=POST /admin/user,DELETE /admin/configРедактирование секретов (MCP_REDACT=1 по умолчанию)
В ответах и в аудит-логе (но никогда в заголовках — Authorization не пишется вообще):
ключи вида
password,passwd,secret,token,api_key/apikey,private_key,authorization,cookie(регистронезависимо, на любой глубине вложенности — покрывает, например,settingsв ответах/admin/serverиvalueв/admin/config) заменяются на<redacted>целиком;строковые значения дополнительно сканируются на телеграм-токены бота (
bot<id>:<secret>) и наuser:pass@в URL, независимо от имени ключа.
Отключить: MCP_REDACT=0.
Формат ответа инструмента
Успех: content[0].text — JSON { "status": <http>, "ok": true|false, "data": <json|text>, "truncated": bool }.
Ошибка HTTP (не 2xx): то же самое, но isError: true.
Превью (не-GET без confirm, или MCP_DRY_RUN=1): { "preview": true, "method", "url", "headers": {без Authorization}, "body" }.
Отказ (deny): isError: true, { "ok": false, "denied": true, "reason": "..." }.
Служебные инструменты
api_search {query}— поиск по имени/пути/summary/тегу среди всех 148 инструментов (не зависит отMCP_TOOL_FILTER).api_describe {tool}— полная JSON Schema входа и заметки безопасности.api_status {}— режим, базовый хост (без пути/секрета), число инструментов, версия спеки (SPEC_VERSION), проверка доступностиGET /admin/user?limit=1(только код ответа, без данных).api_audit_tail {n}— последниеnзаписейMCP_AUDIT_LOG.
Подключение
Claude Code
claude mcp add shm -- node /abs/path/to/mcp/shm-mcp/dist/index.js(путь — абсолютный, после npm run build).
Любой другой MCP-клиент (stdio, generic JSON)
{
"mcpServers": {
"shm": {
"command": "node",
"args": ["/abs/path/to/mcp/shm-mcp/dist/index.js"],
"env": {
"SHM_BASE_URL": "https://admin.example.com/shm/v1",
"SHM_ADMIN_AUTH": "login:password",
"MCP_MODE": "ro"
}
}
}
}Streamable HTTP (опционально)
MCP_HTTP_PORT=8787 MCP_HTTP_TOKEN=change-me npm run start:httpСлушает только 127.0.0.1; запросы без Authorization: Bearer <MCP_HTTP_TOKEN> отвергаются 401.
Правила имён инструментов
snake_case, ASCII, /^[a-z0-9_]+$/, ≤ 60 символов, уникальные. Спека не содержит operationId, поэтому имя строится из метода и пути:
admin: путь уже начинается с
/admin, поэтому сегменты пути (без повторного добавления префикса) +{param}→by_<param>+_<метод>:GET /admin/user/service→admin_user_service_getGET /admin/config/{key}→admin_config_by_key_getPOST /admin/spool/manual/{action}→admin_spool_manual_by_action_post
user: префикс
user_, но если путь уже начинается с/user, второйuserне повторяется:GET /service/order→user_service_order_getGET /user/pay/forecast→user_pay_forecast_get(неuser_user_pay_forecast_get)GET /user→user_get
Коллизии разрешаются автоматически генератором: единственная коллизия в текущей спеке — GET /service и GET /user/service оба дают user_service_get; для второго используется резервное имя без дедупликации — user_user_service_get.
user_id: админ действует от имени клиента
Все пути user-спеки (/user/*, /service, /promo, /telegram/*, /template/{id}, /public/{id}, /storage/*) вызываются через тот же админский Basic. Поэтому каждый из 67 user-инструментов получает необязательный query-параметр user_id ("admin acts on behalf of this user") — можно не указывать (тогда SHM решает по контексту сессии), а можно явно передать id клиента.
Примеры
admin_user_get — список клиентов:
{ "limit": 10, "offset": 0 }admin_user_search_get — поиск клиентов:
{ "limit": 10 }(параметр поиска передаётся так, как определён в спеке для данной операции — см. api_describe { "tool": "admin_user_search_get" }.)
admin_user_service_get — список услуг клиента:
{ "user_id": 123, "limit": 25 }admin_spool_get — список текущих фоновых задач:
{ "limit": 25, "offset": 0 }admin_template_get — список шаблонов (безопасно, только читает — в отличие от user_template_by_id_get, который выполняет шаблон и заблокирован в ro):
{ "limit": 25 }user_pay_forecast_get — прогноз оплаты для конкретного клиента (админ действует от его имени через user_id):
{ "user_id": 123 }Изменяющий вызов (пример превью → подтверждение) в rw:
// 1) без confirm — получаем превью
{ "action": "retry", "body": { "id": 42 } }
// ответ: { "preview": true, "method": "POST", "url": "...", "headers": {...}, "body": {...} }
// 2) с confirm:true — выполняется
{ "action": "retry", "body": { "id": 42 }, "confirm": true }(инструмент admin_spool_manual_by_action_post; action: "success"|"set"|"add" запрещены дефолтным denylist независимо от confirm.)
Аудит
Каждый вызов инструмента (включая отказы и превью) пишется в MCP_AUDIT_LOG (по умолчанию ./.audit/shm-mcp.jsonl, права 0600) построчно в формате JSON: время, инструмент, метод, URL, HTTP-статус (если был запрос), длительность, confirm, режим, результат (ok|denied|preview|error). Заголовок Authorization не пишется никогда; тело запроса пишется с редактированием секретов (см. выше).
Тесты
npm run typecheck
npm run build
npm testnpm test (vitest) — без сети: мокает fetch через vi.stubGlobal, покрывает генератор (число/уникальность/валидность имён инструментов), правила имён, таблицы гейта (ro/rw/deny/confirm/dry-run), редактирование секретов, клиент (сборка URL, Basic-заголовок, подстановка path-параметров, обрезка большого ответа), аудит, конфиг и сквозные сценарии через createToolRuntime.
npm run smoke — живой прогон: если .env существует (владелец сервера сам его заполнил), делает api_status и явный вызов admin_user_get с limit:1 против реального SHM_BASE_URL; если .env нет — печатает, что пропущено, и завершается с кодом 0. Агенты-разработчики .env не создают и креды не имеют.
Как перегенерировать инструменты при обновлении панели
На хосте SHM получить актуальные спеки:
curl http://127.0.0.1:8081/shm/v1/swagger_admin.json -o shm_admin_openapi.json curl http://127.0.0.1:8081/shm/v1/swagger.json -o shm_user_openapi.jsonСкопировать оба файла в
mcp/shm-mcp/spec/, заменив текущие (сохранить UTF-8 — русскиеsummaryв спеке важны для описаний инструментов).Перегенерировать и проверить:
npm run generate npm run typecheck npm run build npm testПросмотреть диф
src/generated/tools.ts— новые/удалённые/переименованные инструменты, обновитьMCP_DENY/README при необходимости (особенно если панель добавила новые мутирующие GET или опасные операции).
Available Tools
152 toolsadmin_config_by_key_deleteC
DELETE /admin/config/{key} Удалить значение или объект внутри объекта конфига Тег: Конфигурация Спека: admin
Inputs: key (required), value (required), confirm.
admin_config_by_key_getC
GET /admin/config/{key} Получить объект конфига Тег: Конфигурация Спека: admin
Inputs: key (required), limit, offset.
admin_config_by_key_postC
POST /admin/config/{key} Изменить объект в конфиге Тег: Конфигурация Спека: admin
Inputs: key (required), body, confirm.
admin_config_deleteC
DELETE /admin/config Удалить объект в конфиге Тег: Конфигурация Спека: admin
Inputs: key (required), confirm.
admin_config_getC
GET /admin/config Прочитать весь конфиг Тег: Конфигурация Спека: admin
Inputs: limit, offset.
admin_config_postC
POST /admin/config Изменить объект в конфиге Тег: Конфигурация Спека: admin
Inputs: body, confirm.
admin_config_putC
PUT /admin/config Создать объект в конфиге Тег: Конфигурация Спека: admin
Inputs: body, confirm.
admin_promo_deleteC
DELETE /admin/promo Удалить промокод Тег: Промокоды Спека: admin
Inputs: id (required), confirm.
admin_promo_getC
GET /admin/promo Список промокодов Тег: Промокоды Спека: admin
Inputs: limit, offset, user_id.
admin_promo_postC
POST /admin/promo Изменить промокод Тег: Промокоды Спека: admin
Inputs: body, confirm.
admin_promo_putD
PUT /admin/promo Генерация промокодов Тег: Промокоды Спека: admin
Inputs: body, confirm.
admin_server_deleteC
DELETE /admin/server Удалить сервер Тег: Сервера Спека: admin
Inputs: server_id (required), confirm.
admin_server_getC
GET /admin/server Получить список серверов Тег: Сервера Спека: admin
Inputs: limit, offset.
admin_server_group_deleteC
DELETE /admin/server/group Удалить группу серверов Тег: Группы серверов Спека: admin
Inputs: group_id (required), confirm.
admin_server_group_getC
GET /admin/server/group Получить список групп серверов Тег: Группы серверов Спека: admin
Inputs: limit, offset.
admin_server_group_postC
POST /admin/server/group Изменить группу серверов Тег: Группы серверов Спека: admin
Inputs: body, confirm.
admin_server_group_putC
PUT /admin/server/group Создать группу серверов Тег: Группы серверов Спека: admin
Inputs: body, confirm.
admin_server_identity_deleteB
DELETE /admin/server/identity Удалить SSH ключ Тег: Ключи SSH Спека: admin
Inputs: id (required), confirm.
admin_server_identity_generate_getC
GET /admin/server/identity/generate Сгенерировать SSH ключи Тег: Ключи SSH Спека: admin
Inputs: limit, offset.
admin_server_identity_getC
GET /admin/server/identity Список SSH ключей Тег: Ключи SSH Спека: admin
Inputs: limit, offset.
admin_server_identity_postC
POST /admin/server/identity Изменить SSH ключ Тег: Ключи SSH Спека: admin
Inputs: body, confirm.
admin_server_identity_putC
PUT /admin/server/identity Сохранить новый SSH ключ Тег: Ключи SSH Спека: admin
Inputs: body, confirm.
admin_server_postC
POST /admin/server Изменить сервер Тег: Сервера Спека: admin
Inputs: body, confirm.
admin_server_putC
PUT /admin/server Создать сервер Тег: Сервера Спека: admin
Inputs: body, confirm.
admin_service_children_getC
GET /admin/service/children Список дочерних услуг Тег: Услуги Спека: admin
Inputs: service_id (required), limit, offset.
admin_service_children_postC
POST /admin/service/children Изменить список дочерних услуг Тег: Услуги Спека: admin
Inputs: body, confirm.
admin_service_deleteC
DELETE /admin/service Удалить услугу Тег: Услуги Спека: admin
Inputs: service_id (required), confirm.
admin_service_event_deleteC
DELETE /admin/service/event Удалить событие Тег: События Спека: admin
Inputs: id (required), confirm.
admin_service_event_getC
GET /admin/service/event Список событий Тег: События Спека: admin
Inputs: limit, offset.
admin_service_event_postC
POST /admin/service/event Изменить событие Тег: События Спека: admin
Inputs: body, confirm.
admin_service_event_putC
PUT /admin/service/event Создать событие Тег: События Спека: admin
Inputs: body, confirm.
admin_service_getC
GET /admin/service Получить услугу Тег: Услуги Спека: admin
Inputs: limit, offset.
admin_service_order_getC
GET /admin/service/order Список услуг доступных для регистрации Тег: Услуги Спека: admin
Inputs: limit, offset.
admin_service_order_putC
PUT /admin/service/order Зарегистрировать услугу клиенту Тег: Услуги Спека: admin
Inputs: body, confirm.
admin_service_postC
POST /admin/service Изменить услугу Тег: Услуги Спека: admin
Inputs: body, confirm.
admin_service_putC
PUT /admin/service Создать услугу Тег: Услуги Спека: admin
Inputs: body, confirm.
admin_spool_deleteC
DELETE /admin/spool Удалить задачу Тег: Задачи Спека: admin
Inputs: id (required), confirm, user_id.
admin_spool_getC
GET /admin/spool Список текущих задач Тег: Задачи Спека: admin
Inputs: limit, offset, user_id.
admin_spool_history_getC
GET /admin/spool/history Список архива задач Тег: Задачи Спека: admin
Inputs: limit, offset, user_id.
admin_spool_manual_by_action_postC
POST /admin/spool/manual/{action} Изменить статус задачи вручную Тег: Задачи Спека: admin
Inputs: action (required), body, confirm.
admin_spool_postD
POST /admin/spool Изменить задачу Тег: Задачи Спека: admin
Inputs: body, confirm.
admin_spool_putC
PUT /admin/spool Создать задачу Тег: Задачи Спека: admin
Inputs: body, confirm.
admin_spool_statuses_getC
GET /admin/spool/statuses Статусы задач Тег: Задачи Спека: admin
Inputs: limit, offset.
admin_storage_manage_by_name_getC
GET /admin/storage/manage/{name} Получить объект хранилища Тег: Хранилище Спека: admin
Inputs: name (required), user_id (required), limit, offset.
admin_storage_manage_deleteC
DELETE /admin/storage/manage Удалить объект из хранилища Тег: Хранилище Спека: admin
Inputs: name (required), user_id (required), confirm.
admin_storage_manage_getC
GET /admin/storage/manage Получить список объектов хранилища Тег: Хранилище Спека: admin
Inputs: limit, offset, user_id.
admin_storage_manage_postC
POST /admin/storage/manage Изменить данные в объекте хранилища Тег: Хранилище Спека: admin
Inputs: body, confirm.
admin_storage_manage_putC
PUT /admin/storage/manage Создать объект в хранилище Тег: Хранилище Спека: admin
Inputs: body, confirm.
admin_template_by_id_getC
GET /admin/template/{id} Прочитать шаблон Тег: Шаблоны Спека: admin
Inputs: id (required), limit, offset.
admin_template_deleteC
DELETE /admin/template Удалить шаблон Тег: Шаблоны Спека: admin
Inputs: id (required), confirm.
admin_template_getC
GET /admin/template Список шаблонов Тег: Шаблоны Спека: admin
Inputs: limit, offset.
admin_template_postC
POST /admin/template Изменить шаблон Тег: Шаблоны Спека: admin
Inputs: body, confirm.
admin_template_putC
PUT /admin/template Создать шаблон Тег: Шаблоны Спека: admin
Inputs: body, confirm.
admin_user_bonus_deleteC
DELETE /admin/user/bonus Удалить бонус Тег: Бонусы Спека: admin
Inputs: id (required), user_id (required), confirm.
admin_user_bonus_getC
GET /admin/user/bonus Список бонусов клиентов Тег: Бонусы Спека: admin
Inputs: limit, offset, user_id.
admin_user_bonus_postC
POST /admin/user/bonus Изменить бонус Тег: Бонусы Спека: admin
Inputs: body, confirm.
admin_user_bonus_putC
PUT /admin/user/bonus Создать бонус Тег: Бонусы Спека: admin
Inputs: body, confirm.
admin_user_deleteC
DELETE /admin/user Удалить клиента Тег: Пользователи Спека: admin
Inputs: user_id (required), confirm.
admin_user_getC
GET /admin/user Список клиентов Тег: Пользователи Спека: admin
Inputs: limit, offset, user_id.
admin_user_passwd_postC
POST /admin/user/passwd Сменить пароль клиенту Тег: Пользователи Спека: admin
Inputs: body, confirm.
admin_user_pay_deleteB
DELETE /admin/user/pay Удалить платеж клиента Тег: Платежи Спека: admin
Inputs: id (required), user_id (required), confirm.
admin_user_pay_getD
GET /admin/user/pay Список платежей клиентов Тег: Платежи Спека: admin
Inputs: limit, offset, user_id.
admin_user_payment_putC
PUT /admin/user/payment Зачислить деньги клиенту Тег: Пользователи Спека: admin
Inputs: body, confirm.
admin_user_postC
POST /admin/user Изменить клиента Тег: Пользователи Спека: admin
Inputs: body, confirm.
admin_user_putC
PUT /admin/user Создать клиента Тег: Пользователи Спека: admin
Inputs: body, confirm.
admin_user_search_getD
GET /admin/user/search Поиск клиентов Тег: Пользователи Спека: admin
Inputs: limit, offset.
admin_user_service_activate_postC
POST /admin/user/service/activate Возобновить услугу клиента Тег: Услуги пользователей Спека: admin
Inputs: body, confirm.
admin_user_service_categories_getC
GET /admin/user/service/categories Получить список категорий услуг Тег: Услуги пользователей Спека: admin
Inputs: limit, offset.
admin_user_service_change_postC
POST /admin/user/service/change Сменить тариф услуги клиента Тег: Услуги пользователей Спека: admin
Inputs: body, confirm.
admin_user_service_deleteC
DELETE /admin/user/service Удалить услугу клиента Тег: Услуги пользователей Спека: admin
Inputs: user_id (required), user_service_id (required), confirm.
admin_user_service_getC
GET /admin/user/service Список услуг клиентов Тег: Услуги пользователей Спека: admin
Inputs: limit, offset, user_id.
admin_user_service_postC
POST /admin/user/service Изменить услугу клиента Тег: Услуги пользователей Спека: admin
Inputs: body, confirm.
admin_user_service_spool_getC
GET /admin/user/service/spool Получить список текущих задач для услуги клиента Тег: Услуги пользователей Спека: admin
Inputs: user_id (required), user_service_id (required), limit, offset.
admin_user_service_status_postC
POST /admin/user/service/status Сменить статус услуги клиента Тег: Услуги пользователей Спека: admin
Inputs: body, confirm.
admin_user_service_stop_postC
POST /admin/user/service/stop Остановить услугу клиента Тег: Услуги пользователей Спека: admin
Inputs: body, confirm.
admin_user_service_touch_postD
POST /admin/user/service/touch Обработать услугу Тег: Услуги пользователей Спека: admin
Inputs: body, confirm.
admin_user_service_withdraw_deleteC
DELETE /admin/user/service/withdraw Удалить списание клиента Тег: Списания Спека: admin
Inputs: user_id (required), withdraw_id (required), confirm.
admin_user_service_withdraw_getC
GET /admin/user/service/withdraw Получить список списаний клиентов Тег: Списания Спека: admin
Inputs: limit, offset, user_id.
admin_user_service_withdraw_postC
POST /admin/user/service/withdraw Изменить списание клиента Тег: Списания Спека: admin
Inputs: body, confirm.
admin_user_service_withdraw_putC
PUT /admin/user/service/withdraw Создать списание клиенту Тег: Списания Спека: admin
Inputs: body, confirm.
admin_user_session_putC
PUT /admin/user/session Сгенерировать session_id для клиента Тег: Пользователи Спека: admin
Inputs: body, confirm.
api_audit_tailB
Последние n записей журнала аудита (MCP_AUDIT_LOG).
Inputs: n.
api_describeC
Полная схема входа и заметки безопасности для указанного инструмента.
Inputs: tool (required).
api_searchA
Поиск инструментов SHM по имени/пути/описанию/тегу. Ищет по полному списку из обеих спек (admin+user), независимо от MCP_TOOL_FILTER.
Inputs: query (required).
api_statusA
Режим, базовый URL (без секрета), число инструментов, версия спеки; проверка доступности через GET /admin/user?limit=1 (только код ответа).
Inputs: no named parameters.
user_auth_passkey_getC
GET /user/auth/passkey Получить параметры публичной аутентификации Passkey Тег: Passkey Аутентификация Спека: user
Inputs: limit, offset, user_id.
user_auth_passkey_postC
POST /user/auth/passkey Аутентификация пользователя с помощью Passkey Тег: Passkey Аутентификация Спека: user
Inputs: body, confirm, user_id.
user_auth_postC
POST /user/auth
Авторизация (получение session_id)
Тег: Пользователи
Спека: user
Inputs: body, confirm, user_id.
user_autopayment_deleteC
DELETE /user/autopayment Удалить автоплатежи пользователя Тег: Пользователи Спека: user
Inputs: confirm, user_id.
user_autopayment_getC
GET /user/autopayment Список автоплатежей пользователя Тег: Пользователи Спека: user
Inputs: limit, offset, user_id.
user_captcha_getC
GET /user/captcha Получение капчи Тег: Капча Спека: user
Inputs: limit, offset, user_id.
user_email_deleteC
DELETE /user/email Удалить email пользователя Тег: Пользователи Спека: user
Inputs: confirm, user_id.
user_email_getC
GET /user/email Получить email пользователя Тег: Пользователи Спека: user
Inputs: limit, offset, user_id.
user_email_postC
POST /user/email Верифицировать email пользователя Тег: Пользователи Спека: user
Inputs: body, confirm, user_id.
user_email_putC
PUT /user/email Установить email пользователя Тег: Пользователи Спека: user
Inputs: body, confirm, user_id.
user_email_verify_postC
POST /user/email/verify Верификация email пользователя Тег: Пользователи Спека: user
Inputs: body, confirm, user_id.
user_getC
GET /user Получение пользователя Тег: Пользователи Спека: user
Inputs: limit, offset, user_id.
user_otp_deleteC
DELETE /user/otp Отключение OTP Тег: OTP Спека: user
Inputs: token (required), confirm, user_id.
user_otp_getD
GET /user/otp Статус OTP Тег: OTP Спека: user
Inputs: limit, offset, user_id.
user_otp_postC
POST /user/otp Проверка OTP Тег: OTP Спека: user
Inputs: body, confirm, user_id.
user_otp_putC
PUT /user/otp Включение OTP Тег: OTP Спека: user
Inputs: body, confirm, user_id.
user_otp_setup_postC
POST /user/otp/setup Настройка OTP Тег: OTP Спека: user
Inputs: body, confirm, user_id.
user_passkey_deleteC
DELETE /user/passkey Удалить зарегистрированный Passkey по идентификатору Тег: Passkey Настройки Спека: user
Inputs: credential_id (required), confirm, user_id.
user_passkey_getC
GET /user/passkey Список зарегистрированных Passkey Тег: Passkey Настройки Спека: user
Inputs: limit, offset, user_id.
user_passkey_postB
POST /user/passkey Переименовать зарегистрированный Passkey по идентификатору Тег: Passkey Настройки Спека: user
Inputs: body, confirm, user_id.
user_passkey_register_getC
GET /user/passkey/register Получить параметры регистрации Passkey Тег: Passkey Регистрация Спека: user
Inputs: limit, offset, user_id.
user_passkey_register_postC
POST /user/passkey/register Завершить регистрацию Passkey Тег: Passkey Регистрация Спека: user
Inputs: body, confirm, user_id.
user_passwd_postC
POST /user/passwd Сменить пароль пользователя Тег: Пользователи Спека: user
Inputs: body, confirm, user_id.
user_passwd_reset_postC
POST /user/passwd/reset Запрос на сброс пароля пользователя Тег: Пользователи Спека: user
Inputs: body, confirm, user_id.
user_passwd_reset_verify_getB
GET /user/passwd/reset/verify Проверка токена сброса пароля пользователя перед сменой пароля Тег: Пользователи Спека: user
Inputs: token (required), limit, offset, user_id.
user_passwd_reset_verify_postC
POST /user/passwd/reset/verify Сменить пароль пользователя по токену сброса Тег: Пользователи Спека: user
Inputs: body, confirm, user_id.
user_password_auth_deleteC
DELETE /user/password-auth Отключить вход по паролю Тег: Пользователи Спека: user
Inputs: confirm, user_id.
user_password_auth_getC
GET /user/password-auth Статус входа по паролю Тег: Пользователи Спека: user
Inputs: limit, offset, user_id.
user_password_auth_postC
POST /user/password-auth Включить вход по паролю Тег: Пользователи Спека: user
Inputs: body, confirm, user_id.
user_pay_forecast_getC
GET /user/pay/forecast Прогноз оплаты Тег: Платежи Спека: user
Inputs: limit, offset, user_id.
user_pay_getC
GET /user/pay Список платежей пользователя Тег: Платежи Спека: user
Inputs: limit, offset, user_id.
user_pay_paysystems_getC
GET /user/pay/paysystems Платежные системы Тег: Платежи Спека: user
Inputs: limit, offset, user_id.
user_postC
POST /user Изменить пользователя Тег: Пользователи Спека: user
Inputs: body, confirm, user_id.
user_promo_apply_by_code_getC
GET /promo/apply/{code} Применить промокод Тег: Промокоды Спека: user
Inputs: code (required), limit, offset, user_id.
user_promo_getD
GET /promo Список промокодов пользователя Тег: Промокоды Спека: user
Inputs: limit, offset, user_id.
user_public_by_id_getC
GET /public/{id} Выполнить публичный шаблон Тег: Шаблоны Спека: user
Inputs: id (required), limit, offset, user_id.
user_public_by_id_postC
POST /public/{id} Выполнить публичный шаблон с аргументами Тег: Шаблоны Спека: user
Inputs: id (required), body, confirm, user_id.
user_putC
PUT /user Регистрация пользователя Тег: Пользователи Спека: user
Inputs: body, confirm, user_id.
user_referrals_getC
GET /user/referrals Получение количества рефералов Тег: Пользователи Спека: user
Inputs: limit, offset, user_id.
user_service_change_postC
POST /user/service/change Сменить тариф Тег: Услуги пользователей Спека: user
Inputs: body, confirm, user_id.
user_service_deleteC
DELETE /user/service Удалить услугу пользователя Тег: Услуги пользователей Спека: user
Inputs: user_service_id (required), confirm, user_id.
user_service_getC
GET /service Информация об услуге Тег: Услуги Спека: user
Inputs: service_id (required), limit, offset, user_id.
user_service_order_getC
GET /service/order Список услуг для заказа Тег: Услуги Спека: user
Inputs: limit, offset, user_id.
user_service_order_putC
PUT /service/order Регистрация услуги Тег: Услуги Спека: user
Inputs: body, confirm, user_id.
user_service_stop_postC
POST /user/service/stop Остановить услугу пользователя Тег: Услуги пользователей Спека: user
Inputs: body, confirm, user_id.
user_storage_download_by_name_getC
GET /storage/download/{name} Скачать данные из хранилища Тег: Хранилище Спека: user
Inputs: name (required), limit, offset, user_id.
user_storage_manage_by_name_deleteC
DELETE /storage/manage/{name} Удалить данные из хранилища Тег: Хранилище Спека: user
Inputs: name (required), confirm, user_id.
user_storage_manage_by_name_getC
GET /storage/manage/{name} Прочитать данные из хранилища Тег: Хранилище Спека: user
Inputs: name (required), limit, offset, user_id.
user_storage_manage_by_name_postC
POST /storage/manage/{name} Изменить данные в хранилище Тег: Хранилище Спека: user
Inputs: name (required), body, confirm, user_id.
user_storage_manage_by_name_putC
PUT /storage/manage/{name} Создать данные в хранилище Тег: Хранилище Спека: user
Inputs: name (required), body, confirm, user_id.
user_storage_manage_deleteC
DELETE /storage/manage Удалить данные в хранилище Тег: Хранилище Спека: user
Inputs: name (required), confirm, user_id.
user_storage_manage_getC
GET /storage/manage Список данных Тег: Хранилище Спека: user
Inputs: limit, offset, user_id.
user_storage_manage_postC
POST /storage/manage Изменить данные в хранилище Тег: Хранилище Спека: user
Inputs: body, confirm, user_id.
user_storage_manage_putC
PUT /storage/manage Создать данные в хранилище Тег: Хранилище Спека: user
Inputs: body, confirm, user_id.
user_telegram_bot_by_template_postC
POST /telegram/bot/{template} Приём данных от Telegram Тег: Telegram bot Спека: user
Inputs: template (required), body, confirm, user_id.
user_telegram_user_deleteC
DELETE /telegram/user Удалить (отвязать) Telegram аккаунт пользователя Тег: Telegram bot Спека: user
Inputs: confirm, user_id.
user_telegram_user_getC
GET /telegram/user Получить настройки пользователя для Telegram бота Тег: Telegram bot Спека: user
Inputs: limit, offset, user_id.
user_telegram_user_postC
POST /telegram/user Изменить настройки пользователя для Telegram бота Тег: Telegram bot Спека: user
Inputs: body, confirm, user_id.
user_telegram_webapp_auth_getC
GET /telegram/webapp/auth Авторизация Telegram Тег: Telegram bot Спека: user
Inputs: initData (required), limit, offset, user_id.
user_telegram_web_auth_init_getC
GET /telegram/web/auth/init Инициализация Telegram Login OIDC (state, nonce, PKCE) Тег: Telegram bot Спека: user
Inputs: limit, offset, user_id.
user_telegram_web_auth_postC
POST /telegram/web/auth Авторизация через Telegram Login (OIDC id_token или legacy Widget) Тег: Telegram bot Спека: user
Inputs: body, confirm, user_id.
user_telegram_web_auth_start_getC
GET /telegram/web/auth/start Старт Telegram Login OIDC с HTTP redirect на Telegram OAuth Тег: Telegram bot Спека: user
Inputs: limit, offset, user_id.
user_telegram_web_callback_getC
GET /telegram/web/callback Callback endpoint для Telegram Login (OIDC code flow) Тег: Telegram bot Спека: user
Inputs: limit, offset, user_id.
user_template_by_id_getC
GET /template/{id} Выполнить шаблон Тег: Шаблоны Спека: user
Inputs: id (required), limit, offset, user_id.
user_template_by_id_postC
POST /template/{id} Выполнить шаблон с аргументами Тег: Шаблоны Спека: user
Inputs: id (required), body, confirm, user_id.
user_user_service_getD
GET /user/service Список услуг пользователя Тег: Услуги пользователей Спека: user
Inputs: limit, offset, user_id, user_service_id.
user_withdraw_getC
GET /user/withdraw Списания средств Тег: Пользователи Спека: user
Inputs: limit, offset, user_id.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 152 tools
Many tools come in near-duplicate pairs: collection-level and by_key variants of the same action (e.g. admin_config_post vs admin_config_by_key_post, user_storage_manage_put vs user_storage_manage_by_name_put both described as 'Создать данные'). Admin and user specs also mirror each other (admin_service_get vs user_service_get), so an agent must carefully weigh scope to pick correctly.
Names follow a largely predictable {scope}_{resource}_{path}_{httpverb} snake_case pattern (admin_promo_post, user_otp_delete), which is easy to parse. Minor deviations exist: the meta tools api_search/api_describe/api_status/api_audit_tail break the scheme, and the user CRUD tools drop the resource prefix (user_get, user_post, user_put).
152 tools is an extreme count that overwhelms selection and context. It is a raw 1:1 dump of two OpenAPI specs rather than a curated surface, so most tools do not earn individual places in an agent-facing set.
Because it is auto-generated from full admin and user specs, coverage is broad: CRUD, auth (passkey, OTP, Telegram), payments, storage, templates, and services are all present. Minor gaps may exist around non-exposed endpoints, but no obvious dead ends for core workflows.
Maintenance
Related MCP Connectors
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Hosted remote MCP for protected account access, permissions, activity history and supported undo.
A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAn MCP server exposing scoped, read-only enterprise operations tools with fail-closed credential handling. It returns opaque approval IDs for mutations and requires a separate operator approval command to release one-time capabilities.MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for regulated enterprises, providing per-tool RBAC, redacted audit logging, and structured error handling. Exposes bank tools for customer lookup, statement search, and dispute resolution over stdio and HTTPS transports.MIT
- AlicenseNot gradedqualityBmaintenanceProvides a governance proxy layer for MCP servers, enforcing per-tool allowlists, human approval for write operations, quotas, secret redaction, and a hash-chained audit log of all calls.MIT
- FlicenseNot gradedqualityCmaintenanceEnforces default-deny policies, budgets, and tamper-evident audit logging for MCP tool calls before they reach upstream servers.-