Kilo Code is built on opencode now, and one MCP client serves the CLI, VS Code and JetBrains

Kind: misconception · Status: current · Last verified: 2026-11-10 · Clients: kilocode, opencode, cline · Revisions: 2025-11-25

BATCH-PLAN.md put Kilo Code with Roo Code in a "Cline lineage" batch. The code at 278edf3a does not support that. Kilo's MCP client is opencode's: packages/opencode/src/mcp/index.ts is opencode's file with 78 kilocode_change markers. The capability object keeps opencode's commented-out sampling, elicitation and tasks, each still linking to an anomalyco/opencode issue, so Kilo declares roots and nothing else, as opencode does.

There is one MCP implementation. The VS Code extension spawns the CLI as kilo serve --port 0 and reaches MCP through the generated SDK client (client.mcp.status). The JetBrains backend spawns the same command. Neither extension creates an MCP Client. Capability rows hold for every surface, as with Hermes and unlike Cline. The wire name is kilo.

Kilo's additions are local to the connection layer:

Code Mode moved the other way. opencode routes MCP tools through its execute script tool by default. Kilo makes Code Mode opt-in through KILO_EXPERIMENTAL_CODE_MODE or experimental.code_mode, so the direct tool path is Kilo's default.

The SDK has split from upstream. Kilo's main pins @modelcontextprotocol/sdk 1.32.1 with opencode's session-recovery patch carried forward. Upstream opencode has moved to @modelcontextprotocol/client 2.4.0. Kilo's README says new features go to the v2 branch, which at 35c99113 depends on @modelcontextprotocol/client, core and server 2.3.1 with its own patch against the client package. That makes this read a read of the shipping release. The next Kilo read should start from v2 once it becomes the default branch.

Sources