Skip to main content

MCP-серверы

MCP-сервер даёт агенту дополнительные инструменты, ресурсы и промпты: доступ к документации библиотек, базе данных, трекеру задач и другим сервисам. Серверы описываются в JSON-файле mcp.json.

Агент подключит сервер сам

Напишите в чате: «Подключи MCP сервер context7». Агент добавит запись в mcp.json, и сервер появится в списке /mcp.

Где описываются серверы​

УровеньФайл
Глобальный~/.veai/mcp.json
Проектный<проект>/.veai/mcp.json

Оба файла необязательны. Если их нет, сессия просто стартует без MCP-серверов.

MCP-файлы других инструментов не читаются: ни <проект>/.mcp.json, ни ~/.config/mcp/mcp.json, ни ~/.agents/mcp.json.

Файлы плагина Veai

Если раньше вы настраивали MCP в плагине Veai, его файлы mcp_servers.json в тех же каталогах .veai/ тоже читаются, но только для чтения. Новые серверы добавляйте в mcp.json. Если сервер с одним именем есть в обоих файлах, побеждает запись из mcp.json.

Формат файла​

{
"mcpServers": {
"searxng": {
"command": "npx",
"args": ["-y", "mcp-searxng"],
"env": { "SEARXNG_URL": "${SEARXNG_URL}" }
},
"docs": {
"url": "https://mcp.example.com/sse",
"headers": { "Authorization": "Bearer ${DOCS_TOKEN}" }
}
}
}

Ключ — имя сервера. Локальный (stdio) сервер задаётся полем command, удалённый (HTTP) — полем url.

ПолеТипНазначение
commandстрокаисполняемый файл локального сервера
argsмассив строкаргументы команды
envобъект строкпеременные окружения процесса сервера
cwdстрокарабочий каталог процесса сервера
urlстрокаадрес HTTP-сервера
headersобъект строкзаголовки каждого запроса
disabledлогическоеtrue сохраняет описание, но не запускает сервер
excludeToolsмассив строкинструменты сервера, которые не показываются модели
auth{ "provider": "<id>" }передавать как Bearer-токен ключ, сохранённый через /login для указанного провайдера моделей. Только в глобальном файле

Запись с полем неверного типа пропускается с предупреждением, остальные серверы загружаются. Если файл не является корректным JSON, серверы из него не загружаются, и агент сообщает об ошибке.

Секреты и переменные окружения​

Не записывайте токены в файл — ссылайтесь на переменные окружения. В любой строке записи поддерживаются три формы: ${NAME}, $env:NAME и {env:NAME}. Например, "Bearer ${DOCS_TOKEN}".

Если переменная не задана, агент сообщает об этом для конкретного сервера и передаёт текст как есть.

warning

Относитесь к проектному mcp.json как к коду проекта. Через ${VAR} он может передать значение переменной окружения на любой указанный в нём адрес. Не добавляйте серверы, которые отправляют секреты на непроверенный URL. Поле auth в проектном файле не работает: такой сервер не запускается, чтобы ключи провайдеров моделей не утекли на чужой адрес.

Один сервер в двух файлах​

Запись в проектном файле целиком заменяет глобальную запись с тем же именем — отдельные поля не наследуются. Чтобы изменить одно поле для одного проекта, повторите всю запись.

Отключить сервер​

Добавьте "disabled": true:

{ "mcpServers": { "docs": { "url": "https://mcp.example.com/sse", "disabled": true } } }

Описание остаётся в файле, и сервер можно снова включить, не вводя его заново.

Скрыть отдельные инструменты​

Перечислите инструменты в excludeTools:

{ "mcpServers": { "docs": { "url": "…", "excludeTools": ["delete_page", "admin_*"] } } }

Подходит как имя инструмента (delete_page), так и имя с префиксом сервера (docs_delete_page). Поддерживаются шаблоны * и ?.

Команда /mcp​

Команда /mcp в терминале показывает серверы, их статус и инструменты. В ней можно включить или выключить сервер или отдельный инструмент — команда записывает те же поля disabled и excludeTools.

Когда изменения вступают в силу​

Конфигурация читается один раз при старте сессии. Правка файла не влияет на уже запущенную сессию: начните новую или примените изменения через /mcp — экран сам перезапускает MCP.

Сервер, который не смог подключиться, не ломает сессию: он остаётся в списке со статусом ошибки, остальные серверы работают.