ErisPulse ErisPulse
Открыть интерактивную версию →
Разделы страницы
Статическое зеркало — интерактивная версия является основной Открыть интерактивную версию →

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-сервер с помощью официального mcp SDK и перенаправляет вызовы инструментов 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-сервере бота? Система маршрутизации