Настройка MCP серверов
Все настройки MCP серверов хранятся в одном файле: mcp.json. Откройте его из панели Kodik через MCP Серверы → Установленные → Настроить MCP Серверы, или отредактируйте напрямую. Файл хранится в директории глобального хранилища Kodik (…/User/globalStorage/kodik.chat/settings/mcp.json).
Файл парсится как JSONC — можно свободно использовать // комментарии строк, /* */ блочные комментарии и замыкающие запятые.
Верхнеуровневая структура
Заголовок раздела «Верхнеуровневая структура»{ "servers": { // именованные записи серверов здесь }, "inputs": [ // опционально: переменные, запрашиваемые один раз для секретов/путей ],}Примечание: верхнеуровневый ключ —
servers, а неmcpServers. Конфигурации, написанные для других инструментов с ключомmcpServers, нужно переименовать.
Поля записи сервера
Заголовок раздела «Поля записи сервера»Каждая запись сервера имеет общие поля независимо от типа транспорта.
Общие поля
Заголовок раздела «Общие поля»| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
disabled | boolean | false | Установите true, чтобы деактивировать сервер без удаления |
timeout | число (секунды) | 60 | Время ожидания ответа на вызов инструмента. Минимум 30 с |
autoApprove | string[] | [] | Имена инструментов, которые авто-одобряются без запроса пользователя |
enabledTools | string[] | — | Если задано, только эти инструменты доступны агенту |
disabledTools | string[] | — | Инструменты, скрытые от агента |
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.
stdio — локальный процесс
Заголовок раздела «stdio — локальный процесс»Запускает команду на вашей машине и общается через stdin/stdout.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
command | string | да | Исполняемый файл (например, node, python, npx) |
args | string[] | нет | Аргументы командной строки |
env | объект | нет | Дополнительные переменные среды, объединённые с унаследованной средой |
cwd | string | нет | Рабочая директория запускаемого процесса |
{ "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, }, },}sse — Server-Sent Events
Заголовок раздела «sse — Server-Sent Events»Подключается к удалённому серверу по HTTP с использованием SSE транспорта. Требует type: "sse", когда запись сервера также имеет поле url (для отличия от streamable HTTP).
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
url | string (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"). Оба написания принимаются и нормализуются внутри.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
url | string (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 2.1 аутентификация (HTTP/SSE серверы)
Заголовок раздела «OAuth 2.1 аутентификация (HTTP/SSE серверы)»Удалённые серверы могут требовать OAuth. Kodik поддерживает OAuth 2.1 с автоматическим обнаружением через Protected Resource Metadata. Блок auth позволяет переопределить конкретные значения, когда авто-обнаружение недоступно (например, для самостоятельно размещённых серверов без эндпоинтов .well-known).
| Поле | Тип | Описание |
|---|---|---|
disabled | boolean | Установите true, чтобы полностью пропустить OAuth для этого сервера |
clientId | string | Предварительно зарегистрированный OAuth client ID |
clientSecret | string | Секрет клиента (хранится в SecretStorage при вводе через UI) |
scopes | string[] | Запрашиваемые OAuth области |
authorizationServer | string (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 поток, предлагая вам войти.
Kodik подбирает OAuth-клиент в следующем порядке: явный auth.clientId из вашей конфигурации, встроенное приложение Kodik для данного вендора (GitHub, Slack, Google Drive, Figma), клиент, зарегистрированный при предыдущем входе, и, наконец, автоматическая динамическая регистрация клиента (DCR). Если вендор блокирует автоматическую регистрацию (как Figma), Kodik один раз запросит client ID и запомнит его. Выполненные входы сохраняются в защищённом хранилище и переиспользуются между перезапусками редактора — токены обновляются автоматически, пока вы не выйдете из сервера.
Входные переменные
Заголовок раздела «Входные переменные»Массив 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, чтобы он никогда не хранился в открытом виде.
Управление серверами через UI
Заголовок раздела «Управление серверами через UI»Большинство операций можно выполнить без ручного редактирования файла:
- Включить/отключить: переключите тумблер рядом с сервером во вкладке Установленные
- Перезапустить: нажмите кнопку Перезапуск рядом с сервером или кнопку “Перезапустить Сервер” внутри панели настроек сервера
- Удалить: нажмите красную кнопку “Удалить Сервер” в панели настроек сервера
- Тайм-аут: используйте выпадающий список “Тайм-аут запроса” в панели настроек сервера (от 30 с до 1 ч)
Устранение неполадок
Заголовок раздела «Устранение неполадок»| Симптом | Вероятная причина |
|---|---|
| Сервер не подключается | Неверная команда/путь или не установлена необходимая среда выполнения (Node, Python) |
| Инструмент не виден | disabled: true, имя инструмента в disabledTools или отсутствует в enabledTools |
| Медленные ответы | Увеличьте timeout; проверьте сетевую задержку для удалённых серверов |
| Ошибка аутентификации на удалённом сервере | Проверьте поля auth или повторно запустите OAuth поток, перезапустив сервер |