claude-bridge
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CLAUDE_BRIDGE_CWD | No | Default working dir for claude -p. Per-call cwd= overrides | bridge process cwd |
| CLAUDE_BRIDGE_LOG | No | If set to a path, writes one JSONL line per state transition (dispatch_start, dispatch_end, dispatch_cancelled, dispatch_error, bridge_init_orphans). Helps when something looks wrong at the bridge layer | |
| CLAUDE_BRIDGE_STATE | No | Channel→session map (atomic writes). The same directory holds jobs.json, schedules.json, job-output/<job_id>/{stdout,stderr} and (if enabled) the JSONL log | ~/.claude-bridge/sessions.json |
| CLAUDE_BRIDGE_CLAUDE_BIN | No | Override claude binary location | claude |
| CLAUDE_BRIDGE_LOG_PROMPTS | No | Set to 1 to include prompts in the JSONL log too. Off by default | |
| CLAUDE_BRIDGE_PERSIST_PROMPTS | No | Set to 1 to include the prompt text in jobs.json. Off by default; opt in for post-mortem debugging | |
| CLAUDE_BRIDGE_DEFAULT_PERMISSION_MODE | No | Default if caller omits permission_mode | acceptEdits |
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 | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| bridge_helpA | Return a structured guide to every tool, recommended workflow, and common gotcha. Call this once when you start using the bridge, or whenever you're unsure which tool fits a situation. The shape:
|
| dispatchA | Run a prompt against Claude Code in this devcontainer; return the result. Use for short prompts (under ~60s round trip). For anything longer
use Args:
prompt: The natural-language task for Claude Code.
channel: Logical conversation thread. Same channel = shared
session (subsequent calls Returns:
Success: |
| dispatch_asyncA | Spawn a dispatch in the background, return a Use this for anything that may exceed the MCP transport's per-call
ceiling (~60s in Cowork) — persona runs, refactors, anything in a
busy project. The subprocess is spawned with its own session
( Then poll with Args mirror Optional webhook notification ( Payload shape (truncated to 4KB on Returns:
Success: |
| get_dispatchA | Non-blocking read of a job's current state.
Unknown |
| wait_dispatchA | Long-poll a job for up to Default 50s is intentionally below the typical MCP transport
ceiling (~60s) — call this in a loop and break when |
| cancel_dispatchA | User-cancel a running job. SIGTERMs the subprocess by PID, then
cancels the asyncio task. Status becomes Returns |
| list_jobsA | All tracked jobs (running and finished). |
| schedule_dispatchA | Recurring dispatch: fire Each tick is an independent Args:
prompt: The text fired at each tick.
channel: Channel for every tick. Same-session continuity
across ticks (each tick Returns:
Self-cancellation: if any tick's result text contains
Webhook payload shape ( |
| list_schedulesB | Every schedule the bridge knows about — active, completed, cancelled, error. |
| get_scheduleC | Detail view of one schedule. Includes |
| cancel_scheduleA | Stop a schedule from firing further ticks. In-flight ticks are
not cancelled — use |
| list_completionsA | Jobs whose Use Returns |
| wait_any_completionA | Long-poll up to Default 50s is below the MCP transport ceiling so you can re-enter
in a loop. Useful when watching schedule ticks land without
polling each tick's |
| list_eventsA | Return bridge events whose The event log records dispatch starts/ends, schedule ticks, sentinel hits, schedule completions, webhook outcomes, and recovery actions. The buffer is bounded (default 1000 events) and persisted across bridge restarts. Two read modes:
Cursor pattern: pass
Common
Each event has Note: events generated before this feature shipped are gone — the
in-memory buffer only captures from the current bridge process
onward. Anything you persisted before then lives in the optional
|
| list_channelsA | channel → pinned session_id. Doesn't tell you whether work is
in flight on a channel — use |
| reset_channelA | Drop a channel's pinned session so the next dispatch starts a fresh Claude Code session. Useful when a project MCP server has wedged inside the channel's session and you want a clean reconnect. Does not cancel running work — use |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/JosiahSiegel/claude-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server