Kimi MCP Server
MCP server bridging AI assistants to Moonshot AI Kimi Code CLI for code analysis and review
Open source Open in the app JSON README (API)
About
MCP server bridging AI assistants to Moonshot AI Kimi Code CLI for code analysis and review
Details
- Kind
- MCP servers
- Topic
- Developer tools
- Publisher
- x51xxx
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.2.0
- Stars
- 1
- Forks
- 1
- Last push
- 2026-05-27T08:15:52Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-08-29 04:01:41
- Updated
- 2026-08-29 04:01:41
- Origin id
io.github.x51xxx/kimi-mcp-server
README
# 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