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

Транспортные механизмы MCP

Kodik поддерживает три транспортных механизма для общения с MCP серверами. Правильный выбор зависит от того, где запущен сервер и какой протокол он использует.

ТранспортЗначение typeГде запущен серверЛучше всего для
stdio"stdio" (по умолчанию при наличии command)Локальный процесс на вашей машинеЛокальные инструменты, расширения IDE
SSE"sse"Удалённый HTTP серверСтарые размещённые серверы
Streamable HTTP"http" или "streamableHttp"Удалённый HTTP серверНовые размещённые серверы (рекомендуется)

stdio запускает команду на вашей машине как дочерний процесс. Kodik записывает JSON-RPC сообщения в stdin процесса и читает ответы из его stdout. Stderr процесса захватывается отдельно для журналирования ошибок.

Kodik Серверный процесс
| |
|--- JSON-RPC (stdin) ----------->|
| | (обрабатывает запрос)
|<-- JSON-RPC (stdout) -----------|
| |
  • Только локально — бинарный файл сервера должен быть установлен на вашей машине
  • Наименьшая задержка — без участия сетевого стека
  • Один-к-одному — каждый экземпляр Kodik получает собственный серверный процесс
  • Изначально безопасен — нет сетевой доступности
{
"servers": {
"my-local-server": {
// type: "stdio" выводится автоматически при наличии command
"command": "node",
"args": ["/path/to/server.js"],
"env": { "API_KEY": "..." },
"cwd": "/optional/working/dir",
},
},
}
  • Инструменты, которым нужен прямой доступ к локальной файловой системе или процессам
  • Серверы, установленные через npm, pip или uv
  • Сценарии с одним пользователем
  • Операции, где важна задержка

SSE (Server-Sent Events) подключается к удалённому HTTP серверу. Kodik открывает постоянное GET соединение, через которое сервер отправляет события, и отправляет запросы серверу через HTTP POST на отдельный эндпоинт. Kodik использует переподключающийся EventSource, чтобы кратковременные сбои сети не прерывали поток.

Kodik Удалённый сервер
| |
|--- HTTP GET /sse ------------------->| (установить поток)
|<--- SSE поток событий ---------------| (постоянный)
| |
|--- HTTP POST /message -------------->| (запрос клиента)
|<--- SSE событие с ответом -----------| (ответ)
  • Удалённый — сервер работает где угодно в сети
  • Многоклиентский — один экземпляр сервера может обслуживать многих клиентов
  • Авто-переподключение — Kodik переподключается автоматически при прерывании сети
  • Требует явного type: "sse" — нужно установить для отличия от streamable HTTP при наличии поля url
{
"servers": {
"my-sse-server": {
"type": "sse",
"url": "https://example.com/mcp/sse",
"headers": { "Authorization": "Bearer token" },
},
},
}
  • Серверы, созданные до того, как streamable HTTP стал стандартом
  • Сервисы, которые явно документируют SSE эндпоинт

Streamable HTTP — современный транспорт MCP, представленный в спецификации MCP как преемник SSE. Он использует единый HTTP эндпоинт, который может передавать ответы потоком. Используйте type: "http" (Kodik также принимает "streamableHttp" и нормализует оба к одной внутренней реализации).

Kodik отправляет запросы на URL и получает потоковые ответы через то же соединение. Токены OAuth bearer прикрепляются автоматически, если настроена аутентификация.

  • Удалённый — сервер работает где угодно в сети
  • Современный — рекомендуется для всех новых реализаций серверов
  • Более простая серверная реализация, чем SSE (один эндпоинт вместо двух)
  • Готов к OAuth — интегрируется с OAuth 2.1 потоком Kodik
{
"servers": {
"my-http-server": {
"type": "http", // "streamableHttp" тоже принимается
"url": "https://example.com/mcp",
"headers": { "X-Custom": "value" },
},
},
}
  • Любой новый сервер, который вы создаёте или к которому подключаетесь
  • Сервисы, документирующие единый эндпоинт /mcp (вместо отдельных /sse и /message)
  • Серверы, требующие OAuth 2.1
Сервер работает на вашей локальной машине?
Да → stdio
Сервер использует два эндпоинта (/sse и /message)?
Да → sse
В остальных случаях → http (streamable HTTP)

Подробные параметры конфигурации, применимые ко всем типам транспортов (режимы одобрения, фильтрация инструментов, OAuth), см. в Настройка MCP Серверов.