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

Настройка MCP серверов

Все настройки MCP серверов хранятся в одном файле: mcp.json. Откройте его из панели Kodik через MCP СерверыУстановленныеНастроить MCP Серверы, или отредактируйте напрямую. Файл хранится в директории глобального хранилища Kodik (…/User/globalStorage/kodik.chat/settings/mcp.json).

Файл парсится как JSONC — можно свободно использовать // комментарии строк, /* */ блочные комментарии и замыкающие запятые.

{
"servers": {
// именованные записи серверов здесь
},
"inputs": [
// опционально: переменные, запрашиваемые один раз для секретов/путей
],
}

Примечание: верхнеуровневый ключ — servers, а не mcpServers. Конфигурации, написанные для других инструментов с ключом mcpServers, нужно переименовать.

Каждая запись сервера имеет общие поля независимо от типа транспорта.

ПолеТипПо умолчаниюОписание
disabledbooleanfalseУстановите true, чтобы деактивировать сервер без удаления
timeoutчисло (секунды)60Время ожидания ответа на вызов инструмента. Минимум 30 с
autoApprovestring[][]Имена инструментов, которые авто-одобряются без запроса пользователя
enabledToolsstring[]Если задано, только эти инструменты доступны агенту
disabledToolsstring[]Инструменты, скрытые от агента
defaultToolsApprovalMode"always-ask" | "auto-approve"Режим одобрения по умолчанию для всех инструментов сервера. Записи в autoApprove имеют приоритет
authобъектКонфигурация OAuth 2.1 для HTTP/SSE серверов (см. ниже)

Поле type выбирает транспорт. Если не указано, Kodik определяет тип: конфигурация с command — это stdio; конфигурация с url и type: "sse" — SSE; type: "http" или type: "streamableHttp" — streamable HTTP.

Запускает команду на вашей машине и общается через stdin/stdout.

ПолеТипОбязательноОписание
commandstringдаИсполняемый файл (например, node, python, npx)
argsstring[]нетАргументы командной строки
envобъектнетДополнительные переменные среды, объединённые с унаследованной средой
cwdstringнетРабочая директория запускаемого процесса
{
"servers": {
"my-local-server": {
"command": "node",
"args": ["/path/to/server.js"],
"env": {
"API_KEY": "your_api_key",
},
"timeout": 60,
"autoApprove": ["read_file", "list_dir"],
"disabled": false,
},
},
}

Подключается к удалённому серверу по HTTP с использованием SSE транспорта. Требует type: "sse", когда запись сервера также имеет поле url (для отличия от streamable HTTP).

ПолеТипОбязательноОписание
urlstring (URL)даURL SSE эндпоинта
headersобъектнетДополнительные HTTP заголовки запроса
{
"servers": {
"my-sse-server": {
"type": "sse",
"url": "https://example.com/mcp/sse",
"headers": {
"X-Custom-Header": "value",
},
},
},
}

http — Streamable HTTP (рекомендуется для новых серверов)

Заголовок раздела «http — Streamable HTTP (рекомендуется для новых серверов)»

Современный транспорт MCP. Используйте type: "http" (или псевдоним "streamableHttp"). Оба написания принимаются и нормализуются внутри.

ПолеТипОбязательноОписание
urlstring (URL)даURL streamable HTTP эндпоинта
headersобъектнетДополнительные HTTP заголовки запроса
{
"servers": {
"my-http-server": {
"type": "http",
"url": "https://example.com/mcp",
},
},
}

По умолчанию Kodik запрашивает подтверждение перед запуском любого инструмента. Это можно изменить глобально для сервера или для конкретных инструментов.

{
"servers": {
"my-server": {
"command": "node",
"args": ["server.js"],
// Авто-одобрять все инструменты сервера без запроса:
"defaultToolsApprovalMode": "auto-approve",
},
},
}

Или добавьте конкретные имена инструментов в autoApprove, чтобы одобрять только их, оставив остальные в режиме always-ask:

{
"servers": {
"my-server": {
"command": "node",
"args": ["server.js"],
"autoApprove": ["read_file", "search"],
},
},
}

Подробнее о рабочем процессе одобрения см. Авто-одобрение.

Используйте enabledTools, чтобы открыть агенту только подмножество того, что предоставляет сервер, или disabledTools, чтобы скрыть конкретные инструменты:

{
"servers": {
"big-server": {
"type": "http",
"url": "https://example.com/mcp",
// Открыть агенту только эти два инструмента:
"enabledTools": ["search", "read_document"],
},
},
}

Удалённые серверы могут требовать OAuth. Kodik поддерживает OAuth 2.1 с автоматическим обнаружением через Protected Resource Metadata. Блок auth позволяет переопределить конкретные значения, когда авто-обнаружение недоступно (например, для самостоятельно размещённых серверов без эндпоинтов .well-known).

ПолеТипОписание
disabledbooleanУстановите true, чтобы полностью пропустить OAuth для этого сервера
clientIdstringПредварительно зарегистрированный OAuth client ID
clientSecretstringСекрет клиента (хранится в SecretStorage при вводе через UI)
scopesstring[]Запрашиваемые OAuth области
authorizationServerstring (URL)Переопределить URL сервера авторизации
{
"servers": {
"protected-server": {
"type": "http",
"url": "https://api.example.com/mcp",
"auth": {
"clientId": "my-client-id",
"scopes": ["mcp:read", "mcp:write"],
"authorizationServer": "https://auth.example.com",
},
},
},
}

Когда Kodik получает 401 от сервера, он автоматически инициирует OAuth поток, предлагая вам войти.

Массив inputs определяет переменные, которые Kodik запрашивает один раз, а затем подставляет в значения конфигурации сервера. Это позволяет избежать хардкода секретов в mcp.json. Используйте ${input:<id>} в любом месте args, env, headers или url.

{
"inputs": [
{
"id": "api_key",
"type": "promptString",
"description": "Введите ваш API ключ",
"password": true,
},
],
"servers": {
"my-server": {
"command": "node",
"args": ["server.js"],
"env": {
"API_KEY": "${input:api_key}",
},
},
},
}

password: true направляет кэшированный ответ в SecretStorage, чтобы он никогда не хранился в открытом виде.

Большинство операций можно выполнить без ручного редактирования файла:

  • Включить/отключить: переключите тумблер рядом с сервером во вкладке Установленные
  • Перезапустить: нажмите кнопку Перезапуск рядом с сервером или кнопку “Перезапустить Сервер” внутри панели настроек сервера
  • Удалить: нажмите красную кнопку “Удалить Сервер” в панели настроек сервера
  • Тайм-аут: используйте выпадающий список “Тайм-аут запроса” в панели настроек сервера (от 30 с до 1 ч)
СимптомВероятная причина
Сервер не подключаетсяНеверная команда/путь или не установлена необходимая среда выполнения (Node, Python)
Инструмент не виденdisabled: true, имя инструмента в disabledTools или отсутствует в enabledTools
Медленные ответыУвеличьте timeout; проверьте сетевую задержку для удалённых серверов
Ошибка аутентификации на удалённом сервереПроверьте поля auth или повторно запустите OAuth поток, перезапустив сервер