Kimi MCP Server
# Kimi MCP Server
[](LICENSE)
MCP server (stdio) that bridges Claude / Cursor / any MCP client to **Moonshot AI's [Kimi Code CLI](https://github.com/MoonshotAI/kimi-cli)**.
Architecture mirrors [`@trishchuk/codex-mcp-tool`](https://github.com/x51xxx/codex-mcp-tool) — same patterns, adapted to Kimi's flag surface (`--print`, `--quiet`, `-r`, `--continue`, `--add-dir`, `--mcp-config-file`, `--config`).
## Why
Kimi K2.6 (April 2026) is a 1T-parameter MoE open-weight model with native agent-swarm orchestration, 262k context, and SWE-Bench Pro on par with GPT-5.5. Kimi Code CLI is the reference agent harness. This server lets MCP-aware editors call Kimi as a sub-agent without leaving their primary interface.
## Install
```sh
npm install -g @trishchuk/kimi-mcp-server
```
You also need Kimi Code CLI:
```sh
curl -LsSf https://code.kimi.com/install.sh | bash
# OR
uv tool install --python 3.13 kimi-cli
```
Then run `kimi` once and use `/login` to authenticate via the Kimi Code platform — or set `MOONSHOT_API_KEY`.
## Configure (Claude Desktop / Cursor / Claude Code)
Minimal — working directory is auto-detected from `PWD` / `INIT_CWD` / `process.cwd()`, just like codex-mcp-tool:
```json
{
"mcpServers": {
"kimi": {
"command": "kimi-mcp"
}
}
}
```
Pin a specific project root only if your client launches the server from somewhere unrelated:
```json
{
"mcpServers": {
"kimi": {
"command": "kimi-mcp",
"env": { "KIMI_MCP_CWD": "/absolute/path/to/your/project" }
}
}
}
```
You can also override per call via the `workingDir` argument on `ask-kimi`, or let the server infer it from `@path/to/file` references in the prompt — same priority chain as codex-mcp-tool: `workingDir` arg → `KIMI_MCP_CWD` → `PWD` → `INIT_CWD` → `@path` inference → `process.cwd()`.
## Tools
| Tool | What it does |
| --------------------------- | -------------------------------------------------------------------------------------------------- |
| `ask-kimi` | Main entry — file analysis (`@path`), session resume, MCP passthrough |
| `brainstorm` | Structured ideation (divergent / convergent / SCAMPER / design-thinking / lateral / auto) |
| `batch-kimi` | Sequential or parallel atomic tasks with priority, stop-on-error, structured report |
| `review-changes` | Code review of working tree / branch diff / specific commit (collects `git diff` and prompts Kimi) |
| `list-sessions` | List, delete, or clear active conversation sessions |
| `health` | Diagnose Kimi CLI installation, auth, and session state |
| `ping` / `Help` / `version` | Smoke tests + help passthrough |
### `ask-kimi` highlights
- `prompt` — supports `@path/to/file` to drop file context (Kimi reads via working dir).
- `model` — overrides `default_model` at runtime via `--config`. Known: `kimi-for-coding`, `kimi-k2-6`, `kimi-k2-thinking-turbo`, `kimi-k2-5`, `kimi-latest`.
- `thinking` — toggles thinking mode (writes `default_thinking` into runtime config).
- `outputFormat` — `text` (default) or `stream-json` (JSONL of assistant + tool messages, parsed transparently).
- `responseMode` — `clean` (default; final assistant text only) or `full` (tool calls + stderr log + final).
- `sessionId` — workspace-isolated session ID (md5 of repo:head:path). The server tracks the native Kimi session ID returned by the CLI and replays it via `kimi -r <id>`.
- `continueLatest` — sets `--continue` (resume the most recent session in the cwd).
- `mcpConfigFile` — passes `--mcp-config-file` so Kimi can talk to other MCP servers from inside this process.
- `addDirs` — repeats `--add-dir` for multi-root projects.
- `yolo` / `afk` — approval shortcuts (print mode auto-approves anyway, but useful for documentation/logging).
## CLI compatibility
| Feature | Kimi CLI |
| ----------------------- | --------------------------------------------------------------------------------------------- |
| Print / non-interactive | `--print` (required for MCP); `--quiet` = `--print --output-format text --final-message-only` |
| JSON streaming | `--output-format=stream-json`, `--input-format=stream-json` |
| Sessions | `--continue`, `--session <id>`, `-r <id>` |
| Configuration | `--config-file <path>`, `--config '<json/toml>'` |
| Workspace | spawn cwd + `--add-dir <path>` (no `--cd` flag) |
| MCP passthrough | `--mcp-config-file` or `kimi mcp add` |
| Exit codes | `0` ok, `1` fatal, `75` retryable transient |
## Environment
| Var | Default | Purpose |
| --------------------- | -------------- | ---------------------------------------------- |
| `KIMI_MCP_CWD` | — | Override working directory for every tool call |
| `KIMI_SESSION_TTL_MS` | 86400000 (24h) | Session expiration |
| `KIMI_MAX_SESSIONS` | 50 | Max concurrent sessions |
| `MOONSHOT_API_KEY` | — | Forwarded to Kimi CLI for unattended auth |
## Development
```sh
npm install
npm run build # tsc → dist/
npm run lint # tsc --noEmit
node dist/index.js # smoke run on stdio
```
## License
MIT — Taras Trishchuk
TDQS
Scored across 14 tools
Each tool has a clearly distinct purpose: from single queries (ask-kimi) to batch processing, code review, brainstorming, background tasks, planning, file ingestion, sandboxed delegation, session management, and server info. No two tools overlap in functionality.
Most tools use lowercase with hyphens (e.g., ask-kimi, batch-kimi), but there are inconsistencies: some are single words (ping, health, version), 'Help' is capitalized, and patterns vary between verb-noun and noun-verb. The naming is readable but not fully consistent.
With 14 tools, the server provides a comprehensive interface to the Kimi CLI, covering core interactions (query, batch, planning, code review, brainstorming), background tasks, file digestion, sandboxed delegation, and management. The count feels well-scoped for its purpose.
The tool surface covers the major workflows expected from a CLI-based coding assistant: interactive queries, batch processing, code review, planning, brainstorming, file ingestion, and sandboxed execution. Minor gaps might include a direct file-editing tool, but the existing tools enable comprehensive automation.