wb-cursor-bridge
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CURSOR_BIN | No | Path to the Cursor CLI binary (cursorBin). Default: agent.exe. | agent.exe |
| CURSOR_BRIDGE_A2A_HOST | No | Listen address for the A2A service (a2aHost); 0.0.0.0 exposes it externally (requires a2aAuthToken). Default: 127.0.0.1. | 127.0.0.1 |
| CURSOR_BRIDGE_A2A_PORT | No | When non-zero, exposes the A2A HTTP service (Agent Card + JSON-RPC) (a2aPort). Default: 0 (disabled). | 0 |
| CURSOR_BRIDGE_LOG_LEVEL | No | Log level: debug / info / warn / error (logLevel). Default: info. | info |
| CURSOR_BRIDGE_STATE_DIR | No | Directory for index, logs and artifacts (stateDir). Default: %LOCALAPPDATA%\wb-cursor-bridge. | |
| CURSOR_BRIDGE_ADMIN_PORT | No | When non-zero, exposes /healthz /stats /jobs on 127.0.0.1 (adminPort). Default: 0 (disabled). | 0 |
| CURSOR_BRIDGE_TIMEOUT_SEC | No | Wall-clock limit per task in seconds (defaultTimeoutSec). Default: 900. | 900 |
| CURSOR_BRIDGE_EVENT_LOG_DIR | No | When set, each job's events are appended asynchronously to <dir>/<jobId>/events.jsonl (eventLogDir). Default: empty. | |
| CURSOR_BRIDGE_A2A_AUTH_TOKEN | No | When set, A2A endpoints (POST /a2a, /healthz, /metrics, /version, artifact downloads) require 'Authorization: Bearer <token>' or 'X-A2A-Token: <token>', otherwise 401 (a2aAuthToken). Default: empty. | |
| CURSOR_BRIDGE_A2A_PUBLIC_URL | No | Externally reachable URL used as the Agent Card url in reverse-proxy/container setups (a2aPublicUrl). Default: empty. | |
| CURSOR_BRIDGE_PERSIST_EVENTS | No | Set to 1 to automatically use <stateDir>/events for event persistence (persistEvents). Default: 0. | 0 |
| CURSOR_BRIDGE_MAX_CONCURRENCY | No | Maximum number of concurrent tasks; exceeding it fails fast (maxConcurrency). Default: 4. | 4 |
| CURSOR_BRIDGE_WORKSPACE_ROOTS | Yes | Allowed repository roots, separated by ';' (workspaceRoots). If empty, all tasks are rejected. | |
| CURSOR_BRIDGE_A2A_CORS_ORIGINS | No | Comma-separated allowed CORS origins; when matched, Access-Control-Allow-Origin is reflected; disabled by default (a2aCorsOrigins). Default: empty. | |
| CURSOR_BRIDGE_A2A_PUSH_ALLOWLIST | No | Comma-separated allowlist of trusted webhook hosts; required when push is enabled and the target is private/loopback (a2aPushUrlAllowlist, SSRF protection). Default: empty. | |
| CURSOR_BRIDGE_A2A_BLOCKING_MAX_MS | No | Upper bound in ms for message/send blocking until terminal state when configuration.blocking is true; range [1000, 600000] (a2aBlockingMaxMs). Default: 90000. | 90000 |
| CURSOR_BRIDGE_A2A_PROTOCOL_VERSION | No | A2A protocol version emitted; set to 1.0 for v1.0-compliant Agent Card and Task (a2aProtocolVersion). Default: 0.3.0. | 0.3.0 |
| CURSOR_BRIDGE_ADMIN_SHUTDOWN_TOKEN | No | When set, /admin/shutdown requires this token (adminShutdownToken). Default: empty. | |
| CURSOR_BRIDGE_A2A_RATE_LIMIT_PER_SEC | No | Token-bucket rate limit for POST /a2a in requests/second; range [1, 100000]; exceeding returns 429 RATE_LIMITED(-32050) (a2aRateLimitPerSec). Default: 250. | 250 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| cursor_runA | Dispatch a task to the Cursor sub-agent and return a job id IMMEDIATELY. This tool never blocks: a real code task takes minutes, so poll with cursor_status. tier=consult is read-only Q&A, tier=plan is read-only planning, tier=execute may write files and is always isolated in a git worktree. |
| cursor_statusB | Poll a job. Pass waitSeconds (max 55) to block briefly until it settles, and |
| cursor_replyA | Send input to a job. If the task is paused in the A2A |
| cursor_cancelB | Cancel a running job and kill its entire process tree. |
| cursor_listB | List recent jobs with status, tier and duration. |
| cursor_diffA | Inspect what an execute job changed: changed file list, diffstat, and optionally the raw patch text. Use offset/limit to page through a large patch. |
| bridge_healthA | Preflight diagnostics: binary resolution, workspace allowlist, state directory writability, concurrency and metrics. Run this first when a task fails for unclear reasons. |
| bridge_statsA | Counters for job outcomes, tier mix and duration, for capacity planning. |
| bridge_shutdownB | Cancel all in-flight jobs, flush state and exit. Use before restarting the bridge so no Cursor process is left orphaned. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool targets a distinct lifecycle step: dispatch, poll, reply/resume, cancel, list, diff inspection, stats, health, and shutdown. The only potentially close pair, cursor_run and cursor_reply, is clearly separated by starting a new job versus resuming or following up on an existing one. No tool appears to duplicate another's purpose.
Names consistently use snake_case with a stable resource prefix: cursor_* for job operations and bridge_* for bridge-level operations. The pattern is predictable and reflects the underlying domain grouping. Minor noun/verb variation (cursor_status, bridge_health) does not undermine consistency.
Nine tools is well-scoped for an asynchronous job bridge, covering dispatch, polling, interaction, cancellation, inspection, diagnostics, and shutdown. Each tool appears to earn its place without obvious filler. The surface is neither thin nor bloated.
The tool set covers the full job lifecycle, including execution, polling, replying/resuming, cancellation, diff inspection, metrics, health checks, and shutdown. A minor gap may exist around explicitly retrieving a finalized job result or artifacts beyond status events and diff output, but agents can likely work around it via cursor_status.