Open Bridge
A lightweight MCP (Model Context Protocol) server that enables AI coding assistants to interact with OpenRouter API. Works with Claude Code, Cursor, VS Code, and other MCP-compatible clients.
✨ Features
- Direct OpenRouter API Integration: Async HTTP calls using httpx
- Simple MCP Tools: Three core functions for queries, file analysis, and batch processing
- Stateless Operation: No sessions, caching, or complex state management
- Production Ready: Robust error handling with configurable timeouts (default: 90 seconds)
- Minimal Dependencies: httpx, python-dotenv, and mcp>=1.0.0
- Async/Await: Full async support for concurrent operations
- Model Flexibility: Support any OpenRouter-compatible model
🚀 Quick Start
Prerequisites
-
Get OpenRouter API Key:
# Visit https://openrouter.ai/keys # Sign up and get your API key
-
Set Environment Variable:
export OPENROUTER_API_KEY="your-api-key-here"
Installation
Local Development:
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -e .
# Run directly
python -m src
Using uvx (from local directory):
uvx --from /path/to/open-bridge open-bridge
⚙️ Configuration
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
OPENROUTER_API_KEY |
✅ Yes | - | Your OpenRouter API key |
OPENROUTER_MODEL |
No | openai/gpt-4o |
Model to use |
OPENROUTER_TIMEOUT |
No | 90 |
Request timeout (seconds) |
Example Configuration (Claude Code)
# Add to Claude Code with local installation
claude mcp add open-bridge -s user \
--env OPENROUTER_API_KEY=sk-or-... \
--env OPENROUTER_MODEL=anthropic/claude-3.5-sonnet \
-- python -m $(pwd)/src
🛠️ Available Tools
| Tool | Description |
|---|---|
consult_openrouter |
Direct API query with structured output |
consult_openrouter_with_stdin |
Pipe file content for analysis |
consult_openrouter_batch |
Multiple concurrent queries |
📋 Usage Examples
# Basic query
consult_openrouter(
query="What authentication patterns are used in this project?",
directory="/path/to/project",
format="json"
)
# File analysis
consult_openrouter_with_stdin(
stdin_content=open("src/auth.py").read(),
prompt="Review this file for security issues",
directory="/path/to/project"
)
# Batch processing
consult_openrouter_batch(
queries=[
{"query": "Analyze authentication patterns"},
{"query": "Review database implementations"}
],
directory="/path/to/project"
)
🏗️ Architecture
- API-First: Direct async HTTP calls to OpenRouter API
- Stateless: Each tool call is independent with no session state
- Async/Await: Full async support for concurrent operations
- Error Handling: Comprehensive HTTP and timeout error handling
📄 License
MIT License - see LICENSE file for details.
Focus: A simple, reliable bridge between Claude Code and OpenRouter API.
Metadata
Release files for openrouter-mcp-bridge 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openrouter_mcp_bridge-1.0.0.tar.gz | 8.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openrouter_mcp_bridge-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.2 kB
Release files / openrouter_mcp_bridge-1.0.0.tar.gz
| Download URL | openrouter_mcp_bridge-1.0.0.tar.gz |
|---|---|
| Size | 8.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fcfc0111d42bd22c944d63df14b937a847b463837e0d41ae3e71fc836f27a547
|
|
BLAKE2b-256 checksum How to use checksums |
ff32dfac30c5c196ef1ff1f062d26bed9e6231886e74df18b73668c75d81cfd5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / openrouter_mcp_bridge-1.0.0-py3-none-any.whl
| Download URL | openrouter_mcp_bridge-1.0.0-py3-none-any.whl |
|---|---|
| Size | 9.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bac7e9df4f1b9640a83d308d8295e6ad977be22e54483003f54f8d6df5e94b64
|
|
BLAKE2b-256 checksum How to use checksums |
d63c9447270343e01eb15a71580c3d9fedf38adbca5555609b7ab60f70a0cdda
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|