Content
# 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