Documentation
Guide
Use Helmlane from other agents
The Helmlane MCP server gives Claude Code, Cursor, Codex or VS Code your computers: list them, read chats, and send work to any agent running on them.
1. Connect this computer, once
Run the login command. Nothing needs installing first:
npx -y @helmlane/mcp-server loginOr install it once and use the helmlane-mcp command directly:
npm install -g @helmlane/mcp-server
helmlane-mcp loginIt prints a link and a code:
Connect Helmlane to this computer
1 Open https://app.helmlane.com/connect
2 Enter BCDF-GHJK- Open the link on your phone or in any browser where you are signed in to Helmlane (
helmlane.com/connectleads to the same page). - Check that the code matches what your terminal shows.
- Choose what the connection may do — read (computers, projects, chats, runs, costs) or read and dispatch (also send work, answer agents, stop runs, start races) — and how long it lasts: 30, 90 or 365 days.
- Approve. If your account has a passkey or an authenticator, Helmlane asks for it first.
The token is stored in your operating system’s keychain — the macOS login keychain, or the Secret Service keyring through secret-tool on Linux. Where neither exists it is stored in ~/.config/helmlane/credentials.jsonwith mode 0600, and the command says so. It never appears on a command line, in a log or in a tool result.
| Option | Effect |
|---|---|
--read-only | Ask only for read |
--origin URL | A self-hosted control plane (default https://api.helmlane.com) |
--no-browser | Do not open the link automatically |
2. Add it to your agent
Once you have logged in, the server needs no environment variables.
Claude Code
claude mcp add --scope user helmlane -- npx -y @helmlane/mcp-serverCursor
{
"mcpServers": {
"helmlane": { "command": "npx", "args": ["-y", "@helmlane/mcp-server"] }
}
}Codex
[mcp_servers.helmlane]
command = "npx"
args = ["-y", "@helmlane/mcp-server"]VS Code
{
"servers": {
"helmlane": { "type": "stdio", "command": "npx", "args": ["-y", "@helmlane/mcp-server"] }
}
}helmlane-mcp config <claude-code|cursor|codex|vscode> prints the same snippets.
3. Use it
Ask your agent something like:
Use Helmlane to ask Codex on my studio Mac to fix the flaky test in the api project, then show me what it changed.
Some answers are deliberately honest rather than tidy. A run whose outcome cannot be known reports outcome_unknown, never “completed”. A cost an agent does not report is “unknown”, never zero. And dispatch refuses to guess when a project lives on two computers — it lists the choices instead.
Tools
| Tool | Scope | What it does |
|---|---|---|
list_machines | read | Your computers, whether they are available, and the agents on each — health, models, whether they can start chats. |
list_projects | read | Projects and their placements (a folder on a computer). |
list_chats | read | Chats in a project, newest first, with work in flight. |
read_chat | read | One page of a transcript; ask for older pages as needed. |
dispatch | dispatch | Send a prompt: follow up in a chat, or start a new one in a project, optionally choosing placement, agent and model. |
get_run_status | read | State of a submission, pending questions, and the reply so far. |
wait_for_run | read | Wait up to ten minutes until it finishes or needs you, reporting progress. |
respond_to_interaction | dispatch | Approve, decline or answer what the agent is waiting on. |
cancel_run | dispatch | Stop a running submission or withdraw a queued one. |
start_race | dispatch | One prompt to two or three agents, each in its own git worktree. |
cost_summary | read | Tokens and cost by agent and model over the last N days. |
A read-only connection only lists the read tools.
Manage the connection
helmlane-mcp status # account, token name, scopes, expiry, last use, where it's stored
helmlane-mcp logout # revoke the token on the server and delete it locally
helmlane-mcp config cursor # print the setup snippet: claude-code, cursor, codex or vscodeEvery connection also appears in the Helmlane app under Settings → API tokens, with its last use and a history of requests. Revoking it there takes effect on the very next request, including one already in flight. “Sign out everywhere else” revokes it too.
CI and containers
Where there is no keychain or browser, give the server a token through the environment instead:
export HELMLANE_API_TOKEN=… # instead of logging in
export HELMLANE_URL=https://helmlane.example.com # only for a self-hosted serverAgainst your own server, log in with its origin:
npx -y @helmlane/mcp-server login --origin https://helmlane.example.comHow it is built
- A client like any other. Every tool is an HTTPS call to the same API the phone app uses. The package cannot reach a database, a server module or a computer’s credential.
- Scoped, revocable, audited. The token is created through a device authorization you approve, stored only as a hash on the server, checked against an explicit allowlist on every request, and every use is recorded. Anything not on the list — security settings, sessions, terminals, port forwards, removing computers — is refused.
- Same rules as your phone. Dispatch goes through the same draft, prepare and submit steps as the app, so queueing and write ownership behave identically, and it never overwrites a draft you are typing on another device.
- Strict arguments. Unknown argument names are rejected, not silently dropped.