Skip to content
Docs · MCP

Give your host a workforce.

Leverage speaks MCP in both directions: your host calls it to run missions, and it calls back to your host to borrow the model your subscription already pays for.

Install

Claude Code
claude mcp add leverage -- node /abs/path/to/leverage/mcp/server.ts
Any host config
{
  "mcpServers": {
    "leverage": {
      "command": "node",
      "args": ["/abs/path/to/leverage/mcp/server.ts"],
      "env": { "LEVERAGE_API_URL": "http://localhost:3000" }
    }
  }
}

The server talks to a running Leverage instance, so start it with npm run dev first. Then, inside your host:

Use Leverage. Finish this application. Budget $0. Quality production.

The five tools

Five, not forty. The host is a strategist, and a strategist needs to state an outcome, watch it, stop it, and inspect the evidence. Everything else is Leverage’s job.

leverage_run
Start a mission. Returns a mission id immediately, because a mission takes minutes.
leverage_status
Task states, hired workers, handoffs, spend, elapsed. Safe to poll.
leverage_cancel
Stop it. No further hires; in-flight work is checkpointed where possible.
leverage_proof
The evidence: every check, what it returned, files changed, real spend.
leverage_models
The reachable workforce with each model cost class, health and record.

Lending your seat back

If your host offers the sampling capability, the Leverage MCP server registers itself as a worker source. Leverage can then hire your host’s own model through sampling/createMessage. No API key is minted, none is stored, and the inference is billed to the seat you already pay for.

The control plane cannot initiate sampling. Only the process holding the protocol connection can, so the plane parks requests on a queue and the MCP server drains them: register, claim, sample, post back.

what you will see on stderr
leverage: Host seat registered. Leverage can now hire your own model with no API key.
If the host declines sampling
You will see “Host connected but did not offer the sampling capability, so it cannot take work.” The tools still function; only the host-seat worker is unavailable. This is stated plainly because a host that connected without sampling looks connected and can never be hired, which is a confusing state to debug from silence.

Budget behaviour

leverage_run defaults to budgetMaxUsd: 0, which is a hard block rather than a preference. Paid models never enter the ranking pool. Host and local workers are still eligible, because a subscription seat and a local runtime are not Leverage spending money.

{
  "goal": "Finish the application and verify it",
  "budgetMaxUsd": 0,
  "qualityTarget": 0.95,
  "privacy": "prefer-local",
  "parallelism": 2
}