ladder-mcp
The ladder-mcp server is a Windows-native bridge that exposes Kimi Code's AI coding capabilities as MCP tools, allowing clients like Claude Code to drive Kimi for codebase analysis, editing, session management, and diagnostics.
kimi_code: Perform agentic codebase analysis and editing in a repository. Supports two transports:cli(default): robust one-shot process, best for straightforward codegen/analysisacp: persistent JSON-RPC session with granular live progress and interactive permission promptsSupports background execution (
background: true) for long-running jobs, and session resumption viasession_id/new_session
kimi_ask: Ask stateless, text-only questions without repo access. Supply acontextto switch into review mode, where Kimi acts as a skeptical second-opinion reviewer.kimi_sessions: List and inspect Kimi sessions from the CLI catalog, ACP, or both. Filter by working directory and limit results.kimi_tasks: Manage long-running background jobs — check status, retrieve full output/transcripts, or cancel a running task or ACP session.kimi_status: Diagnose installation, authentication, and overall health of the Kimi Code environment (binary, credentials, config, API).kimi_setup: Generate or merge a Kimi-hosted MCP config entry (.kimi-code/mcp.json) at project or user scope.Experimental tools (enabled via
LADDER_EXPERIMENTAL=1):kimi_export_session: Export sessions to ZIP archiveskimi_visualize_session: Preview or launch a session visualizerkimi_desktop_status: Probe Kimi Desktop Work statuskimi_budget_probe: Guided budget-separation evidence workflow
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ladder-mcp Analyze the code in my current directory for security issues."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Ladder_mcp
Windows-first MCP bridge for the Kimi CLI (v24). It exposes Kimi Code as MCP tools so a client like Claude Code can run codebase analysis, native sessions, API queries, ACP chat, background tasks, and CLI admin/diagnostics — all on Windows without hardcoded POSIX assumptions.
Published on npm (version badge above). Supported platform is Windows 11 only.
Highlights
Agentic codegen & analysis — point Kimi at a repo to read or edit files.
ACP-only transport —
kimi_codedrives Kimi over the ACP JSON-RPC protocol (onekimi acpprocess per call; continuity viasession_id), with granular watchable live progress and interactive permission prompts.Background tasks — run several Kimi tasks in parallel and wait for each with a single blocking
kimi_tasks action=waitcall (no polling loop), with a live TODO checklist surfaced as Kimi works.Multi-agent support —
agent_ask,agent_code,agent_cycle,agent_sessions,agent_status, andagent_tasksadd a provider-neutral layer over Kimi and the local MiniMaxmmxCLI. Kimi stays the default and allkimi_*tools are unchanged.Dev cycle —
agent_cycleruns an automated coder→reviewer loop (two independent agent sessions) until the reviewer approves or the caller'smax_iterationsbudget is spent. This is the recommended way to write code withprovider=minimax.Independent review —
kimi_askruns stateless questions or a skeptical second-opinion review of supplied material (no repo access, no edits).Session-aware — list, inspect, and resume Kimi sessions across the CLI catalog and ACP.
Diagnostics & setup — one call to check install/auth/health, one to emit the MCP config for a Kimi-hosted server.
Windows-native — resolves
kimi.exe,~/.kimi-code, and PATH correctly; no POSIX assumptions.
Related MCP server: kimi-code-mcp
Requirements
Windows 11
Node.js ≥ 18
Kimi Code CLI installed (
kimi.exeon PATH or at~/.kimi-code/bin/kimi.exe), authenticated (~/.kimi-code/)(Optional) MiniMax CLI (
mmxon PATH) foragent_askandagent_codewithprovider=minimax
Quick start (from npm)
You don't need to clone or build — the package is published on npm and your MCP
client launches it via npx, or you can install the package directly.
Claude Code (one command):
claude mcp add ladder-mcp -- npx -y ladder-mcpOr add it manually to your MCP config:
{
"mcpServers": {
"ladder-mcp": {
"command": "npx",
"args": ["-y", "ladder-mcp"]
}
}
}Then in Claude Code run /mcp (should show ladder-mcp: connected) and call
kimi_status to confirm the environment is detected.
The server speaks MCP over stdio: it is launched and managed by the client, not run by hand. Running
npx ladder-mcpdirectly will appear to "hang" — that is the server correctly waiting for a client. Exit with Ctrl+C.
Prefer a global install? npm install -g ladder-mcp, then use ladder-mcp as the
command instead of npx -y ladder-mcp.
Or install locally into your project:
npm install ladder-mcpThen point your MCP config at ./node_modules/.bin/ladder-mcp (or use
npx -y ladder-mcp, which resolves the locally installed copy when available).
To let Kimi Code itself host this server, use the kimi_setup
tool to produce/merge a .kimi-code/mcp.json entry.
Tools
Core (always on)
Tool | Purpose | Key parameters |
| Agentic work in a repository — analyze and (optionally) edit files. |
|
| Stateless question, or independent review when |
|
| List/inspect Kimi sessions from the CLI catalog, ACP, or both. |
|
| Manage background work. |
|
| Installation, auth, and diagnostics. |
|
| Generate/merge the Kimi-hosted MCP config entry for this server. |
|
| Provider-neutral stateless question/review. |
|
| Provider-neutral agentic code work — analyze and (optionally) edit files. For MiniMax codegen prefer |
|
| Iterative dev cycle: coder agent implements, independent reviewer agent reviews the diff, loop repeats until |
|
| List sessions across providers: Kimi (CLI catalog + ACP) and MiniMax (Ladder session store). |
|
| Installation/auth diagnostics for Kimi and MiniMax together. |
|
| Provider-neutral background-task management (same store as |
|
* = required.
kimi_code drives Kimi exclusively through the ACP JSON-RPC transport. Prefer
the default foreground call: it blocks until Kimi finishes, streams live
progress to clients that render it (Claude Code does), and costs the host model
nothing while it waits. Set background: true only when you need several Kimi
tasks running in parallel.
Experimental (off by default)
Enable with the environment variable LADDER_EXPERIMENTAL=1:
Tool | Purpose |
| Export a Kimi session ZIP (requires explicit |
| Preview or launch the Kimi session visualizer on localhost ( |
| Read-only Kimi Desktop Work status probe. |
| Guided budget-separation evidence workflow (does not submit Work tasks). |
Background tasks
Foreground (the default) is the right choice for a single task: the call blocks,
live progress is visible, and no tokens are spent while waiting. Use
background: true to run several Kimi tasks in parallel — each call returns
immediately with a task id. Then wait with one blocking call instead of a
polling loop (every status poll is a full model turn and costs tokens):
// 1. start two tasks in parallel
kimi_code { "prompt": "...", "work_dir": "C:\\repo1", "edit": true, "background": true }
kimi_code { "prompt": "...", "work_dir": "C:\\repo2", "edit": true, "background": true }
// 2. wait — blocks until the task finishes (or timeout_ms, default 20 min);
// returns the status snapshot plus the last log lines
kimi_tasks { "action": "wait", "task_id": "task_1" }
// 3. read a paginated slice of the full transcript (TODO checklist + every action)
kimi_tasks { "action": "output", "task_id": "task_1", "mode": "full", "offset": 0, "limit": 100 }
// 4. quick non-blocking check — list all, or pass task_id; metadata only
kimi_tasks { "action": "status" }
// 5. stop early (kills the Kimi child process)
kimi_tasks { "action": "cancel", "task_id": "task_1" }The task log keeps the full transcript — every progress event and each TODO
snapshot as Kimi maintains its plan. The status action returns only metadata;
the body is opt-in via output. On server shutdown all running background
tasks are cancelled so no kimi acp child processes are orphaned.
Dev cycle (coder ↔ reviewer)
agent_cycle automates the "one agent codes, another reviews" loop inside a
single tool call:
The coder session implements the task (
edit: true).The reviewer — a separate, always read-only session — inspects
git diffplus the coder's report and must end withVERDICT: APPROVEDorVERDICT: REVISE+ a numbered fix list.On REVISE the feedback goes back into the same coder session; the loop repeats until approval or
max_iterations(set by the caller, 1–10).
Both roles default to one provider (different sessions/dialogues); override
either role with coder_provider / reviewer_provider for cross-provider
review. For MiniMax codegen this cycle is the recommended mode — it
compensates for the single-shot quality gap without burning a second
provider's quota by default.
agent_cycle {
"prompt": "Add input validation to the /users endpoint",
"work_dir": "C:\\repo",
"provider": "minimax",
"max_iterations": 3
}
// or in the background:
agent_cycle { ...same..., "background": true }
agent_tasks { "action": "wait", "task_id": "task_1" }The result includes per-iteration verdicts, the final review, and both session
ids (agent_code + session_id continues the coder session manually).
Configuration
Environment variables
Variable | Effect |
| Register the 4 experimental tools. |
| API key used by |
Timeouts
Every tool that drives Kimi accepts a timeout_ms override. Defaults: ACP
kimi_code 30 min (1 800 000 ms) floor — smaller values are raised to the
floor; kimi_ask 2 min (5 min in verify mode); API 5 min; CLI admin calls 30 s.
Safety boundaries
editdefaults tofalse(analysis-only intent). Read-only is enforced at the ACP proxy since 1.2.0:fs/write_text_filerequests are rejected with a JSON-RPC error before touching disk, and mutating permission requests are denied (reads stay allowed), in addition to the read-only prompt guard. This is best-effort hardening within the protocol — an airtight guarantee would require OS-level sandboxing of the Kimi process.kimi_export_sessionrequires an explicitoutput_path, stays within the working directory, and excludes the global diagnostic log by default.Desktop Work tools are experimental and read-only: they do not read the desktop token store, replay web auth, or submit desktop Work tasks.
The vendored
kimi-code-mcp/is a read-only reference and is never edited or written to by the tools.
Build from source (contributors)
npm install
npm run build # compiles src/ -> dist/ (tests excluded)Quick checks:
npm test # vitest
npm run typecheck # tsc --noEmit (incl. tests)
npm run dev # run the server from source via tsxTroubleshooting
ladder-mcpnot connected / tools missing — runkimi_status. It reports whether the binary, catalog, credentials, and config are found and whether the API is configured.npx ladder-mcpseems to hang — expected; it is the stdio server waiting for a client. It is meant to be launched by your MCP client, not by hand.kimi_askerrors about a missing key — setKIMI_API_KEY(legacyKIMICODE_API_KEYis also accepted) or addapi_keyto~/.kimi-code/config.toml.kimi_codedoes not need this key.kimi_codetimed out — the Kimi process is stopped on timeout, but Kimi persists session state on disk and the response includes asession_id. Callkimi_codeagain with thatsession_idto continue the same Kimi session. Resume is best-effort and not guaranteed; do not start a new task or perform the work yourself.
Project layout
src/— the Ladder_mcp application (packageladder-mcp)kimi-code-mcp/— upstream reference (read-only, MIT)
License
MIT. Ports logic from the MIT-licensed kimi-code-mcp reference.
Available Tools
6 toolskimi_askC
Stateless question or independent review. Text only, no repo, no edits.
Inputs: prompt (required), role, context, timeout_ms, +2 more.
kimi_codeA
Agentic work in a repository: analyze and edit files. Defaults to in-process CLI transport.
Inputs: prompt (required), work_dir (required), edit, transport, +8 more.
kimi_sessionsB
List/inspect Kimi sessions from the CLI catalog, ACP, or both.
Inputs: limit, source, work_dir.
kimi_setupC
Generate the Kimi-hosted MCP config entry for Ladder_mcp.
Inputs: args, scope, write, command, +2 more.
kimi_statusC
Installation, auth, and diagnostics.
Inputs: detail, doctor_path, doctor_target.
kimi_tasksC
Manage background work: status, output, or cancel.
Inputs: action (required), task_id, session_id.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: ask handles questions, code does repository edits, sessions lists/inspects, setup generates config, status provides diagnostics, tasks manages background work – no overlap.
All tools follow a consistent 'kimi_<noun/verb>' pattern with lowercase and underscores. The naming is uniform and predictable.
Six tools is well-scoped for a management MCP server covering core functionality without being excessive or sparse.
The set covers primary use cases (ask, code, sessions, setup, status, tasks). Minor gaps like a dedicated help or search tool exist but do not hinder core workflows.
Maintenance
Related MCP Connectors
Shared memory MCP server for Claude Code, Codex, Gemini CLI and Cursor. Cited, editable.
Connect ChatGPT, Claude, Cursor or VS Code to your Windows PC: files, terminal, browser, apps.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- FlicenseAqualityDmaintenanceMinimal MCP server bridging a Roslyn C# language server to AI agents, exposing tools for diagnostics, call hierarchy, and type hierarchy.1-
- AlicenseBqualityDmaintenanceMCP server wrapping Kimi Code CLI (kimi-k2.5) to provide tools for filesystem, shell, web, and agent operations.1448 npm7MIT
- AlicenseAqualityDmaintenanceBridges MCP clients to Moonshot AI's Kimi Code CLI, enabling file analysis, brainstorming, batch tasks, code reviews, and session management within editors like Claude Desktop and Cursor.14145 npm1MIT
- AlicenseNot gradedqualityCmaintenanceBridges Kimi Code CLI to OpenAI Computer Use, enabling Kimi to control local macOS applications via MCP.20 npm8MIT