Как подключить MCP-сервер к Hermes Agent: пошаговая настройка и ограничение прав
Коротко. MCP-сервер — это отдельная программа или веб-сервис, который отдаёт агенту готовые инструменты: читать файлы, искать по документации, работать с задачами в трекере. В Hermes Agent каждый такой сервер — одна запись в блоке mcp_servers файла ~/.hermes/config.yaml. Записи бывают двух видов: локальная (Hermes сам запускает программу: ключи command и args) и удалённая (адрес url). Добавить сервер можно командой hermes mcp add <имя> или прямо в файле, проверить — hermes mcp test <имя>, применить — новой сессией или командой /reload-mcp. Готовые серверы лежат в каталоге: hermes mcp catalog показывает 66 записей, ставится любая одной командой hermes mcp install <имя>. Три вещи, о которые спотыкаются чаще всего. Во-первых, --args в команде hermes mcp add должен стоять последним: всё, что после него, уходит в запускаемую программу. Во-вторых, по умолчанию сервер получает полное доверие (trust: full), и Hermes не спрашивает подтверждения перед вызовом его инструментов, в том числе тех, что меняют данные. Спрашивать начинает только при trust: untrusted. В-третьих, одна неверная отступом строка в config.yaml отключает все настройки сразу, и серверы пропадают вместе с остальным. Ниже порядок действий с реальными ответами программы.
На чём это проверено
Команды, ключи конфигурации и значения по умолчанию сверены с документацией и исходным кодом Hermes Agent v0.23.1. Это последний стабильный релиз на момент проверки, 10 ноября 2026 года; версия установленного агента показывает команда hermes --version.
- Проверено вживую в изолированной копии агента: домашняя папка во временном каталоге, никаких боевых ключей и данных. Подключал официальный сервер файловой системы
@modelcontextprotocol/server-filesystem(версия пакета 1.0.0), каталожный серверdeepwikiи два учебных сервера на Python SDK MCP: локальный и HTTP с токеном. Ответы Hermes ниже взяты из этих запусков. Пути и имена пользователя заменены нейтральными. - Проверено по документации и коду, но не запускалось: вход через OAuth (
hermes mcp login), каталожные записи, которым нужны ключи или аккаунты (Notion, Linear, Stripe и другие), и отказ от подтверждений на серверах с полным доверием. Такие места помечены словами «по документации». - Нейросеть в проверке не участвовала. Я проверял, что клиент Hermes подключает сервер, регистрирует инструменты и вызывает их. Как конкретная модель будет выбирать эти инструменты в диалоге, зависит от модели, и этого здесь не измерялось.
Hermes обновляется часто, поэтому перед правкой боевой конфигурации сверьтесь со справочником по настройке MCP для вашей версии.
Что понадобится
Статья предполагает, что агент уже стоит и отвечает: провайдер подключён, модель выбрана. Если нет, сначала пройдите установку Hermes Agent и первичную настройку: ключи, модель и мессенджер. Версию проверяем так:
hermes --version
Hermes Agent v0.23.1 (2026.9.24) · stable · local 3b4215785882
Дальше по ситуации:
- для локального сервера на Node.js нужен либо запускаемый файл сервера, либо пакет, который скачает
npx. Дляnpx-серверов Hermes использует собственную управляемую копию Node в~/.hermes/tools/. На минимальной установке Linux ей может не хватить системной библиотекиlibatomic1: в моём прогоне установка упёрлась именно в это, и ниже в таблице сбоев есть, как выглядит ошибка и что делать; - для удалённого сервера нужен его адрес и способ входа: токен в заголовке или OAuth;
- права на запись в
~/.hermes/: там лежатconfig.yaml(настройки) и.env(секреты).
Что такое MCP-сервер с точки зрения агента
MCP (Model Context Protocol) — открытый протокол, по которому программа сообщает агенту, что она умеет. Описание протокола есть на modelcontextprotocol.io. Сервер объявляет инструменты (tools): «прочитать файл», «найти задачи». По желанию он отдаёт ещё ресурсы (данные, которые можно прочитать) и шаблоны запросов (prompts). Hermes выступает клиентом: на старте сессии подключается ко всем серверам из mcp_servers, запрашивает список и регистрирует их инструменты наравне со встроенными. Дальше агент вызывает их сам, когда они нужны для задачи.
Подключение бывает двух видов:
- Локальное (stdio). Hermes запускает программу командой из
commandи общается с ней через стандартные потоки. Так работают пакеты вроде@modelcontextprotocol/server-filesystem. - Удалённое (HTTP). Hermes обращается к сервису по адресу
url. По умолчанию это потоковый HTTP; для серверов, которые умеют только SSE, в записи указываетсяtransport: sse.
Шаг 1. Самый короткий путь: каталог готовых серверов
В репозитории Hermes лежит каталог серверов, которые проверили и приняли сами разработчики проекта. Они выключены по умолчанию: ставьте только то, что нужно. Список выводится одной командой:
hermes mcp catalog
Ответ начинается строкой MCP Catalog + configured servers: и дальше идут строки «имя, состояние, описание». В v0.23.1 в каталоге 66 записей, среди них Notion, Linear, Stripe, Airtable, Asana, ClickUp, Monday, Intercom, Calendly, Atlassian, Sentry, Supabase, Figma, Grafana, GitLab, WordPress.com и официальный сервер n8n. Пример в документации показывает запись github, но в каталоге v0.23.1 её нет (есть gitlab), так что ориентируйтесь на вывод команды, а не на примеры из текста.
Самый простой для пробы сервер — deepwiki: он отвечает на вопросы по публичным репозиториям GitHub и не требует ни аккаунта, ни ключей. Ставим:
hermes mcp install deepwiki
Реальный ответ:
Installing MCP 'deepwiki'
Ask questions about any public GitHub repo (Devin's DeepWiki).
Source: https://docs.devin.ai/work-with-devin/deepwiki-mcp
Probing 'deepwiki' for available tools...
✓ Installed 'deepwiki' (enabled). Start a new Hermes session to load its tools.
No account or credentials needed — tools are available as soon as the
session restarts.
Команда сама подключилась к серверу, проверила его и дописала запись в config.yaml:
mcp_servers:
deepwiki:
url: https://mcp.deepwiki.com/mcp
enabled: true
Проверка соединения:
hermes mcp test deepwiki
Testing 'deepwiki'...
Transport: HTTP → https://mcp.deepwiki.com/mcp
Auth: none
✓ Connected (3757ms)
✓ Tools discovered: 3
ask_wiki_question Ask any question about a GitHub repository's codebase a...
read_wiki_contents View documentation about a GitHub repository.
read_wiki_structure Get a list of documentation topics for a GitHub reposit...
Что важно знать про каталог:
- Установка запускает чужой код. Запись из каталога может клонировать репозиторий и выполнять команды установки (
pip install,npm install). По документации, перед установкой стоит прочитать манифест записи в папкеoptional-mcps/<имя>/manifest.yamlрепозитория: полеsource(откуда берётся код), блокinstall.bootstrap(что будет выполнено) иtransport.command(что будет запускаться). - Удалённый сервер — это чужая сторона. Всё, что агент отправит в
deepwikiили в Notion, уходит на серверы поставщика. Для закрытых данных заранее решите, допустимо ли это. - Записи с аккаунтом требуют ключ (Hermes спросит его при установке и сохранит в
~/.hermes/.env) или вход через OAuth. По документации, после ввода учётных данных установщик показывает список инструментов сервера с флажками, и в конфиг попадают только отмеченные. Эту часть я не запускал.
Теперь о том, чего в каталоге нет. Среди 66 записей нет ни Битрикс24, ни amoCRM, ни 1С, ни Яндекс-сервисов, ни Telegram: я проверил имена всех записей в репозитории на теге v0.23.1. Для таких систем остаются два пути: найти готовый сервер у самого вендора или написать тонкий сервер над API вашей системы. Второе — наша работа: подключим к агенту 1С, Битрикс24 или CRM собственным MCP-сервером с урезанным набором инструментов. Если вы делаете подключение сами, шаги ниже подойдут и для чужих серверов, и для своих.
Шаг 2. Подключаем локальный сервер (stdio)
Возьмём официальный сервер файловой системы и ограничим его одной папкой: агент сможет читать и менять файлы только внутри неё. Первый вариант — командой:
hermes mcp add files --command npx --args -y @modelcontextprotocol/server-filesystem /home/user/documents
Второй — записью в config.yaml (этот пример взят из документации Hermes):
mcp_servers:
files:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/documents"]
Порядок параметров в команде имеет значение. По описанию в коде, --args «должен быть последним»: всё, что стоит после него, команда считает аргументами запускаемой программы. Я проверил это: после --args лишний -y без изменений ушёл в запускаемую программу (журнал mcp-stderr.log показал /usr/bin/node: bad option: -y). Поэтому --connect-timeout 120 и --env КЛЮЧ=ЗНАЧЕНИЕ ставьте перед --args, а не после.
Честная оговорка по моей проверке: в среде, где я запускал сервер, не хватало системной библиотеки для управляемого Node, поэтому тот же пакет запускался напрямую через системный node, а не через npx. Список инструментов от способа запуска не зависит. Ответ команды выглядел так (пути сокращены):
Connecting to 'files'...
✓ Connected! Found 14 tool(s) from 'files':
read_file Read the complete contents of a file as text. DEPRECATED: Us...
read_text_file Read the complete contents of a file from the file system as...
read_media_file Read a file and return it as a base64-encoded content block ...
read_multiple_files Read the contents of multiple files simultaneously. This is ...
write_file Create a new file or completely overwrite an existing file w...
edit_file Make line-based edits to a text file. Each edit replaces exa...
create_directory Create a new directory or ensure a directory exists. Can cre...
list_directory Get a detailed listing of all files and directories in a spe...
list_directory_with_sizes Get a detailed listing of all files and directories in a spe...
directory_tree Get a recursive tree view of files and directories as a JSON...
move_file Move or rename files and directories. Can move files between...
search_files Recursively search for files and directories matching a patt...
get_file_info Retrieve detailed metadata about a file or directory. Return...
list_allowed_directories Returns the list of directories that this server is allowed ...
Enable all 14 tools? [Y/n/select]:
✓ Saved 'files' to /home/<пользователь>/.hermes/config.yaml (14/14 tools enabled)
Start a new session to use these tools, or run /reload-mcp to load them into open sessions.
Что здесь произошло. Команда не просто записала настройку: сначала она запустила сервер и подключилась к нему, получила список из 14 инструментов и только потом спросила, какие включить. Y включает все, select открывает список с флажками. Обратите внимание на состав: среди 14 инструментов четыре меняют файлы (write_file, edit_file, create_directory, move_file). Как оставить только чтение, показано в шаге 5. Если сервер не подключился, команда скажет об ошибке и спросит, сохранять ли запись всё равно.
Если пакету нужен ключ, передайте его в блоке env и не вписывайте значение в конфиг, а сошлитесь на переменную из ~/.hermes/.env:
mcp_servers:
tracker:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "${GITHUB_TOKEN}"
Пример с токеном GitHub тоже из документации: я его не запускал, но подстановку ${ИМЯ} проверил на других записях (см. шаг 3).
Локальный сервер не видит остальные ваши секреты. Hermes передаёт запускаемой программе не всё окружение, а короткий безопасный набор (в коде v0.23.1: PATH, HOME, USER, LANG, LC_ALL, TERM, SHELL, TMPDIR, переменные XDG_*), путь к домашней папке самого Hermes (HERMES_HOME) и то, что вы явно указали в env. Я проверил это на учебном сервере, который просто возвращает имена переменных. В оболочке были заданы OPENAI_API_KEY и ещё одна секретная переменная, а сервер увидел только: HERMES_HOME, HOME, LC_CTYPE, PATH, REPORTS_API_KEY, SHELL, TERM. Ключ REPORTS_API_KEY — это единственное значение, которое я передал в env. Практический вывод: ключ, нужный серверу, надо передать явно, а чужой сервер не выкрадет ключи из вашей оболочки.
Шаг 3. Подключаем удалённый сервер (HTTP) и прячем токен
Для удалённого сервера нужен адрес и, как правило, токен. Правильная запись держит токен отдельно от конфига:
mcp_servers:
crm:
url: "https://mcp.example.com/mcp"
headers:
Authorization: "Bearer ${CRM_MCP_TOKEN}"
Сам токен кладём в ~/.hermes/.env. Команда hermes config set умеет это: имена в верхнем регистре она записывает именно туда.
hermes config set CRM_MCP_TOKEN <значение>
✓ Set CRM_MCP_TOKEN in /home/<пользователь>/.hermes/.env
Учтите, что значение в командной строке остаётся в истории оболочки. Чтобы этого избежать, впишите строку CRM_MCP_TOKEN=... в ~/.hermes/.env редактором. Для всего, кроме локального адреса, используйте https://, иначе токен пойдёт по сети открытым текстом.
Проверка. У меня учебный HTTP-сервер, который отвечает только на запросы с правильным токеном. С токеном:
hermes mcp test crm
Testing 'crm'...
Transport: HTTP → http://127.0.0.1:8765/mcp
Authorization: ***
✓ Connected (1604ms)
✓ Tools discovered: 1
lead_count Number of open leads in the demo CRM.
Hermes маскирует значение заголовка (***), так что вывод можно показывать коллегам. Теперь две типичные ошибки, обе воспроизведены. Если переменной нет в .env, команда падает мгновенно и понятно:
✗ Connection failed (0.1s): MCP server 'crm': ${CRM_MCP_TOKEN} in url/headers is not set in this profile's .env or secret source
Если токен неверный, сервер отвечает 401, и Hermes сообщает об этом после перебора обоих транспортов (у меня это заняло 9 секунд):
✗ Connection failed (9.1s): MCP server 'crm': both Streamable HTTP and SSE transports failed
(Streamable HTTP: Server returned an error response (HTTP 401 from POST http://127.0.0.1:8765/mcp: unauthorized);
SSE: Client error '401 Unauthorized' ...). Check the URL points at an MCP endpoint,
or pin `transport: sse` if the server is SSE-only.
Подсказка в конце — не про токен: она относится к другой причине (адрес не тот или сервер говорит только по SSE). Читайте код в скобках: 401 значит «токен не принят», а не «транспорт не тот».
Вход через OAuth (по документации; не запускалось). Для серверов, где вместо токена нужна авторизация в браузере, в запись добавляется auth: oauth, а вход выполняется командой hermes mcp login <имя>. На машине без браузера используйте hermes mcp login <имя> --flow device (вход по коду на другом устройстве). Токены лежат в ~/.hermes/mcp-tokens/, по одному файлу на сервер. Если токен умер, сервер «паркуется» с предупреждением в журнале, и входить заново нужно вручную: фоновые процессы браузер не открывают. Для повторного входа есть hermes mcp reauth <имя> и hermes mcp reauth --all.
Шаг 4. Как агент видит инструменты и когда изменения вступают в силу
Подключённые серверы Hermes читает при старте сессии. Поэтому правило простое: добавили или поправили сервер — начните новую сессию или выполните в открытой команду /reload-mcp. Её можно вводить и в терминале, и в мессенджере. Если запущен шлюз для мессенджеров (hermes gateway run), он, по документации, сам следит за config.yaml: удалённую запись или enabled: false он отключает примерно за минуту, а новую подключает. Сервер, который не подключился с первого раза, шлюз пробует снова с нарастающей паузой: 30 секунд, потом вдвое больше, до 10 минут. После исправления причины перезапуск не требуется.
Каждый инструмент попадает в реестр агента под составным именем. В живой проверке они выглядели так:
mcp__files__read_text_file -> набор инструментов mcp-files
mcp__files__list_directory -> набор инструментов mcp-files
mcp__files__search_files -> набор инструментов mcp-files
Имя собирается как mcp__<сервер>__<инструмент> (двойное подчёркивание; недопустимые символы заменяются на _, а слишком длинное имя укорачивается хешем до 64 знаков), а набор называется mcp-<сервер>. В документации встречается упрощённая запись mcp_<сервер>_; в реестре v0.23.1 имена другие. Это важно для ключа tool_costs (учёт стоимости вызовов): в нём нужно указывать родное имя инструмента, как его объявляет сервер, без префикса.
Кроме инструментов, Hermes регистрирует для сервера служебные обёртки list_resources, read_resource, list_prompts и get_prompt, но только если сервер умеет ресурсы и шаблоны. В моём учебном сервере с двумя инструментами в реестре оказалось шесть имён: два инструмента и четыре обёртки. Лишнее отключается ключами tools.resources: false и tools.prompts: false.
Шаг 5. Урезаем права: фильтры, подтверждения и изоляция окружения
Сервер на 14 инструментов — это 14 действий, которые агент вправе совершить, в том числе по ошибке или по чужой подсказке, спрятанной в прочитанном файле. Поэтому после подключения оставьте только нужное. В Hermes для этого три уровня.
Уровень 1. Список инструментов
Ключи tools.include (оставить только перечисленные) и tools.exclude (убрать перечисленные) принимают точные имена и шаблоны вроде read_*. Если заданы оба, побеждает include. Пустой include: [] не регистрирует ничего. Вот сервер файловой системы, урезанный до чтения:
mcp_servers:
files:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/documents"]
tools:
include:
- read_text_file
- list_directory
- search_files
resources: false
prompts: false
Результат в моей проверке: в реестр попали ровно три инструмента (mcp__files__read_text_file, mcp__files__list_directory, mcp__files__search_files), а список серверов показывает счётчик выбранных:
hermes mcp list
Name Transport Tools Status
──────────────── ────────────────────────────── ──────────── ──────────
files /usr/bin/node /home/user/s... 3 selected ✓ enabled
deepwiki https://mcp.deepwiki.com/mcp all ✓ enabled
В строке files виден системный node, потому что в моей проверке сервер запускался напрямую (см. шаг 2); при запуске через npx там будет он. Имя сервера и путь в примере заменены.
Попытка вызвать отключённый инструмент заканчивается так:
{"error": "Unknown tool: mcp__files__write_file"}
А когда агент пытается прочитать файл вне разрешённой папки, отказывает уже сам сервер: Access denied - path outside allowed directories. Два слоя защиты работают независимо: Hermes не показывает агенту лишние инструменты, а сервер не выпускает его за пределы папки. Для интерактивного выбора есть команда hermes mcp configure <имя> (ей нужен настоящий терминал).
Ловушка. hermes mcp test <имя> перечисляет все инструменты сервера, даже те, что вы убрали фильтром: она проверяет сервер, а не то, что увидит агент. У меня после exclude: [delete_note] тест по-прежнему показывал три инструмента, хотя агенту было доступно два. Что реально включено, смотрите в колонке Tools команды hermes mcp list (3 selected для include, -1 excluded для exclude).
Уровень 2. Подтверждение перед действием
Ключ trust принимает два значения. По документации, full стоит по умолчанию: Hermes не спрашивает разрешения на вызов инструментов этого сервера. Значение untrusted включает подтверждение перед каждым вызовом любого инструмента, который сервер не пометил как «только чтение» (аннотация readOnlyHint: true).
mcp_servers:
notes:
command: "/usr/bin/python3"
args: ["/opt/mcp/notes_server.py"]
trust: untrusted
Что происходит при вызове, реальный вывод:
[o]nce | [s]ession | [a]lways | [d]eny — Choice [o/s/a/D]:
✗ Denied
{"error": "The user did not approve running write-capable MCP tool 'read_note' on untrusted server 'notes'. The command was NOT run. Do not retry without explicit user direction."}
Варианты ответа: один раз, до конца чата, всегда (запись попадает в command_allowlist в виде mcp:<сервер>/<инструмент>) или отказ. Каждый относится к одному инструменту, а не ко всему серверу. Обратите внимание: read_note — безобидное чтение, но мой учебный сервер не объявил его «только для чтения», и Hermes счёл его записывающим. С реальными серверами это встретится часто: если у инструмента нет аннотации, вопрос будет задан даже про чтение. Так устроен режим: без явной пометки «только чтение» Hermes считает инструмент способным менять данные. И ещё два предупреждения из документации: режимы /yolo и approvals.mode: off пропускают этот запрос, и для серверов, которые вы не контролируете полностью, untrusted стоит ставить всегда.
Уровень 3. Окружение процесса
Это то, о чём шла речь в шаге 2: локальный сервер получает только безопасный минимум переменных и то, что вы перечислили в env. Секреты, которых сервер не должен видеть, просто не передавайте.
Для серверов, которые тратят деньги или кредиты при каждом вызове (генерация картинок и видео, платные API), в документации есть отдельная пара ключей: tool_costs (сколько стоит вызов) и spend_limit (лимит на один чат). Они работают поверх trust и спрашивают подтверждение, когда вызов уводит чат за лимит. Эту часть я не запускал.
Шаг 6. Диагностика: куда смотреть, если что-то не работает
Порядок проверки от простого к сложному:
hermes mcp list— какие серверы вообще прочитаны из конфига, включены ли они и сколько инструментов выбрано.hermes mcp test <имя>— живое подключение: транспорт, способ входа, время ответа, список инструментов или причина отказа.hermes logs errors— только предупреждения и ошибки. Фильтры:hermes logs --level WARNING --since 1h. Подключение, которое не удалось, выглядит там так:
Hermes делает три попытки, после чего «паркует» сервер: он остаётся в списке, но инструментов не отдаёт, пока причина не будет устранена.WARNING tools.mcp_tool: MCP server 'crm' failed initial connection after 3 attempts, parking until a reconnect is requested (state: connecting → parked): ...hermes logs mcp— вывод самих локальных серверов (их stderr, файл~/.hermes/logs/mcp-stderr.log). Каждый запуск отмечен строкой===== starting MCP server '<имя>' =====. Если сервер падает при старте, причина будет здесь: например, в моей проверке неверный параметр дал строку/usr/bin/node: bad option: -y.
По документации, при старте Hermes пишет и итоговую сводку по серверам: сколько инструментов зарегистрировано и какие серверы не поднялись с причиной. Этот формат сводки я проверил только по коду.
Частые сбои и что с ними делать
| Что видите | Причина | Что делать |
|---|---|---|
Connecting to MCP server '…' timed out after Ns (bounded by connect_timeout) | Сервер не успел подключиться. По умолчанию на подключение даётся 60 секунд; первый запуск npx ещё и скачивает пакет. | Увеличить: --connect-timeout 120 в команде или connect_timeout: 120 в записи. Заодно убедиться, что команда запускается руками. |
error while loading shared libraries: libatomic.so.1 в журнале при попытке запустить npx-сервер | Управляемой копии Node не хватает системной библиотеки (на минимальной установке Linux). | От имени root: apt-get install -y libatomic1. Hermes сам подсказывает эту команду в тексте ошибки. |
HTTP 401 … both Streamable HTTP and SSE transports failed | Токен не принят сервером: пустой, просроченный или не тот. | Проверить значение в ~/.hermes/.env, выпустить новый токен. Для OAuth-серверов — hermes mcp login <имя>. |
${ИМЯ} in url/headers is not set in this profile's .env | В записи есть подстановка, а переменной нет в .env того профиля, с которым запущен Hermes. | hermes config set ИМЯ значение или вписать строку в .env. |
Your settings file … has a formatting error at line N. Hermes is running on default settings until it is fixed | Ошибка отступов или синтаксиса в config.yaml. Весь файл игнорируется, поэтому пропадают не только MCP-серверы, но и остальные настройки. | hermes config edit, исправить строку N, затем hermes config check. Копия испорченного файла сохраняется в ~/.hermes/backups/config/. |
| Сервер подключается, но агент его инструментов не видит | Сессия началась до добавления сервера, либо инструмент убран фильтром include или exclude. | /reload-mcp или новая сессия; посмотреть колонку Tools в hermes mcp list. |
Unknown tool: mcp__… | Инструмента нет в реестре: он отфильтрован или сервер не подключён. | Проверить фильтры и hermes mcp test <имя>. |
parking until a reconnect is requested | Три попытки подключиться не удались, сервер припаркован. | Устранить причину по тексту после двоеточия; шлюз сам повторит попытку по графику (30 секунд, дальше вдвое дольше, до 10 минут), в открытой сессии можно выполнить /reload-mcp. |
Когда не стоит настраивать самому
Подключить сервер файловой системы или документации можно за полчаса, и ошибки там дёшевы. Иначе обстоит дело, когда агент получает доступ к CRM, почте, 1С, платёжным или складским данным. Здесь важны не команды, а вопросы, на которые в статье нет готового ответа. Какие из инструментов сервера агенту действительно нужны? Что он может изменить необратимо? Куда уходят данные, если сервер внешний? Какие действия должны требовать подтверждения человека, а какие нет? Как узнать постфактум, что именно агент вызвал? Если цена ошибки высока или времени на разбор нет, проверим доступы вашего агента, ограничим инструменты и настроим журнал действий. До этого момента всё, что описано выше, вы можете сделать и самостоятельно: статья написана как законченная инструкция.
Частые вопросы
Чем MCP-сервер отличается от навыка?
Навык — это папка с файлом SKILL.md: текстовая инструкция, которую агент подгружает, когда она нужна. Он ничего не выполняет сам, а лишь рассказывает агенту, как действовать. MCP-сервер — работающая программа, которая даёт агенту новые действия: прочитать файл, создать задачу, спросить базу. Если нужно научить агента порядку работы, пишите навык (подробно — в статье о навыках Hermes Agent). Если нужно дать ему доступ к системе, нужен сервер.
Как отключить сервер, не удаляя его?
Поставить в записи enabled: false. Запущенный шлюз, по документации, отключит такой сервер примерно за минуту. Совсем убрать запись можно командой hermes mcp remove <имя> (алиас rm).
Сколько серверов можно подключить?
Жёсткого ограничения в документации я не нашёл, но у каждого сервера свой набор инструментов, а описания инструментов передаются модели вместе с запросом. Чем их больше, тем больше шума и расходов на каждое сообщение, и тем выше риск, что модель выберет не тот инструмент. Подключайте только нужное и урезайте списки фильтрами, как в шаге 5.
Как подключить MCP-сервер к OpenClaw?
Идея та же, но команды и ключи другие. Подробный разбор — в статье о том, как подключить MCP-сервер к OpenClaw. Если выбираете между двумя агентами, сравнение есть в статье «OpenClaw или Hermes Agent для бизнеса».
Можно ли сделать так, чтобы сам Hermes был MCP-сервером для другой программы?
Да, но это другая задача. Согласно описанию команды hermes mcp, работа Hermes в роли сервера идёт через плагин mcp-serve, а ставится он командой hermes plugins install mcp-serve. В этой статье он не разбирается, и я его не запускал.
Каталожные записи безопасны, раз их проверили разработчики?
Документация Hermes сама просит не полагаться на это: запись в каталоге означает, что её просмотрели и приняли в репозиторий, но установка всё равно выполняет команды и запускает код сервера. Читайте манифест, как описано в шаге 1, и применяйте те же фильтры и режим untrusted, что и для любого стороннего сервера.
Источники: официальная документация Hermes Agent — разделы MCP, MCP Config Reference, CLI Commands и Slash Commands; исходный код и каталог optional-mcps в репозитории проекта на теге v0.23.1; описание протокола — modelcontextprotocol.io; сервер файловой системы — репозиторий референсных серверов MCP. Проверено 10 ноября 2026 года.