Перейти к содержанию

Config Reference

On this page

Эта страница — компактный справочник, дополняющий основную документацию по MCP. Для концептуального руководства см.: * MCP (Model Context Protocol) * Использование MCP с Hermes

Формат корневой конфигурации

[code] mcp_servers: : command: "..." # stdio-серверы args: [] env: {}

    # ИЛИ
    url: "..."          # HTTP-серверы
    headers: {}

    enabled: true
    timeout: 120
    connect_timeout: 60
    tools:
      include: []
      exclude: []
      resources: true
      prompts: true

[/code]

Ключи сервера

Ключ Тип Применяется к Значение
command string stdio Исполняемый файл для запуска
args list stdio Аргументы для подпроцесса
env mapping stdio Переменные окружения для подпроцесса
url string HTTP Удалённая MCP-точка
headers mapping HTTP Заголовки для запросов к удалённому серверу
enabled bool оба Полностью пропустить сервер, если false
timeout number оба Тайм-аут вызова инструмента
connect_timeout number оба Тайм-аут начального подключения
tools mapping оба Политика фильтрации и служебных инструментов
auth string HTTP Метод аутентификации. Установите oauth для включения OAuth 2.1 с PKCE
sampling mapping оба Политика LLM-запросов, инициированных сервером (см. руководство по MCP)

Ключи политики tools

Ключ Тип Значение
include string или list Белый список родных MCP-инструментов сервера
exclude string или list Чёрный список родных MCP-инструментов сервера
resources bool-like Включение/отключение list_resources + read_resource
prompts bool-like Включение/отключение list_prompts + get_prompt

Семантика фильтрации

include

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

[code] tools: include: [create_issue, list_issues]

[/code]

exclude

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

[code] tools: exclude: [delete_customer]

[/code]

Приоритет

Если заданы оба параметра, приоритет у include.

[code] tools: include: [create_issue] exclude: [create_issue, delete_issue]

[/code]

Результат:

  • create_issue всё равно разрешён
  • delete_issue игнорируется, так как include имеет приоритет

Политика служебных инструментов

Hermes может регистрировать следующие служебные обёртки для каждого MCP-сервера:

Ресурсы:

  • list_resources
  • read_resource

Промпты:

  • list_prompts
  • get_prompt

Отключение ресурсов

[code] tools: resources: false

[/code]

Отключение промптов

[code] tools: prompts: false

[/code]

Регистрация с учётом возможностей

Даже при resources: true или prompts: true Hermes регистрирует эти служебные инструменты только в том случае, если MCP-сессия действительно предоставляет соответствующую возможность.

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

  • вы включаете промпты,
  • но служебные инструменты для промптов не появляются,
  • потому что сервер не поддерживает промпты.

enabled: false

[code] mcp_servers: legacy: url: "https://mcp.legacy.internal" enabled: false

[/code]

Поведение:

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

Поведение при пустом результате

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

Примеры конфигураций

Безопасный белый список для GitHub

[code] 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

[/code]

Чёрный список для Stripe

[code] mcp_servers: stripe: url: "https://mcp.stripe.com" headers: Authorization: "Bearer ***" tools: exclude: [delete_customer, refund_payment]

[/code]

Сервер документации только с ресурсами

[code] mcp_servers: docs: url: "https://mcp.docs.example.com" tools: include: [] resources: true prompts: false

[/code]

Перезагрузка конфигурации

После изменения конфигурации MCP перезагрузите серверы командой:

[code] /reload-mcp

[/code]

Именование инструментов

Родные MCP-инструменты сервера становятся:

[code] mcp__

[/code]

Примеры:

  • 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, становится:

[code] mcp_my_api_list_items_v2

[/code]

Учитывайте это при написании фильтров include / exclude — используйте оригинальное имя MCP-инструмента (с дефисами/точками), а не санитизированную версию.

Аутентификация OAuth 2.1

Для HTTP-серверов, требующих OAuth, укажите auth: oauth в записи сервера:

[code] mcp_servers: protected_api: url: "https://mcp.example.com/mcp" auth: oauth

[/code]

Поведение: