physics91/openrouter-mcp
If you are the rightful owner of openrouter-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
OpenRouter MCP Server is a robust Model Context Protocol server that facilitates access to a wide range of AI models through a unified API.
OpenRouter MCP Server
๐ A powerful Model Context Protocol (MCP) server that provides seamless access to multiple AI models through OpenRouter's unified API.
โจ Features
- ๐ง Collective Intelligence System: Advanced multi-model collaboration and consensus building
- 5 specialized MCP tools for ensemble reasoning and intelligent decision-making
- Multi-model consensus with automated agreement analysis and quality scoring
- Ensemble reasoning using specialized models for different task aspects
- Adaptive model selection based on task context, requirements, and performance metrics
- Cross-model validation for content quality assurance and accuracy verification
- Collaborative problem-solving through iterative multi-model interaction
- ๐ค Multi-Model Access: Chat with GPT-4o, Claude 3.5, Llama 3.3, Gemini 2.5, and 200+ other AI models
- ๐ผ๏ธ Vision/Multimodal Support: Analyze images and visual content with vision-capable models
- Support for base64-encoded images and image URLs
- Automatic image resizing and optimization for API limits
- Compatible with GPT-4o, Claude 3.5, Gemini 2.5, Llama Vision, and more
- ๐ Latest Models (Jan 2025): Always up-to-date with the newest models
- OpenAI o1, GPT-4o, GPT-4 Turbo
- Claude 3.5 Sonnet, Claude 3 Opus
- Gemini 2.5 Pro/Flash (1M+ context)
- DeepSeek V3, Grok 2, and more
- โก Intelligent Caching: Smart model list caching for improved performance
- Dual-layer memory + file caching with configurable TTL
- Automatic model metadata enhancement and categorization
- Advanced filtering by provider, category, capabilities, and performance tiers
- Statistics tracking and cache optimization
- ๐ท๏ธ Rich Metadata: Comprehensive model information with intelligent extraction
- Automatic provider detection (OpenAI, Anthropic, Google, Meta, DeepSeek, XAI, etc.)
- Smart categorization (chat, image, audio, embedding, reasoning, code, multimodal)
- Advanced capability detection (vision, functions, tools, JSON mode, streaming)
- Performance tiers (premium/standard/economy) and cost analysis
- Version parsing with family identification and latest model detection
- Quality scoring system (0-10) based on context length, pricing, and capabilities
- ๐ Streaming Support: Real-time response streaming for better user experience
- ๐ Advanced Model Benchmarking: Comprehensive performance analysis system
- Side-by-side model comparison with detailed metrics (response time, cost, quality, throughput)
- Category-based model selection (chat, code, reasoning, multimodal)
- Weighted performance analysis for different use cases
- Multiple report formats (Markdown, CSV, JSON)
- Historical benchmark tracking and trend analysis
- 5 MCP tools for seamless integration with Claude Desktop
- ๐ฐ Usage Tracking: Monitor API usage, costs, and token consumption
- ๐ก๏ธ Error Handling: Robust error handling with detailed logging
- ๐ง Easy Setup: One-command installation with
npx
- ๐ฅ๏ธ Claude Desktop Integration: Seamless integration with Claude Desktop app
- ๐ Full MCP Compliance: Implements Model Context Protocol standards
๐ Quick Start
Option 1: Using npx (Recommended)
# Initialize configuration
npx @physics91/openrouter-mcp init
# Start the server
npx @physics91/openrouter-mcp start
Option 2: Global Installation
# Install globally
npm install -g @physics91/openrouter-mcp
# Initialize and start
openrouter-mcp init
openrouter-mcp start
๐ Prerequisites
- Node.js 16+: Required for CLI interface
- Python 3.9+: Required for the MCP server backend
- OpenRouter API Key: Get one free at openrouter.ai
๐ ๏ธ Installation & Configuration
1. Get Your OpenRouter API Key
- Visit OpenRouter
- Sign up for a free account
- Navigate to the API Keys section
- Create a new API key
2. Initialize the Server
npx @physics91/openrouter-mcp init
This will:
- Prompt you for your OpenRouter API key
- Create a
.env
configuration file - Optionally set up Claude Desktop integration
3. Start the Server
npx @physics91/openrouter-mcp start
The server will start on localhost:8000
by default.
๐ฏ Usage
Available Commands
# Show help
npx openrouter-mcp --help
# Initialize configuration
npx openrouter-mcp init
# Start the server
npx openrouter-mcp start [options]
# Check server status
npx openrouter-mcp status
# Configure Claude Desktop integration
npx openrouter-mcp install-claude
# Configure Claude Code CLI integration
npx openrouter-mcp install-claude-code
Start Server Options
# Custom port and host
npx openrouter-mcp start --port 9000 --host 0.0.0.0
# Enable verbose logging
npx openrouter-mcp start --verbose
# Enable debug mode
npx openrouter-mcp start --debug
๐ค Claude Desktop Integration
Automatic Setup
npx openrouter-mcp install-claude
This automatically configures Claude Desktop to use OpenRouter models.
Manual Setup
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
Linux: ~/.config/claude/claude_desktop_config.json
{
"mcpServers": {
"openrouter": {
"command": "npx",
"args": ["openrouter-mcp", "start"],
"env": {
"OPENROUTER_API_KEY": "your-openrouter-api-key"
}
}
}
}
Then restart Claude Desktop.
๐ป Claude Code CLI Integration
Automatic Setup
npx openrouter-mcp install-claude-code
This automatically configures Claude Code CLI to use OpenRouter models.
Manual Setup
Add to your Claude Code CLI config file at ~/.claude/claude_code_config.json
:
{
"mcpServers": {
"openrouter": {
"command": "npx",
"args": ["openrouter-mcp", "start"],
"env": {
"OPENROUTER_API_KEY": "your-openrouter-api-key"
}
}
}
}
Usage with Claude Code CLI
Once configured, you can use OpenRouter models directly in your terminal:
# Chat with different AI models
claude-code "Use GPT-4 to explain this complex algorithm"
claude-code "Have Claude Opus review my Python code"
claude-code "Ask Llama 2 to suggest optimizations"
# Model discovery and comparison
claude-code "List all available AI models and their pricing"
claude-code "Compare GPT-4 and Claude Sonnet for code generation"
# Usage tracking
claude-code "Show my OpenRouter API usage for today"
claude-code "Which AI models am I using most frequently?"
For detailed setup instructions, see .
๐ ๏ธ Available MCP Tools
Once integrated with Claude Desktop or Claude Code CLI, you'll have access to these tools:
1. chat_with_model
Chat with any available AI model.
Parameters:
model
: Model ID (e.g., "openai/gpt-4o", "anthropic/claude-3.5-sonnet")messages
: Conversation historytemperature
: Creativity level (0.0-2.0)max_tokens
: Maximum response lengthstream
: Enable streaming responses
Example:
{
"model": "openai/gpt-4o",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain quantum computing"}
],
"temperature": 0.7
}
2. list_available_models
Get comprehensive information about all available models with enhanced metadata.
Parameters:
filter_by
: Optional filter by model nameprovider
: Filter by provider (openai, anthropic, google, etc.)category
: Filter by category (chat, image, reasoning, etc.)capabilities
: Filter by specific capabilitiesperformance_tier
: Filter by tier (premium, standard, economy)min_quality_score
: Minimum quality score (0-10)
Returns:
- Model IDs, names, descriptions with enhanced metadata
- Provider and category classification
- Detailed pricing and context information
- Capability flags (vision, functions, streaming, etc.)
- Performance metrics and quality scores
- Version information and latest model indicators
3. get_usage_stats
Track your API usage and costs.
Parameters:
start_date
: Start date (YYYY-MM-DD)end_date
: End date (YYYY-MM-DD)
Returns:
- Total costs and token usage
- Request counts
- Model-specific breakdowns
4. chat_with_vision
๐ผ๏ธ
Chat with vision-capable models by sending images.
Parameters:
model
: Vision-capable model ID (e.g., "openai/gpt-4o", "anthropic/claude-3-opus", "google/gemini-pro-vision")messages
: Conversation history (supports both text and image content)images
: List of images (file paths, URLs, or base64 strings)temperature
: Creativity level (0.0-2.0)max_tokens
: Maximum response length
Image Format Support:
- File paths:
/path/to/image.jpg
,./image.png
- URLs:
https://example.com/image.jpg
- Base64: Direct base64 strings (with or without data URI prefix)
Example - Multiple Images:
{
"model": "openai/gpt-4o",
"messages": [
{"role": "user", "content": "Compare these images and describe the differences"}
],
"images": [
{"data": "/home/user/image1.jpg", "type": "path"},
{"data": "https://example.com/image2.png", "type": "url"},
{"data": "data:image/jpeg;base64,/9j/4AAQ...", "type": "base64"}
]
}
Features:
- Automatic image format detection and conversion
- Image resizing for API size limits (20MB max)
- Support for JPEG, PNG, GIF, and WebP formats
- Batch processing of multiple images
5. list_vision_models
๐ผ๏ธ
Get all vision-capable models.
Parameters: None
Returns:
- List of models that support image analysis
- Model capabilities and pricing information
- Context window sizes for multimodal content
Example Vision Models:
openai/gpt-4o
: OpenAI's latest multimodal modelopenai/gpt-4o-mini
: Fast and cost-effective vision modelanthropic/claude-3-opus
: Most capable Claude vision modelanthropic/claude-3-sonnet
: Balanced Claude vision modelgoogle/gemini-pro-vision
: Google's multimodal AImeta-llama/llama-3.2-90b-vision-instruct
: Meta's vision-capable Llama model
6. benchmark_models
๐
Compare multiple AI models with the same prompt.
Parameters:
models
: List of model IDs to benchmarkprompt
: The prompt to send to each modeltemperature
: Temperature setting (0.0-2.0)max_tokens
: Maximum response tokensruns_per_model
: Number of runs per model for averaging
Returns:
- Performance metrics (response time, cost, tokens)
- Model rankings by speed, cost, and reliability
- Individual responses from each model
7. compare_model_categories
๐
Compare the best models from different categories.
Parameters:
categories
: List of categories to compareprompt
: Test promptmodels_per_category
: Number of top models per category
Returns:
- Category-wise comparison results
- Best performers in each category
8. get_benchmark_history
๐
Retrieve historical benchmark results.
Parameters:
limit
: Maximum number of results to returndays_back
: Number of days to look backmodel_filter
: Optional model ID filter
Returns:
- List of past benchmark results
- Performance trends over time
- Summary statistics
9. export_benchmark_report
๐
Export benchmark results in different formats.
Parameters:
benchmark_file
: Benchmark result file to exportformat
: Output format ("markdown", "csv", "json")output_file
: Optional custom output filename
Returns:
- Exported report file path
- Export status and summary
10. compare_model_performance
โ๏ธ
Advanced model comparison with weighted metrics.
Parameters:
models
: List of model IDs to compareweights
: Metric weights (speed, cost, quality, throughput)include_cost_analysis
: Include detailed cost analysis
Returns:
- Weighted performance rankings
- Cost-effectiveness analysis
- Usage recommendations for different scenarios
๐ง Collective Intelligence Tools
The following advanced tools leverage multiple AI models for enhanced accuracy and insights:
11. collective_chat_completion
๐ค
Generate chat completion using collective intelligence with multiple models to reach consensus.
Parameters:
prompt
: The prompt to process collectivelymodels
: Optional list of specific models to usestrategy
: Consensus strategy ("majority_vote", "weighted_average", "confidence_threshold")min_models
: Minimum number of models to use (default: 3)max_models
: Maximum number of models to use (default: 5)temperature
: Sampling temperature (default: 0.7)system_prompt
: Optional system prompt for all models
Returns:
consensus_response
: The agreed-upon responseagreement_level
: Level of agreement between modelsconfidence_score
: Confidence in the consensusparticipating_models
: List of models that participatedindividual_responses
: Responses from each modelquality_metrics
: Accuracy, consistency, and completeness scores
12. ensemble_reasoning
๐ฏ
Perform ensemble reasoning using specialized models for different aspects of complex problems.
Parameters:
problem
: Problem to solve with ensemble reasoningtask_type
: Type of task ("reasoning", "analysis", "creative", "factual", "code_generation")decompose
: Whether to decompose the problem into subtasksmodels
: Optional list of specific models to usetemperature
: Sampling temperature (default: 0.7)
Returns:
final_result
: The combined reasoning resultsubtask_results
: Results from individual subtasksmodel_assignments
: Which models handled which subtasksreasoning_quality
: Quality metrics for the reasoning processprocessing_time
: Total processing timestrategy_used
: Decomposition strategy used
13. adaptive_model_selection
๐๏ธ
Intelligently select the best model for a given task using adaptive routing.
Parameters:
query
: Query for adaptive model selectiontask_type
: Type of task ("reasoning", "creative", "factual", "code_generation", "analysis")performance_requirements
: Performance requirements (accuracy, speed thresholds)constraints
: Task constraints (max cost, timeout, etc.)
Returns:
selected_model
: The chosen model IDselection_reasoning
: Why this model was selectedconfidence
: Confidence in the selection (0-1)alternative_models
: Other viable options with scoresrouting_metrics
: Performance metrics used in selectionexpected_performance
: Predicted performance characteristics
14. cross_model_validation
โ
Validate content quality and accuracy across multiple models for quality assurance.
Parameters:
content
: Content to validate across modelsvalidation_criteria
: Specific validation criteria (e.g., "factual_accuracy", "technical_correctness")models
: Optional list of models to use for validationthreshold
: Validation threshold (0-1, default: 0.7)
Returns:
validation_result
: Overall validation result ("VALID" or "INVALID")validation_score
: Numerical validation score (0-1)validation_issues
: Issues found by multiple modelsmodel_validations
: Individual validation results from each modelrecommendations
: Suggested improvementsconfidence
: Confidence in the validation result
15. collaborative_problem_solving
๐ค
Solve complex problems through collaborative multi-model interaction and iterative refinement.
Parameters:
problem
: Problem to solve collaborativelyrequirements
: Problem requirements and constraintsconstraints
: Additional constraints (budget, time, resources)max_iterations
: Maximum number of iteration rounds (default: 3)models
: Optional list of specific models to use
Returns:
final_solution
: The collaborative solutionsolution_path
: Step-by-step solution developmentalternative_solutions
: Alternative approaches consideredcollaboration_quality
: Quality metrics for the collaborationcomponent_contributions
: Individual model contributionsconvergence_metrics
: How the solution evolved over iterations
๐ง Configuration
Environment Variables
Create a .env
file in your project directory:
# OpenRouter API Configuration
OPENROUTER_API_KEY=your-api-key-here
OPENROUTER_APP_NAME=openrouter-mcp
OPENROUTER_HTTP_REFERER=https://localhost
# Server Configuration
HOST=localhost
PORT=8000
LOG_LEVEL=info
# Cache Configuration
CACHE_TTL_HOURS=1
CACHE_MAX_ITEMS=1000
CACHE_FILE=openrouter_model_cache.json
Configuration Options
Variable | Description | Default |
---|---|---|
OPENROUTER_API_KEY | Your OpenRouter API key | Required |
OPENROUTER_APP_NAME | App identifier for tracking | "openrouter-mcp" |
OPENROUTER_HTTP_REFERER | HTTP referer header | "https://localhost" |
HOST | Server bind address | "localhost" |
PORT | Server port | "8000" |
LOG_LEVEL | Logging level | "info" |
CACHE_TTL_HOURS | Model cache TTL in hours | "1" |
CACHE_MAX_ITEMS | Max items in memory cache | "1000" |
CACHE_FILE | Cache file path | "openrouter_model_cache.json" |
๐ Popular Models
Here are some popular models available through OpenRouter:
OpenAI Models
openai/gpt-4o
: Most capable multimodal GPT-4 model (text + vision)openai/gpt-4o-mini
: Fast and cost-effective with vision supportopenai/gpt-4
: Most capable text-only GPT-4 modelopenai/gpt-3.5-turbo
: Fast and cost-effective text model
Anthropic Models
anthropic/claude-3-opus
: Most capable Claude model (text + vision)anthropic/claude-3-sonnet
: Balanced capability and speed (text + vision)anthropic/claude-3-haiku
: Fast and efficient (text + vision)
Open Source Models
meta-llama/llama-3.2-90b-vision-instruct
: Meta's flagship vision modelmeta-llama/llama-3.2-11b-vision-instruct
: Smaller vision-capable Llamameta-llama/llama-2-70b-chat
: Meta's text-only flagship modelmistralai/mixtral-8x7b-instruct
: Efficient mixture of expertsmicrosoft/wizardlm-2-8x22b
: High-quality instruction following
Specialized Models
google/gemini-pro-vision
: Google's multimodal AI (text + vision)google/gemini-pro
: Google's text-only modelcohere/command-r-plus
: Great for RAG applicationsperplexity/llama-3-sonar-large-32k-online
: Web-connected model
Use list_available_models
to see all available models and their pricing.
๐ Troubleshooting
Common Issues
1. Python not found
# Check Python installation
python --version
# If not installed, download from python.org
# Make sure Python is in your PATH
2. Missing Python dependencies
# Install manually if needed
pip install -r requirements.txt
# For multimodal/vision features
pip install Pillow>=10.0.0
3. API key not configured
# Re-run initialization
npx openrouter-mcp init
4. Port already in use
# Use a different port
npx openrouter-mcp start --port 9000
5. Claude Desktop not detecting server
- Restart Claude Desktop after configuration
- Check config file path and format
- Verify API key is correct
Debug Mode
Enable debug logging for detailed troubleshooting:
npx openrouter-mcp start --debug
Status Check
Check server configuration and status:
npx openrouter-mcp status
๐งช Development
Running Tests
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
npm run test
# Run tests with coverage
npm run test:coverage
# Lint code
npm run lint
# Format code
npm run format
Project Structure
openrouter-mcp/
โโโ bin/ # CLI scripts
โ โโโ openrouter-mcp.js # Main CLI entry point
โ โโโ check-python.js # Python environment checker
โโโ src/openrouter_mcp/ # Python MCP server
โ โโโ client/ # OpenRouter API client
โ โ โโโ openrouter.py # Main API client with vision support
โ โโโ handlers/ # MCP tool handlers
โ โ โโโ chat.py # Text-only chat handlers
โ โ โโโ multimodal.py # Vision/multimodal handlers
โ โ โโโ benchmark.py # Model benchmarking handlers
โ โโโ server.py # Main server entry point
โโโ tests/ # Test suite
โ โโโ test_chat.py # Chat functionality tests
โ โโโ test_multimodal.py # Multimodal functionality tests
โ โโโ test_benchmark.py # Benchmarking functionality tests
โโโ examples/ # Usage examples
โ โโโ multimodal_example.py # Multimodal usage examples
โโโ docs/ # Documentation
โโโ requirements.txt # Python dependencies (includes Pillow)
โโโ package.json # Node.js package config
๐ Documentation
Quick Links
- - Complete documentation overview
- - Detailed setup instructions
- - Complete API documentation
- - Common issues and solutions
- - Frequently asked questions
Integration Guides
- - Desktop app setup
- - Terminal workflow
Feature Guides
- - Image analysis capabilities
- - Model performance comparison
- - Enhanced filtering system
- - Cache optimization
Development
- - System design documentation
- - TDD practices and test suite
- - Development guidelines
External Resources
- OpenRouter API Docs - Official OpenRouter documentation
- MCP Specification - Model Context Protocol standard
๐ค Contributing
We welcome contributions! Please see our for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
๐ License
This project is licensed under the MIT License - see the file for details.
๐ Links
- OpenRouter - Get your API key
- Claude Desktop - Download Claude Desktop app
- Model Context Protocol - Learn about MCP
- FastMCP - The MCP framework we use
๐ Acknowledgments
- OpenRouter for providing access to multiple AI models
- FastMCP for the excellent MCP framework
- Anthropic for the Model Context Protocol specification
Made with โค๏ธ for the AI community
Need help? Open an issue or check our documentation!