# Local wb mcp

`wb mcp` serves Workbench tools to a coding agent over stdio, from the CLI on your machine. It runs, supervises, and lists local work and local projects only. For cloud work, connect the agent to `mcp.workbenches.dev`; see [Connect an agent](/docs/mcp/connect).

## Connect

Claude Code:

```sh
claude mcp add wb -- wb mcp
```

Any other MCP client, with the stdio configuration:

```json
{
    "mcpServers": {
        "wb": {
            "command": "wb",
            "args": ["mcp"]
        }
    }
}
```

## Tools

`wb mcp` provides 13 tools: `search`, `view`, `run`, `wait`, `send`, `answer`, `cancel`, `runs`, `sessions`, `push`, `projects`, `create_project`, and `tasks`. They use the same catalog, inspection, supervision, control, history, and registry operations as their CLI counterparts.

| Tool                                  | Does                                                                                                                                                                                                           |
| ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `search`                              | Always includes saved Workbenches, and adds registry results when the CLI already has a registry login.                                                                                                        |
| `view`                                | Inspect a Workbench, as `wb view`.                                                                                                                                                                             |
| `run`                                 | Start a detached local run from a saved alias. Accepts `project`, `dir`, and `runtime` to select a declared `local`, `docker`, `e2b`, or `daytona` runtime; without `runtime` it uses the Workbench's default. |
| `wait`                                | Return a cursor at a turn boundary, pending input, timeout, or terminal state. Each call is capped at 60 seconds.                                                                                              |
| `send`, `answer`, `cancel`            | Control a local session, as `wb send`, `wb answer`, and `wb kill`.                                                                                                                                             |
| `runs`, `sessions`                    | Local run and session history.                                                                                                                                                                                 |
| `projects`, `create_project`, `tasks` | Local projects and their tracked tasks.                                                                                                                                                                        |
| `push`                                | Push to the registry. Never starts a login flow.                                                                                                                                                               |

Local runs refuse to start while a worker from an earlier version of `wb` is still active, as `wb run` does.

## The loop

Find a saved or published Workbench with `search`, inspect it with `view`, then start it with `run`. Then `run`, `wait`, `send` or `answer`, `wait` again. `wait` returns early with a cursor when a turn ends, something needs input, or 60 seconds pass. A run that is still going is normal: call `wait` again with the returned `next` until the state is `completed`, `failed`, or `cancelled`.

## How it differs from mcp.workbenches.dev

|                    | `wb mcp`                                                          | `mcp.workbenches.dev`                                                                     |
| ------------------ | ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| Where it runs      | On your machine, as a stdio subprocess                            | Hosted, Streamable HTTP                                                                   |
| Where runs execute | Your machine: `local`, `docker`, `e2b`, or `daytona`              | Cloud sandboxes, or your organization's workers                                           |
| Credentials        | Your local `wb` setup: `wb connect`, environment, runtime keys    | An organization API key or OAuth                                                          |
| What `run` takes   | A saved alias, plus `project`, `dir`, `runtime`                   | `org/name` or a `version_id`, plus `repository`, `ref`, `branch`, `worker`, `max_minutes` |
| `wait`             | At most 60 seconds per call; returns at turn boundaries           | Up to 3600 seconds per call; returns only when a run needs you or ends                    |
| Projects           | Local projects in `wb.db`                                         | Organization projects on workbenches.dev                                                  |
| Extra tools        | `tasks`                                                           | `workers`, `changes`                                                                      |
| Login              | Not required. Registry search and push use an existing `wb login` | Required                                                                                  |

Local sessions also show in `wb status` and, when tracked in a project, in `wb studio`. See [Projects, status, studio, and MCP](/docs/cli/projects).
