Справочник MCP Config
Эта страница — компактный справочник, дополняющий основную документацию по MCP.
Для изучения концепций см.:
Форма корневой конфигурации
mcp_servers:
<server_name>:
command: "..." # stdio servers
args: []
env: {}
# OR
url: "..." # HTTP servers
headers: {}
enabled: true
timeout: 120
connect_timeout: 60
tools:
include: []
exclude: []
resources: true
prompts: true
Ключи сервера
| Ключ | Тип | Применяется к | Значение |
|---|---|---|---|
command |
string | stdio | Исполняемый файл для запуска |
args |
list | stdio | Аргументы для подпроцесса |
env |
mapping | stdio | Переменные окружения для подпроцесса |
url |
string | HTTP | Удалённая MCP-конечная точка |
headers |
mapping | HTTP | Заголовки для запросов к удалённому серверу |
enabled |
bool | both | Полностью пропустить сервер, если false |
timeout |
number | both | Тайм-аут вызова инструмента |
connect_timeout |
number | both | Тайм-аут начального подключения |
tools |
mapping | both | Политика фильтрации и вспомогательных инструментов |
auth |
string | HTTP | Метод аутентификации. Установите oauth для включения OAuth 2.1 с PKCE |
sampling |
mapping | both | Политика инициированных сервером LLM-запросов (см. руководство по MCP) |
Ключи политики tools
| Ключ | Тип | Значение |
|---|---|---|
include |
string or list | Белый список собственных MCP-инструментов сервера |
exclude |
string or list | Чёрный список собственных MCP-инструментов сервера |
resources |
bool-like | Включить/отключить list_resources + read_resource |
prompts |
bool-like | Включить/отключить list_prompts + get_prompt |
Семантика фильтрации
include
Если задан include, регистрируются только указанные собственные MCP-инструменты сервера.
tools:
include: [create_issue, list_issues]
exclude
Если задан exclude, а include — нет, регистрируются все собственные MCP-инструменты сервера, кроме указанных.
tools:
exclude: [delete_customer]
Приоритет
Если заданы оба, приоритет у include.
tools:
include: [create_issue]
exclude: [create_issue, delete_issue]
Результат:
-
create_issueвсё ещё разрешён -
delete_issueигнорируется, посколькуincludeимеет приоритет
Политика вспомогательных инструментов
Hermes может регистрировать следующие вспомогательные обёртки для каждого MCP-сервера:
Ресурсы:
-
list_resources -
read_resource
Промпты:
-
list_prompts -
get_prompt
Отключение ресурсов
tools:
resources: false
Отключение промптов
tools:
prompts: false
Регистрация с учётом возможностей
Даже если указано resources: true или prompts: true, Hermes регистрирует эти вспомогательные инструменты, только если MCP-сессия действительно предоставляет соответствующую возможность.
Поэтому это нормально:
-
вы включили промпты
-
но утилиты для промптов не появляются
-
потому что сервер не поддерживает промпты
enabled: false
mcp_servers:
legacy:
url: "https://mcp.legacy.internal"
enabled: false
Поведение:
-
нет попытки подключения
-
нет обнаружения
-
нет регистрации инструментов
-
конфигурация сохраняется для последующего использования
Поведение при пустом результате
Если фильтрация удаляет все собственные инструменты сервера и не регистрируются вспомогательные инструменты, Hermes не создаёт пустой набор MCP-инструментов для этого сервера.
Примеры конфигураций
Безопасный белый список GitHub
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"
tools:
include: [list_issues, create_issue, update_issue, search_code]
resources: false
prompts: false
Чёрный список Stripe
mcp_servers:
stripe:
url: "https://mcp.stripe.com"
headers:
Authorization: "Bearer ***"
tools:
exclude: [delete_customer, refund_payment]
Сервер документации только с ресурсами
mcp_servers:
docs:
url: "https://mcp.docs.example.com"
tools:
include: []
resources: true
prompts: false
Перезагрузка конфигурации
После изменения MCP-конфигурации перезагрузите серверы командой:
/reload-mcp
Именование инструментов
Собственные MCP-инструменты сервера становятся:
mcp_<server>_<tool>
Примеры:
-
mcp_github_create_issue -
mcp_filesystem_read_file -
mcp_my_api_query_data
Вспомогательные инструменты следуют тому же шаблону префиксов:
-
mcp_<server>_list_resources -
mcp_<server>_read_resource -
mcp_<server>_list_prompts -
mcp_<server>_get_prompt
Очистка имён
Дефисы (-) и точки (.) в именах серверов и инструментов заменяются на подчёркивания перед регистрацией. Это гарантирует, что имена инструментов являются допустимыми идентификаторами для API вызова функций LLM.
Например, сервер с именем my-api, предоставляющий инструмент list-items.v2, становится:
mcp_my_api_list_items_v2
Учитывайте это при написании фильтров include / exclude — используйте оригинальное имя MCP-инструмента (с дефисами/точками), а не очищенную версию.
Аутентификация OAuth 2.1
Для HTTP-серверов, требующих OAuth, установите auth: oauth в записи сервера:
mcp_servers:
protected_api:
url: "https://mcp.example.com/mcp"
auth: oauth
Поведение:
-
Hermes использует OAuth 2.1 PKCE-поток MCP SDK (обнаружение метаданных, динамическая регистрация клиента, обмен и обновление токенов)
-
При первом подключении открывается окно браузера для авторизации
-
Токены сохраняются в
~/.hermes/mcp-tokens/<server>.jsonи повторно используются между сессиями -
Обновление токенов автоматическое; повторная авторизация происходит только при сбое обновления
-
Применяется только к HTTP/StreamableHTTP транспорту (серверам на основе
url)