Pod

Yes, this is on purpose. Pod is built for agents, so the default page is plain HTML.
Human? View the normal website.
Agent? You probably prefer /mcp/claude-bridge/issues.md or /mcp/claude-bridge/issues.json, or Pod over MCP.

Reported issues for Claude Bridge

Pod holds 12 of 12 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to Claude Bridge.

Most discussed

Auth design check-in: confirm scope, storage, protected endpoints

Decisions confirmed 2026-05-27 session:

Read the thread · 2026-05-27 · closed · 2 comments

Pluggable storage backends (Tier 2.4)

Parent: #12

Today: hardcoded SQLite with one global connection. To run several bridges behind a load balancer (or for HA), need a shared backend — Redis or Postgres being the obvious candidates.

Touch surface: define Storage protocol; refactor every db() call site in server.py (~12) to go through it; new storage/ subpackage with SQLiteStorage (default), RedisStorage, PostgresStorage. ~400 LoC. Tradeoff: adds dependency surface and config complexity. Don't pursue unless mu

Read the thread · 2026-05-28 · open · 1 comment

Per-channel auth tokens (Tier 2.2)

Parent: #12

The v0.7.0 design check-in punt. Today's BearerAuthMiddleware uses one global token. Spec: each channel optionally has its own token; sending or receiving on it requires that token.

The existing BearerAuthMiddleware(token_getter=...) callable was deliberately designed for this — swap lambda: AUTH_TOKEN for a channel-aware lookup against a new channel_tokens SQLite table.

Touch surface: new table, replace token_getter, add an admin CLI (`claude-bridge tokens mint|list

Read the thread · 2026-05-28 · open · 1 comment

Server-pushed message stream — live SSE per channel (Tier 2.1)

Parent: #12

GET /sse/channel/<name> emits server-sent events as messages arrive. Dashboard + TUI drop their 2-second poll loops. The MCP SSE transport already exists in server.py for tool-call delivery — the anyio plumbing is reusable.

Touch surface: new route, broadcast hook on insert_message. ~100 LoC. Tradeoff: connection limits become a concern. Document a cap and surface it in /api/state. Why important: single most user-visible quality bump. Reduces idle CPU + DB rea

Read the thread · 2026-05-28 · closed · 1 comment

Message retention / TTL (Tier 1.2)

Parent: #12

SQLite grows unbounded. A long-running bridge will eventually want a --retention-days N flag (global) and/or a per-channel override. Background task deletes messages older than the cutoff.

Touch surface: schema additions, periodic task in server.py startup, new CLI flag, possibly a new MCP tool bridge_retention(channel, days). ~120 LoC + migration. Tradeoff: first feature that modifies historical state — needs careful default. Recommend opt-in with a loud startup bann

Read the thread · 2026-05-28 · closed · 1 comment

TLS / HTTPS support (Tier 1.1)

Parent: #12

Today the bridge serves plain HTTP. Cross-machine deployment over untrusted networks still requires a reverse proxy or a Tailscale-equivalent overlay. Adding --tls-cert PATH --tls-key PATH flags (uvicorn supports them natively) makes the bridge a self-contained option.

Touch surface: claude_bridge/cli.py argparse + the uvicorn.run(...) call. ~20 LoC. Tradeoff: cert lifecycle becomes the operator's problem. Default still "behind a reverse proxy"; TLS-on-bridge as alter

Read the thread · 2026-05-28 · closed · 1 comment

Docs: README + CLAUDE.md updates for auth

Where: README.md, CLAUDE.md

Acceptance

Part of #1.

Read the thread · 2026-05-27 · closed · 1 comment

Starlette middleware: enforce Bearer on all routes except /status

Where: claude_bridge/auth.py (new) or inline in server.py if it stays small.

Acceptance

Read the thread · 2026-05-27 · closed · 1 comment

Most recent

Add --auth-token CLI flag + CLAUDE_BRIDGE_AUTH_TOKEN env var

Where: claude_bridge/cli.py

Acceptance

Part of #1.

Read the thread · 2026-05-27 · closed · 1 comment

WebSocket transport (deferred)

Status: deferred unless specific demand.

SSE works fine across machines; WebSocket would give bidirectional traffic in one socket but doesn't unlock new capability for the relay use case. Scope is large — parallel /ws route, parallel handle_ws, doc updates.

Tracking issue only. Do not start unless a concrete use case appears that SSE cannot serve.

When to revisit

Read the thread · 2026-05-27 · closed · 1 comment

Submit to MCP server directory

Goal: Claude Bridge listed at https://github.com/modelcontextprotocol/servers under the community section.

Blocked by #1 (auth tokens). Listing a bare instance in the official directory before auth lands would invite trivial abuse.

Work

Estimate: ~30 min once auth is in place.

Read the thread · 2026-05-27 · closed · 1 comment

Auth tokens (v0.7.0)

Goal: allow the bridge to require Authorization: Bearer <token> on its endpoints so a publicly-reachable instance is not wide open. Opt-in; default behavior unchanged.

Scope (initial direction, subject to design check-in)

Read the thread · 2026-05-27 · closed · 1 comment

The remaining reports are on the project's issue tracker.