Перейти к содержимому

MCP Справочник по конфигурации

Эта страница — компактное справочное дополнение к основной документации по MCP.

Для концептуальных рекомендаций см.:

mcp_servers:
<server_name>:
command: "..." # stdio-серверы
args: []
env: {}
# или
url: "..." # HTTP-серверы
headers: {}
enabled: true
timeout: 120
connect_timeout: 60
tools:
include: []
exclude: []
resources: true
prompts: true
КлючТипПрименяется кЗначение
commandstringstdioИсполняемый файл для запуска
argsliststdioАргументы для подпроцесса
envmappingstdioПеременные окружения, передаваемые подпроцессу
urlstringHTTPУдалённая конечная точка MCP
headersmappingHTTPЗаголовки для запросов к удалённому серверу
enabledboolобаПолностью отключить сервер, если false
timeoutnumberобаТайм-аут вызова инструмента
connect_timeoutnumberобаТайм-аут первоначального подключения
toolsmappingобаПолитика фильтрации и служебных инструментов
authstringHTTPМетод аутентификации. Установите oauth, чтобы включить OAuth 2.1 с PKCE
samplingmappingобаПолитика LLM-запросов, инициируемых сервером (см. руководство по MCP)
КлючТипЗначение
includestring or listБелый список нативных серверных инструментов MCP
excludestring or listЧёрный список нативных серверных инструментов MCP
resourcesbool-подобноеВключить или отключить list_resources и read_resource
promptsbool-подобноеВключить или отключить list_prompts и get_prompt

Если задан include, регистрируются только эти нативные серверные инструменты MCP.

tools:
include: [create_issue, list_issues]

Если задан 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 регистрирует эти utility-инструменты, только если сессия MCP действительно предоставляет соответствующую возможность.

Поэтому это нормально:

  • вы включаете prompts
  • но utility-инструменты prompts не появляются
  • потому что сервер не поддерживает prompts
mcp_servers:
legacy:
url: "https://mcp.legacy.internal"
enabled: false

Поведение:

  • нет попытки подключения
  • нет обнаружения
  • нет регистрации инструментов
  • конфигурация остаётся на месте для последующего повторного использования

Если фильтрация удаляет все серверные инструменты и при этом не регистрируются служебные, Hermes не создаёт пустой MCP-toolset для этого сервера.

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
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 (с hyphens/dots), а не санитизированную версию.

Для серверов 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)