ErisPulse-ApiMCP 控制机器人的人工智能客户端
Tip
何时阅读本文:当你希望使用 Claude Desktop 等支持 MCP 的人工智能客户端直接控制你的机器人时阅读本文——发送消息、查看消息、调用模块、管理适配器、观察事件流——无需则可跳过。
ErisPulse-ApiMCP 通过 MCP(Model Context Protocol) 将机器人运行时功能开放给人工智能客户端:安装后,Claude Desktop 中将新增 14 个工具,人工智能可以代替你收发消息、排查模块问题、订阅群聊事件——机器人从“你管理的程序”转变为“人工智能的手和眼”。
Important
ApiMCP 需要单独安装,并且必须显式配置 token 后桥接功能才能启用:
epsdk install ErisPulse-ApiMCP
在 config.toml 的 [ApiMCP] 节设置 token = "长随机串"(或环境变量 ERISPULSE_APIMCP_TOKEN)。未配置时除探活外所有端点返回 503,以避免令牌静默泄露。
Принцип работы
Двухуровневая структура, без каких-либо зависимостей от ИИ в самом роботе:
- Внутри процесса робота: модуль ApiMCP подключает REST-мост (
/apimcp/*, с аутентификацией по токену, по умолчанию ограничение 30 запросов/минуту) к встроенного HTTP-сервера фреймворка. - В отдельном процессе: команда
erispulse-apimcpзапускает stdio-сервер с помощью официальногоmcpSDK и перенаправляет вызовы инструментов MCP на REST-мост робота.
Claude Desktop ──MCP(stdio)──► erispulse-apimcp ──HTTP──► REST-мост в процессе робота ──► sdk.*
Если робот не работает или мост не настроен, инструмент возвращает понятную ошибку и указания по устранению неполадок, не выбрасывая стек вызовов.
Подключение Claude Desktop
Отредактируйте файл claude_desktop_config.json (Windows: %APPDATA%\Claude\; macOS: ~/Library/Application Support/Claude/):
{
"mcpServers": {
"erispulse": {
"command": "erispulse-apimcp",
"env": {
"ERISPULSE_APIMCP_URL": "http://127.0.0.1:8000",
"ERISPULSE_APIMCP_TOKEN": "ваш токен"
}
}
}
}
После сохранения файла перезапустите Claude Desktop полностью. Если в списке инструментов появится сервер erispulse, значит подключение успешно. Любой клиент, поддерживающий MCP stdio server (Claude Code, Cursor и т. д.), может подключиться таким же образом.
Обзор 14 инструментов
| Категория | Инструмент | Описание |
|---|---|---|
| Модуль | list_modules / get_module_info / call_module / reload_module |
Просмотр и вызов открытых сервисов загруженных модулей, запуск горячей перезагрузки |
| Адаптер | list_adapters / get_adapter_status / reload_adapter |
Статус онлайн-платформы; перезагрузка адаптера по умолчанию отключена |
| Сообщения | send_message / recent_messages |
Отправка текста/изображений/аудио/видео/файлов на любую платформу; просмотр последних сообщений через transcript |
| События | subscribe_events / unsubscribe / poll_events |
Подписка на события сообщений/уведомлений и т.д., кольцевой буфер (по умолчанию 1000 сообщений), инкрементальный опрос |
| Рантайм | get_topology / sdk_health |
Топология рантайма (обезличенная) и сводка здоровья |
Типичное применение: AI сначала вызывает subscribe_events(["message"]), затем периодически использует poll_events для наблюдения за разговором в группе, чтобы решить, нужно ли вставить сообщение через send_message или вызвать функциональность модуля через call_module.
Ключевые моменты безопасности
- Токен — это полный контроль: токен позволяет читать сообщения, отправлять сообщения и вызывать методы модулей из белого списка. Никогда не добавляйте токен в репозиторий или не публикуйте в общедоступных каналах; в сценариях с несколькими арендаторами создавайте несколько экземпляров бота.
- Минимальные права доступа:
module_call_whitelistограничивает список вызываемых модулей (поддерживается точный доступ по форматумодуль.метод),send_target_whitelistограничивает целевые адреса отправки (например, только определённая группа),allow_adapter_reloadоставьте по умолчанию отключённым. - Только для локального использования: при использовании только на локальной машине установите фреймворк HTTP-сервера как
server.host = "127.0.0.1"; при использовании на нескольких машинах необходимо использовать внутреннюю сеть + обратный прокси + TLS. - Вывод данных проходит очистку по ключам (ключи, относящиеся к ключам/пути, полностью удаляются); глубокая очистка — это обязанность самого модуля, не открывайте подписки на чувствительные сессии.
Полный список конфигурационных параметров (емкость буфера, окно восстановления, белый список типов событий и т.д.) и подробности REST-эндпоинтов см. в README проекта.
Далее
- Хотите, чтобы ИИ активно участвовал в чате, а не просто подчинялся командам? QvQChat — это позитивное направление — интеллектуальные агенты активно общаются и выполняют задачи, см. Общий интеллектуальный агент QvQChat; ApiMCP — это обратное направление — внешний ИИ управляет ботом, оба модуля можно устанавливать одновременно.
- Хотите понять, откуда берутся данные последних сообщений? Приемник транскриптов сессий
- Хотите узнать о HTTP-сервере бота? Система маршрутизации