MCP интеграция (Model Context Protocol)
Источник
1. Что такое MCP
MCP (Model Context Protocol) позволяет Hermes подключаться к внешним серверам инструментов — GitHub, базы данных, файловые системы, браузеры, внутренние API и т.д.
Что даёт MCP:
- Доступ к экосистемам внешних инструментов без написания нативного инструмента Hermes
- Локальные stdio серверы и удалённые HTTP MCP серверы в одном конфиге
- Автоматическое обнаружение и регистрация инструментов при запуске
- Утилиты для MCP ресурсов и промптов (если поддерживается сервером)
- Фильтрация по серверам — показывать только нужные инструменты
2. Быстрый старт
1. MCP уже установлен (входит в стандартную установку)
2. Добавление MCP сервера в config.yaml:
3. Запуск:
4. Использование:
3. Каталог: установка Nous-approved MCP
Hermes поставляется с каталогом проверенных MCP серверов:
Статусы в каталоге:
available— доступен для установкиenabled— установлен и включёнinstalled (disabled)— установлен, но выключен
Выбор инструментов при установке:
Обновление выбора инструментов:
4. Два типа MCP серверов
Stdio серверы (локальные):
Когда использовать:
- Сервер установлен локально
- Нужен низкозадержечный доступ к локальным ресурсам
- Документация показывает
command,args,env
HTTP серверы (удалённые):
Когда использовать:
- Сервер размещён на другом хосте
- Организация предоставляет внутренние MCP эндпоинты
- Не хотите запускать локальный подпроцесс
5. OAuth-аутентифицированные HTTP серверы
Большинство хостинговых MCP серверов (Linear, Sentry, Atlassian, Asana, Figma, Stripe) требуют OAuth 2.1:
При первом подключении Hermes:
- Печатает URL авторизации
- Открывает браузер
- Ждёт callback на локальном loopback порте
- Кэширует токены в
~/.hermes/mcp-tokens/<server>.json
Для удалённых/hедлов хостов:
Вставка URL (без настройки): Hermes печатает "Or paste the redirect URL here…"
SSH port forward:
OAuth для Google Drive/Atlassian (без автоматической регистрации):
Затем: hermes mcp login googledrive
6. mTLS / клиентские сертификаты
7. Справочник ключей конфигурации
| Ключ | Тип | Описание |
|---|---|---|
command | string | Исполняемый файл для stdio MCP |
args | list | Аргументы для stdio сервера |
env | mapping | Переменные окружения для stdio сервера |
url | string | HTTP MCP эндпоинт |
headers | mapping | HTTP заголовки |
client_cert | string/list | Клиентский сертификат для mTLS |
client_key | string | Путь к приватному ключу |
timeout | number | Таймаут вызова инструмента |
connect_timeout | number | Таймаут подключения |
enabled | bool | Если false, сервер пропускается |
supports_parallel_tool_calls | bool | Разрешить параллельные вызовы |
tools | mapping | Фильтрация инструментов |
8. Минимальные примеры
Stdio:
HTTP:
9. Встроенные пресеты
| Пресет | Что настраивает |
|---|---|
codex | Codex CLI MCP сервер (codex mcp-server по stdio) |
10. Регистрация MCP инструментов
Hermes добавляет префикс к MCP инструментам для избежания коллизий:
| Сервер | MCP инструмент | Зарегистрированное имя |
|---|---|---|
filesystem | read_file | mcp_filesystem_read_file |
github | create-issue | mcp_github_create_issue |
my-api | query.data | mcp_my_api_query_data |
11. Утилиты MCP
При поддержке сервером Hermes регистрирует утилиты:
list_resourcesread_resourcelist_promptsget_prompt
Важно: Утилиты регистрируются только если сервер поддерживает эти операции.
12. Фильтрация по серверам
Отключение сервера:
Белый список инструментов:
Чёрный список инструментов:
Приоритет: include имеет приоритет над exclude
Отключение утилит:
Полный пример:
13. Поведение во время выполнения
Обнаружение:
Hermes обнаруживает MCP серверы при запуске и регистрирует их инструменты.
Динамическое обнаружение инструментов:
Серверы могут уведомлять Hermes об изменении доступных инструментов через notifications/tools/list_changed.
Перезагрузка:
Toolsets:
Каждый MCP сервер создаёт runtime toolset: mcp-<server>
14. Безопасность MCP
Фильтрация stdio окружения:
Только настроенные env + безопасные системные переменные.
Контроль на уровне конфига:
- Отключение опасных инструментов
- Минимальный белый список для чувствительных серверов
- Отключение утилит ресурсов/промптов
15. Параллельные вызовы инструментов
По умолчанию MCP инструменты выполняются последовательно. Для параллельного выполнения:
Важно: Включайте только для серверов с инструментами, безопасными для параллельного выполнения.
16. MCP Sampling
MCP серверы могут запрашивать LLM инференс от Hermes через sampling/createMessage:
Для отключения:
17. Hermes как MCP сервер
Hermes может быть MCP сервером для других агентов (Claude Code, Cursor, Codex):
Конфигурация MCP клиента:
Доступные инструменты:
| Инструмент | Описание |
|---|---|
conversations_list | Список активных conversations |
conversation_get | Информация о conversation |
messages_read | Чтение истории сообщений |
attachments_fetch | Извлечение вложений |
events_poll | Опрос новых событий |
events_wait | Блокирующий ожидание событий |
messages_send | Отправка сообщения |
channels_list | Список доступных целей |
permissions_list_open | Список ожидающих утверждений |
permissions_respond | Утверждение/отклонение запроса |
Опции:
18. Примеры использования
GitHub с минимальным набором инструментов:
Stripe без опасных действий:
Файловая система для проекта:
19. Устранение неполадок
MCP сервер не подключается:
Инструменты не появляются:
- Сервер не подключился
- Обнаружение не удалось
- Фильтр исключил инструменты
- Утилита не поддерживается сервером
- Сервер отключён через
enabled: false
20. Windows и MCP
| Функция | Статус на Windows |
|---|---|
| Stdio серверы | Работает |
| HTTP серверы | Работает |
| OAuth | Работает |
| mTLS | Работает |
| Каталог | Работает |
| Hermes как MCP сервер | Работает |
| Parallel tool calls | Работает |
| MCP Sampling | Работает |