Drive BullMQ from your editor
Workbench 0.5.1 ships @getworkbench/mcp — a Model Context Protocol server that lets Cursor, Claude Desktop, Zed, and Continue.dev see, debug, and operate your BullMQ queues from the same chat box you already use for code.
Workbench 0.5.1 ships @getworkbench/mcp — a Model Context Protocol server that lets Cursor, Claude Desktop, Zed, Continue.dev, and any other MCP-aware agent see, debug, and operate your BullMQ queues from the same chat box you already use for code.
Workbench already gives developers a beautiful BullMQ dashboard. The MCP gives agents the same surface. Same data, same operations, same permissions — but reachable from your editor.
What it lets the agent do
Real prompts the MCP unlocks today:
- “Why is email-send backed up?” — the agent calls workbench_get_metrics, sees p95 latency spiked at 14:02, calls workbench_list_runs with status=failed and from=14:00, finds the regression in the stack trace.
- “Retry every failed webhook-deliver from the last hour.” — workbench_list_runs then workbench_bulk_retry.
- “Run the nightly billing scheduler now so I can verify the fix.” — workbench_list_schedulers then workbench_run_scheduler_now, the one-off trigger added in Workbench 0.5.0.
Install in 30 seconds
The MCP is a tiny npx-runnable binary — no global install, no port to manage. In Cursor, drop the following into ~/.cursor/mcp.json:
{
"mcpServers": {
"workbench": {
"command": "npx",
"args": ["-y", "@getworkbench/mcp"],
"env": {
"WORKBENCH_URL": "http://localhost:3000/jobs",
"WORKBENCH_USERNAME": "admin",
"WORKBENCH_PASSWORD": "hunter2"
}
}
}
}Restart Cursor and the 18 workbench_* tools appear in the chat. The same pattern works for Claude Desktop, Zed, and Continue.dev with their respective config paths — full snippets for each editor live in the package README.
Only one env var is required: WORKBENCH_URL, pointing at the URL where you'd open the dashboard in a browser. WORKBENCH_USERNAME + WORKBENCH_PASSWORD (or WORKBENCH_TOKEN) cover the same Basic Auth your dashboard was started with.
The 18 tools
Tools are grouped by intent and annotated so MCP clients know how to gate them. Inspect tools are tagged readOnlyHint: true so clients like Cursor can auto-approve them; operate tools are tagged destructiveHint: true so the user is prompted before each call.
Inspect (read-only)
- workbench_get_overview
- Per-queue snapshot — names, paused state, count summary.
- workbench_list_queues
- Queues with full per-status counts.
- workbench_get_quick_counts
- Lightweight counts, cheap for polling.
- workbench_get_metrics
- Per-queue p50 / p95 latency and throughput.
- workbench_get_activity
- 24h completed / failed buckets for the activity heatmap.
- workbench_list_jobs
- Jobs in a queue, status-filtered, paginated.
- workbench_list_runs
- Cross-queue runs with text, status, time, and tag filters.
- workbench_get_job
- Full payload + attempts + stack trace for one job.
- workbench_search_jobs
- Free-text search across job ids, names, and indexed tag values.
- workbench_list_schedulers
- Repeatable + delayed scheduler entries.
- workbench_list_flows
- Recent FlowProducer roots.
- workbench_get_flow
- Full DAG for a FlowProducer flow.
- workbench_list_tag_values
- Distinct values for a configured tag field.
Operate (gated, prompts the user)
- workbench_retry_job
- Retry a single failed job.
- workbench_remove_job
- Delete a job (any state).
- workbench_promote_job
- Force a delayed job to run now.
- workbench_pause_queue
- Pause a queue.
- workbench_resume_queue
- Resume a paused queue.
- workbench_run_scheduler_now
- One-off trigger for a repeatable scheduler.
- workbench_enqueue_job
- Add a new job to a queue.
- workbench_clean_jobs
- Bulk-remove completed or failed jobs.
- workbench_bulk_retry
- Retry many failed jobs in one call.
- workbench_bulk_delete
- Delete many jobs in one call.
How it works
The MCP is deliberately not a second connection to Redis. It speaks JSON-RPC over stdio to your editor (the standard MCP transport, what every client in the wild expects) and HTTP to your running Workbench dashboard — the dashboard is the one that owns the Redis connection, the auth, the readonly flag, and the queue config.
Cursor / Claude / Zed / Continue ─┐
│ JSON-RPC (stdio)
▼
workbench-mcp
│ HTTP + Basic Auth
▼
Workbench dashboard
│ ioredis
▼
Redis / BullMQThat layering is the whole point of shipping this as an optional, separate package: no second source of truth for permissions, no parallel Redis pool to keep in sync, no duplicated business logic. If your dashboard is in readonly: true, every write tool returns a 403 the agent can show you verbatim instead of silently mutating production.
Auth and readonly are inherited end-to-end
For unattended agents, run the dashboard with readonly: true and pass the MCP the same Basic Auth credentials. Every operate tool will refuse cleanly with an actionable error message; every inspect tool keeps working. For regular use, leave the dashboard as you already have it — the MCP will prompt before any destructive call thanks to the destructiveHint annotation.
Frequently asked questions
- What is the Workbench MCP server?
- @getworkbench/mcp is an open-source Model Context Protocol server that lets AI agents — Cursor, Claude Desktop, Zed, Continue.dev, and any other MCP client — inspect, debug, and operate BullMQ queues through a running Workbench dashboard. It ships 18 tools split between read-only inspection and gated destructive operations, runs locally over stdio, and reuses the dashboard's existing Basic Auth and readonly flag instead of introducing a new permission model.
- Which AI editors and agents does it work with?
- Any MCP-aware client. The package is verified against Cursor, Claude Desktop, Zed, and Continue.dev, and works the same way with VS Code's Copilot agent, Goose, and other MCP runtimes because the server speaks the standard JSON-RPC over stdio protocol. Install instructions for each editor live in the package README at github.com/pontusab/workbench/tree/main/packages/mcp.
- Does the Workbench MCP need its own Redis connection?
- No. The MCP is a thin HTTP proxy in front of a running Workbench dashboard — it never talks to Redis directly. You configure it with a single WORKBENCH_URL pointing at your dashboard (and optionally the same Basic Auth credentials the dashboard already uses). All BullMQ work happens server-side inside the dashboard, so there's no second connection pool to manage and no second source of truth for queue config.
- Does the MCP respect the dashboard's readonly mode?
- Yes, end-to-end. When the dashboard is started with readonly: true it rejects every write operation with a 403, and the MCP surfaces that 403 to the calling agent as an actionable error message explaining that the dashboard is in readonly mode. The agent can still call every inspect tool — list queues, inspect jobs, read metrics — but cannot retry, remove, pause, enqueue, or trigger schedulers until readonly is disabled.
- What tools does the Workbench MCP expose?
- 18 tools across two intents. Inspect (readOnlyHint): workbench_get_overview, list_queues, get_quick_counts, get_metrics, get_activity, list_jobs, list_runs, get_job, search_jobs, list_schedulers, list_flows, get_flow, list_tag_values. Operate (destructiveHint): workbench_retry_job, remove_job, promote_job, pause_queue, resume_queue, run_scheduler_now, enqueue_job, clean_jobs, bulk_retry, bulk_delete. Clients use the annotations to auto-approve reads and prompt before writes.
- How do I install the Workbench MCP in Cursor?
- Add an entry under "mcpServers" in ~/.cursor/mcp.json: { "workbench": { "command": "npx", "args": ["-y", "@getworkbench/mcp"], "env": { "WORKBENCH_URL": "http://localhost:3000/jobs", "WORKBENCH_USERNAME": "admin", "WORKBENCH_PASSWORD": "hunter2" } } }. Restart Cursor and the 18 workbench_* tools appear in the chat. The same pattern works for Claude Desktop, Zed, and Continue.dev with their respective config files — see the package README for the exact paths.
- Is the Workbench MCP free and open source?
- Yes. @getworkbench/mcp is MIT-licensed, ships on npm, and the source lives at github.com/pontusab/workbench/tree/main/packages/mcp. There is no paid tier, no telemetry, and no account required — same as the rest of the Workbench project.