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 "Install 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-mcpAnalyze 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: enhanced-filesystem-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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Arhimage/ladder-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server