MCP server bridging Claude CLI to Codex, Cursor - queries, and search with hardened subprocess management
- ✓Open-source license (MIT)
- ✓Recently active
- ✓Clear description
claude mcp add claude-mcp-bridge -- npx -y claude-mcp-bridge{
"mcpServers": {
"claude-mcp-bridge": {
"command": "npx",
"args": ["-y", "claude-mcp-bridge"],
"env": {
"CLAUDE_BRIDGE_USE_API_KEY": "<claude_bridge_use_api_key>"
}
}
}
}CLAUDE_BRIDGE_USE_API_KEYMCP Servers overview
# claude-mcp-bridge
[](https://www.npmjs.com/package/claude-mcp-bridge)
[](https://www.npmjs.com/package/claude-mcp-bridge)
[](https://github.com/hampsterx/claude-mcp-bridge/actions/workflows/ci.yml)
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org/)
[](https://www.typescriptlang.org/)
[](https://modelcontextprotocol.io/)
[](https://codeguilds.dev/packages/claude-mcp-bridge)
MCP server that wraps [Claude Code CLI](https://github.com/anthropics/claude-code) as a subprocess, exposing its capabilities as [Model Context Protocol](https://modelcontextprotocol.io/) tools.
Works with any MCP client: Codex CLI, Gemini CLI, Cursor, Windsurf, VS Code, or any tool that speaks MCP.
## Do you need this?
If you're in a terminal agent (Codex CLI, Gemini CLI) with shell access, call Claude Code CLI directly:
```bash
# Analyze specific files
claude -p --bare --tools Read -- "Analyze src/utils/parse.ts for edge cases"
# With budget cap
claude -p --bare --max-budget-usd 0.50 "Is this retry logic sound?"
```
`--bare` skips hooks, memory, and plugins for clean subprocess use. `--tools` restricts which tools Claude can use at all; `--allowed-tools` only pre-approves permission and leaves everything else, including `Bash`, still reachable. `--max-budget-usd` prevents runaway costs.
`--tools` is variadic, so end the list with `--` (or another flag) before the prompt. Without it the prompt is read as one more tool name and the CLI exits with "Input must be provided".
For code review, see [Code review with this CLI](#code-review-with-this-cli).
**Use this MCP bridge instead when:**
- Your client has no shell access (Cursor, Windsurf, Claude Desktop, VS Code)
- You need structured output with native `--json-schema` validation
- You need session resume across calls (`--resume SESSION_ID`)
- You need concurrency management and security hardening
- You want cost metadata surfaced in MCP responses
## Quick Start
```bash
npx claude-mcp-bridge
```
### Prerequisites
- [Claude Code CLI](https://github.com/anthropics/claude-code) installed and on PATH
- Authentication (one of):
- **Subscription** (default): `claude login` (uses your Pro/Max plan, no API credits needed)
- **API key**: set `ANTHROPIC_API_KEY` + `CLAUDE_BRIDGE_USE_API_KEY=1` (billed per use via console.anthropic.com)
### Codex CLI
Add to `~/.codex/config.json`:
```json
{
"mcpServers": {
"claude-bridge": {
"command": "npx",
"args": ["-y", "claude-mcp-bridge"]
}
}
}
```
### Gemini CLI
Add to `~/.gemini/settings.json`:
```json
{
"mcpServers": {
"claude-bridge": {
"command": "npx",
"args": ["-y", "claude-mcp-bridge"]
}
}
}
```
### Cursor / Windsurf / VS Code
Add to your MCP settings:
```json
{
"claude-bridge": {
"command": "npx",
"args": ["-y", "claude-mcp-bridge"],
"env": {
"ANTHROPIC_API_KEY": "sk-ant-...",
"CLAUDE_BRIDGE_USE_API_KEY": "1"
}
}
}
```
## Tools
| Tool | Description |
|------|-------------|
| **query** | Execute prompts with file context, session resume, effort control, and budget caps. Supports text and images. For code review, see [Code review with this CLI](#code-review-with-this-cli). |
| **search** | Web search via Claude CLI's WebSearch and WebFetch tools. Returns synthesized answers with sources. |
| **structured** | JSON Schema validated output via Claude CLI's native `--json-schema`. |
| **ping** | Health check with CLI version, auth method, capabilities, and model config. |
| **listSessions** | List active sessions with cumulative cost, turn count, and timestamps. |
### query
Execute a prompt with optional file context. Supports session resume via `sessionId`, effort control (`low`/`medium`/`high`/`max`), and budget caps (`maxBudgetUsd`). Images (.png, .jpg, .gif, .webp, .bmp) up to 5MB each are passed to Claude's Read tool.
Key parameters: `prompt` (required), `files`, `model` (default `sonnet`), `sessionId`, `effort`, `maxBudgetUsd`, `workingDirectory`, `timeout` (default 60s).
### search
Web search powered by Anthropic's WebSearch tool via Claude CLI. Returns synthesized answers with source URLs.
Key parameters: `query` (required), `model` (default `sonnet`), `maxResponseLength`, `maxBudgetUsd`, `timeout` (default 120s).
### structured
Generate JSON conforming to a provided schema using Claude CLI's native `--json-schema` flag. Returns clean JSON in the first content block, metadata in a separate block so JSON parsing isn't broken.
Key parameters: `prompt` (required), `schema` (required, JSON string, max 20KB), `files`, `model` (default `sonnet`), `sessionId`, `maxBudgetUsd`, `timeout` (default 60s).
### ping
No parameters. Returns CLI version, auth method (subscription/api-key/none), configured models, capabilities, and server version.
### listSessions
No parameters. Returns active sessions with metadata: `sessionId`, `model`, `createdAt`, `lastUsedAt`, `turnCount`, `totalCostUsd`.
All tools attach execution metadata (`_meta`) with `durationMs`, `model`, `sessionId`, `totalCostUsd`, and token breakdowns. See [DESIGN.md](DESIGN.md) for details.
## Configuration
### Models
| Variable | Default | Description |
|----------|---------|-------------|
| `CLAUDE_DEFAULT_MODEL` | | Shared default for all tools |
| `CLAUDE_QUERY_MODEL` | `sonnet` | Default for query |
| `CLAUDE_STRUCTURED_MODEL` | `sonnet` | Default for structured |
| `CLAUDE_SEARCH_MODEL` | `sonnet` | Default for search |
| `CLAUDE_FALLBACK_MODEL` | `haiku` | Fallback on quota exhaustion (`none` to disable) |
Model resolution: explicit parameter > tool-specific env var > `CLAUDE_DEFAULT_MODEL` > built-in default.
### Runtime
| Variable | Default | Description |
|----------|---------|-------------|
| `CLAUDE_MAX_CONCURRENT` | `3` | Max concurrent subprocess spawns |
| `CLAUDE_CLI_PATH` | `claude` | Path to CLI binary |
| `CLAUDE_MAX_BUDGET_USD` | | Global cost cap in USD (per call) |
| `ANTHROPIC_API_KEY` | | API key (only forwarded when `CLAUDE_BRIDGE_USE_API_KEY=1`) |
| `CLAUDE_BRIDGE_USE_API_KEY` | | Set to `1` to forward `ANTHROPIC_API_KEY` to the subprocess (default: subscription auth) |
### Effort
| Variable | Default | Description |
|----------|---------|-------------|
| `CLAUDE_SEARCH_EFFORT` | `medium` | Default effort for search |
| `CLAUDE_QUERY_EFFORT` | | Default effort for query |
### Tools
Each spawned subprocess gets an explicit built-in toolset. The defaults are read-only, so `Bash`, `Write` and `Edit` are not granted unless you widen them below.
| Variable | Default | Description |
|----------|---------|-------------|
| `CLAUDE_QUERY_TOOLS` | `Read Glob Grep` | Built-in tools for query |
| `CLAUDE_STRUCTURED_TOOLS` | `Read Glob Grep` | Built-in tools for structured |
| `CLAUDE_SEARCH_TOOLS` | `WebSearch WebFetch` | Built-in tools for search |
Accepts a comma or space separated list, `default` for the CLI's full built-in set, or an empty value for no tools. Widening these gives the subprocess real capability in the working directory you pass it. See [SECURITY.md § Tool Sandboxing](SECURITY.md#tool-sandboxing).
## Choosing a Claude Code MCP server
| You need... | Consider |
|-------------|----------|
| Structured output, effort/budget control, session resume, cost metadata | This bridge |
| Multi-tool orchestration (read, grep, edit, bash as separate MCP tools) | [mcp-claude-code](https://github.com/SDGLBL/mcp-claude-code) |
| Session continuity with async execution | [claude-mcp](https://github.com/zhendalf/claude-mcp) |
| Maintained lightweight wrapper | [@kunihiros/claude-code-mcp](https://github.com/KunihiroS/claude-code-mcp) |
| Native Claude Code MCP (built-in, no wrapper) | `claude mcp serve` ([docs](https://github.com/anthropics/claude-code)) |
## Performance
Claude Code CLI has minimal startup overhead. Wall time is dominated by model inference and any agentic exploration.
| Scenario | Typical time |
|----------|-------------|
| Trivial prompt (sonnet) | 5-10s |
| Web search + synthesis | 15-30s |
Cost metadata (`totalCostUsd`, token breakdowns) is returned in `_meta` on every response.
## Bridge family
Two MCP servers, same architecture, different underlying CLIs. Each wraps a terminal agent as a subprocess and exposes it as MCP tools. Pick the one that matches your model provider, or run both for cross-model workflows.
| | [claude-mcp-bridge](https://github.com/hampsterx/claude-mcp-bridge) | [codex-mcp-bridge](https://github.com/hampsterx/codex-mcp-bridge) |
|---|---|---|
| **CLI** | Claude Code | Codex CLI |
| **Provider** | Anthropic | OpenAI |
| **Tools** | query, search, structured, ping, listSessions | codex, search, query, structured, ping, listSessions |
| **Code review** | Use Claude Code built-ins directly (not via this bridge), or `claude -p` for non-Claude-Code hosts | `codex review --base <ref>` (native) or `codex` tool with caller-supplied prompt |
| **Structured output** | Native `--json-schema` (no Ajv) | Ajv validation |
| **Session resume** | Native `--resume` | Session IDs with multi-turn |
| **Budget caps** | Native `--max-budget-usd` | Not supported |
| **Effort control** | `--effort low/medium/high/max` | Not supported |
| **Cold start** | ~1-2s | <100ms (inference dominates) |
| **Auth** | `claude login` (default) or `ANTHROPIC_API_KEY` + opt-in | `OPENAI_API_KEY` |
| **Cost** | Subscription (default) or API credits (opt-in) | PaWhat people ask about claude-mcp-bridge
What is hampsterx/claude-mcp-bridge?
+
hampsterx/claude-mcp-bridge is mcp servers for the Claude AI ecosystem. MCP server bridging Claude CLI to Codex, Cursor - queries, and search with hardened subprocess management It has 6 GitHub stars and was last updated today.
How do I install claude-mcp-bridge?
+
You can install claude-mcp-bridge by cloning the repository (https://github.com/hampsterx/claude-mcp-bridge) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is hampsterx/claude-mcp-bridge safe to use?
+
Our security agent has analyzed hampsterx/claude-mcp-bridge and assigned a Trust Score of 74/100 (tier: OK). See the full breakdown of passed checks and flags on this page.
Who maintains hampsterx/claude-mcp-bridge?
+
hampsterx/claude-mcp-bridge is maintained by hampsterx. The last recorded GitHub activity is from today, with 0 open issues.
Are there alternatives to claude-mcp-bridge?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy claude-mcp-bridge to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/hampsterx-claude-mcp-bridge)<a href="https://claudewave.com/repo/hampsterx-claude-mcp-bridge"><img src="https://claudewave.com/api/badge/hampsterx-claude-mcp-bridge" alt="Featured on ClaudeWave: hampsterx/claude-mcp-bridge" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!