Are you the author? Sign in to claim
Converse MCP Server
An MCP (Model Context Protocol) server that lets Claude talk to other AI models. Use it to chat with models from OpenAI, Google, Anthropic, X.AI, Mistral, DeepSeek, or OpenRouter. You can either talk to one model at a time or get multiple models to weigh in on complex decisions.
You need at least one API key from these providers:
| Provider | Where to Get | Example Format |
|---|---|---|
| OpenAI | platform.openai.com/api-keys | sk-proj-... |
| Google/Gemini | makersuite.google.com/app/apikey | AIzaSy... |
| X.AI | console.x.ai | xai-... |
| Anthropic | console.anthropic.com | sk-ant-... |
| Mistral | console.mistral.ai | wfBMkWL0... |
| DeepSeek | platform.deepseek.com | sk-... |
| OpenRouter | openrouter.ai/keys | sk-or-... |
| Codex | ChatGPT login (system-wide) | Local agentic assistant |
Note: Codex uses your ChatGPT login (not an API key). If you have an active ChatGPT session, Codex will work automatically. For headless/server deployments, set CODEX_API_KEY in your environment.
# Add the server with your API keys
claude mcp add converse \
-e OPENAI_API_KEY=your_key_here \
-e GEMINI_API_KEY=your_key_here \
-e XAI_API_KEY=your_key_here \
-e ANTHROPIC_API_KEY=your_key_here \
-e MISTRAL_API_KEY=your_key_here \
-e DEEPSEEK_API_KEY=your_key_here \
-e OPENROUTER_API_KEY=your_key_here \
-e ENABLE_RESPONSE_SUMMARIZATION=true \
-e SUMMARIZATION_MODEL=gpt-5-nano \
-s user \
npx converse-mcp-server
Add this configuration to your Claude Desktop settings:
{
"mcpServers": {
"converse": {
"command": "npx",
"args": ["converse-mcp-server"],
"env": {
"OPENAI_API_KEY": "your_key_here",
"GEMINI_API_KEY": "your_key_here",
"XAI_API_KEY": "your_key_here",
"ANTHROPIC_API_KEY": "your_key_here",
"MISTRAL_API_KEY": "your_key_here",
"DEEPSEEK_API_KEY": "your_key_here",
"OPENROUTER_API_KEY": "your_key_here",
"ENABLE_RESPONSE_SUMMARIZATION": "true",
"SUMMARIZATION_MODEL": "gpt-5-nano"
}
}
}
}
Windows Troubleshooting: If npx converse-mcp-server doesn't work on Windows, try:
{
"command": "cmd",
"args": ["/c", "npx", "converse-mcp-server"],
"env": {
"ENABLE_RESPONSE_SUMMARIZATION": "true",
"SUMMARIZATION_MODEL": "gpt-5-nano"
// ... add your API keys here
}
}
Once installed, you can:
mode: "consensus" when you need multiple perspectivesasync: true for long-running operations that you can check later/converse:help in ClaudeOne tool, three modes. Pass a models array and choose a mode. Supports files, images, conversation history, and background execution. The tool routes each model to the right provider by name; "auto" picks the first available provider. When AI summarization is enabled, it generates smart titles and summaries.
// mode "chat" (default) — 1..N models answer independently, in parallel
{
"prompt": "How should I structure the authentication module for this Express.js API?",
"models": ["gemini-2.5-flash"], // Routes to Google
"files": ["/path/to/src/auth.js", "/path/to/config.json"],
"images": ["/path/to/architecture.png"],
"reasoning_effort": "medium"
}
// mode "consensus" — ≥2 models answer, then refine after seeing each other
{
"prompt": "Should we use microservices or a monolith for our e-commerce platform?",
"models": ["gpt-5.6", "gemini-2.5-flash", "grok-4.5"],
"mode": "consensus",
"files": ["/path/to/requirements.md"]
}
// mode "roundtable" — models speak SEQUENTIALLY in the given order, each seeing
// the running transcript. One call = one lap; pass continuation_id for more laps.
{
"prompt": "Critique this caching strategy and propose improvements.",
"models": ["codex", "gemini", "claude"], // ORDER MATTERS
"mode": "roundtable"
}
// Asynchronous execution (for long-running tasks) — any mode
{
"prompt": "Analyze this large codebase and provide optimization recommendations",
"models": ["gpt-5.6"],
"files": ["/path/to/large-project"],
"async": true, // Enables background processing
"continuation_id": "my-analysis-task" // Optional: custom ID for tracking
}
Codex Notes:
chat mode (context persists with continuation_id)CODEX_SANDBOX_MODE environment variableMonitor the progress and retrieve results from asynchronous operations. When AI summarization is enabled, provides intelligent summaries of ongoing and completed tasks.
// Check status of a specific job
{
"continuation_id": "my-analysis-task"
}
// List recent jobs (shows last 10)
// With summarization enabled, displays titles and final summaries
{}
// Get full conversation history for completed job
{
"continuation_id": "my-analysis-task",
"full_history": true
}
Cancel running asynchronous operations when needed.
// Cancel a running job
{
"continuation_id": "my-analysis-task"
}
When enabled, the server automatically generates intelligent titles and summaries for better context understanding:
Configuration:
# Enable in your environment
ENABLE_RESPONSE_SUMMARIZATION=true # Default: false
SUMMARIZATION_MODEL=gpt-5-nano # Default: gpt-5-nano
Benefits:
gpt-5.6, gpt-5, sol): Flagship GPT-5.6 (1M context, 128K output) - Frontier reasoning, coding, and agentic workflowsterra): Lower-cost GPT-5.6 (400K context, 128K output) - Performance competitive with the flagship at half the priceluna): Fastest, most affordable GPT-5.6 (400K context, 128K output) - High-volume, latency-sensitive workloadsgpt-5-pro): Maximum-performance reasoning (1M context, 272K output) - Hardest problems, extended compute time (EXPENSIVE)API Key Options:
GOOGLE_GENAI_USE_VERTEXAI=true with project/location settingsSupported Models:
pro, gemini-pro): Most advanced reasoning with expanded thinking levels (1M context, 64K output)gemini-3.5, flash-3.5): Frontier-level agentic and coding performance at Flash speed (1M context, 65K output)pro 2.5): Deep reasoning with thinking budget (1M context, 65K output)flash): Ultra-fast (1M context, 65K output)flash-lite): Lightweight fast model (1M context, 65K output)Note: The bare aliases pro and gemini-pro route to Gemini 3.1 Pro through the Google API. The short name gemini (and gemini:pro/gemini:flash) routes to the Antigravity CLI provider instead — see below.
grok, grok-4.5-latest, grok-build-latest): Flagship model with image input, reasoning content, and native web/X search (500K context). Reasoning maps to low/medium/high and cannot be disabled; web search is automatic. Older Grok IDs still pass through as explicit model strings.fable): Most capable model for demanding reasoning and long-horizon agentic work (1M context, 128K output)opus): Most capable Opus for complex reasoning and agentic coding (200K context, 1M via beta, 128K output)sonnet): Best combination of speed and intelligence with adaptive thinking (64K output)haiku): Fast and intelligent for simple queries (64K output)mistral, mistral-medium): Frontier-class multimodal model with adjustable reasoning (256K context)mistral-small): Hybrid multimodal model unifying instruct, reasoning, and coding (256K context)mistral-large): Open-weight MoE flagship, image-capable, no adjustable reasoning (256K context)Reasoning maps to high (enabled) or none (disabled) on Medium 3.5 and Small; Large has no adjustable reasoning.
deepseek, deepseek-pro): Flagship MoE model with thinking mode (1M context, 384K max output, text-only)deepseek-flash): Faster, lower-cost V4 tier with thinking mode (1M context, 384K max output, text-only)Thinking mode maps reasoning_effort to none (off), high (enabled levels), or max.
glm, glm-5.2): Large-scale reasoning model, text-only (1M context)plus is image-capable)k2.7-code always reasons)Any other model works via its full provider/model slug or the openrouter: namespace — no extra configuration. Append :online to a slug to opt into web search (adds a real per-request cost).
claude-sdk, claude-code): Claude via the Claude Agent SDK
claude:fable or claude:opusclaude login) - no API key neededclaude:-prefixed names pass through to the SDK (e.g. claude:claude-sonnet-4-6)Reach these with the copilot: namespace (e.g. copilot:gpt-5.6-terra); uses your GitHub Copilot subscription (gh auth login) - no API key needed:
gpt-5.6-sol (aliases: gpt-5.6, gpt-5), gpt-5.6-terra, gpt-5.6-luna (all support reasoning_effort)claude-fable-5 (alias: fable), claude-sonnet-5 (alias: sonnet), claude-opus-4.8 (aliases: opus, claude)gemini-3.1-pro-preview (aliases: gemini, gemini-3.1-pro), gemini-3.5-flash (alias: gemini-flash)copilot:<id> is forwarded to the Copilot backend verbatimType these commands directly in Claude:
/converse:help - Full documentation/converse:help tools - Tool-specific help (includes async features)/converse:help models - Model information/converse:help parameters - Configuration details/converse:help examples - Usage examples (sync and async)/converse:help async - Async execution guideCreate a .env file in your project root:
# Required: At least one API key
OPENAI_API_KEY=sk-proj-your_openai_key_here
GEMINI_API_KEY=your_gemini_api_key_here # Or GOOGLE_API_KEY (GEMINI_API_KEY takes priority)
XAI_API_KEY=xai-your_xai_key_here
ANTHROPIC_API_KEY=sk-ant-your_anthropic_key_here
MISTRAL_API_KEY=your_mistral_key_here
DEEPSEEK_API_KEY=your_deepseek_key_here
OPENROUTER_API_KEY=sk-or-your_openrouter_key_here
# Optional: Server configuration
PORT=3157
LOG_LEVEL=info
# Optional: AI Summarization (Enhanced async status display)
ENABLE_RESPONSE_SUMMARIZATION=true # Enable AI-generated titles and summaries
SUMMARIZATION_MODEL=gpt-5-nano # Model to use for summarization (default: gpt-5-nano)
# Optional: OpenRouter attribution (for ranking credit; both optional)
OPENROUTER_REFERER=https://github.com/FallDownTheSystem/converse
OPENROUTER_TITLE=Converse
# Optional: Codex configuration
CODEX_API_KEY=your_codex_api_key_here # Optional if ChatGPT login available
CODEX_SANDBOX_MODE=read-only # read-only (default), workspace-write, danger-full-access
CODEX_SKIP_GIT_CHECK=true # true (default), false
CODEX_APPROVAL_POLICY=never # never (default), untrusted, on-failure, on-request
| Variable | Description | Default | Example |
|---|---|---|---|
PORT | Server port | 3157 | 3157 |
LOG_LEVEL | Logging level | info | debug, info, error |
These must be set in your system environment or when launching Claude Code, NOT in the project .env file:
| Variable | Description | Default | Example |
|---|---|---|---|
MAX_MCP_OUTPUT_TOKENS | Token response limit | 25000 | 200000 |
MCP_TOOL_TIMEOUT | Tool execution timeout (ms) | 120000 | 5400000 (90 min for deep research) |
# Example: Set globally before starting Claude Code
export MAX_MCP_OUTPUT_TOKENS=200000
export MCP_TOOL_TIMEOUT=5400000 # 90 minutes for deep research models
claude # Then start Claude Code
Use "auto" for automatic model selection, or specify exact models:
// Auto-selection (recommended)
"auto";
// Specific models
"gemini-2.5-flash";
"gpt-5.6";
"grok-4.5";
"z-ai/glm-5.2"; // -> OpenRouter (full slug)
"z-ai/glm-5.2:online"; // -> OpenRouter with web search opt-in
// Using aliases
"flash"; // -> gemini-2.5-flash
"pro"; // -> gemini-3.1-pro-preview
"grok"; // -> grok-4.5
"deepseek"; // -> deepseek-v4-pro
"mistral"; // -> mistral-medium-3-5
"fable"; // -> claude-fable-5 (Anthropic API)
"opus"; // -> claude-opus-4-8 (Anthropic API)
// SDK providers (subscription-based, no API key)
"claude"; // -> Claude Agent SDK (Claude Fable 5)
"claude:opus"; // -> Claude Agent SDK (Claude Opus 4.8)
"copilot:gpt-5.6-terra"; // -> GitHub Copilot SDK
Auto Model Behavior:
["auto"] selects the first available provider and uses its default model["auto"] automatically expands to the first 3 available providersProvider priority order (subscription-based SDK providers first, then API-key providers):
codex)gemini, gemini:flash)claude → Claude Fable 5)copilot)gpt-5.6)gemini-pro)grok-4.5)claude-sonnet-4-20250514)mistral-medium-3-5)deepseek-v4-pro)z-ai/glm-5.2)The system will use the first 3 providers that are available (authenticated SDK or valid API key). This enables automatic multi-model consensus without manually specifying models.
If you've cloned the repository locally:
{
"mcpServers": {
"converse": {
"command": "node",
"args": [
"C:\\Users\\YourUsername\\Documents\\Projects\\converse\\src\\index.js"
],
"env": {
"OPENAI_API_KEY": "your_key_here",
"GEMINI_API_KEY": "your_key_here",
"XAI_API_KEY": "your_key_here",
"ANTHROPIC_API_KEY": "your_key_here",
"MISTRAL_API_KEY": "your_key_here",
"DEEPSEEK_API_KEY": "your_key_here",
"OPENROUTER_API_KEY": "your_key_here"
}
}
}
}
For local development with HTTP transport (optional, for debugging):
First, start the server manually with HTTP transport:
# In a terminal, navigate to the project directory
cd converse
MCP_TRANSPORT=http npm run dev # Starts server on http://localhost:3157/mcp
Then configure Claude to connect to it:
{
"mcpServers": {
"converse-local": {
"url": "http://localhost:3157/mcp"
}
}
}
Important: HTTP transport requires the server to be running before Claude can connect to it. Keep the terminal with the server open while using Claude.
The Claude configuration file is typically located at:
%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonFor more detailed instructions, see the official MCP configuration guide.
You can run the server directly without Claude for testing or development:
# Quick run (no installation needed)
npx converse-mcp-server
# Alternative package managers
pnpm dlx converse-mcp-server
yarn dlx converse-mcp-server
For development setup, see the Development section below.
Server won't start:
node --version (needs v20+)PORT=3001 npm startAPI key errors:
npm run test:real-apiModule import errors:
npm run clean# Enable debug logging
LOG_LEVEL=debug npm run dev
# Start with debugger
npm run debug
# Trace all operations
LOG_LEVEL=trace npm run dev
# Clone the repository
git clone https://github.com/FallDownTheSystem/converse.git
cd converse
npm install
# Copy environment file and add your API keys
cp .env.example .env
# Start development server
npm run dev
# Server management
npm start # Start server (auto-kills existing server on port 3157)
npm run start:clean # Start server without killing existing processes
npm run start:port # Start server on port 3001 (avoids port conflicts)
npm run dev # Development with hot reload (auto-kills existing server)
npm run dev:clean # Development without killing existing processes
npm run dev:port # Development on port 3001 (avoids port conflicts)
npm run dev:quiet # Development with minimal logging
npm run kill-server # Kill any server running on port 3157
# Testing
npm test # Run all tests
npm run test:unit # Unit tests only
npm run test:integration # Integration tests
npm run test:e2e # End-to-end tests (requires API keys)
# Integration test subcategories
npm run test:integration:mcp # MCP protocol tests
npm run test:integration:tools # Tool integration tests
npm run test:integration:providers # Provider integration tests
npm run test:integration:performance # Performance tests
npm run test:integration:general # General integration tests
# Other test categories
npm run test:mcp-client # MCP client tests (HTTP-based)
npm run test:providers # Provider unit tests
npm run test:tools # Tool tests
npm run test:coverage # Coverage report
npm run test:watch # Run tests in watch mode
# Code quality
npm run lint # Check code style
npm run lint:fix # Fix code style issues
npm run format # Format code with ESLint (alias for lint:fix)
npm run validate # Full validation (lint + test)
# Utilities
npm run build # Build for production
npm run debug # Start with debugger
npm run check-deps # Check for outdated dependencies
npm run kill-server # Kill any server running on port 3157
Port conflicts: The server uses port 3157 by default. If you get an "EADDRINUSE" error:
npm run kill-server to free the portPORT=3001 npm startTransport Modes:
MCP_TRANSPORT=http npm run dev)After setting up your API keys in .env:
# Run end-to-end tests
npm run test:e2e
# Test specific providers
npm run test:integration:providers
# Full validation
npm run validate
After installation, run these tests to verify everything works:
npm start # Should show startup message
npm test # Should pass all unit tests
npm run validate # Full validation suite
converse/
├── src/
│ ├── index.js # Main server entry point
│ ├── config.js # Configuration management
│ ├── router.js # Central request dispatcher
│ ├── continuationStore.js # State management
│ ├── systemPrompts.js # Tool system prompts
│ ├── providers/ # AI provider implementations
│ │ ├── index.js # Provider registry
│ │ ├── interface.js # Unified provider interface
│ │ ├── openai.js # OpenAI provider
│ │ ├── xai.js # XAI provider
│ │ ├── google.js # Google provider
│ │ ├── anthropic.js # Anthropic provider
│ │ ├── mistral.js # Mistral AI provider
│ │ ├── deepseek.js # DeepSeek provider
│ │ ├── openrouter.js # OpenRouter provider
│ │ ├── openrouter-discovery.js # Request-local OpenRouter slug discovery
│ │ ├── openai-compatible.js # Base for OpenAI-compatible APIs
│ │ ├── codex.js # Codex agentic SDK provider
│ │ ├── claude.js # Claude Agent SDK provider
│ │ ├── gemini-cli.js # Gemini via Antigravity CLI provider
│ │ └── copilot.js # GitHub Copilot SDK provider
│ ├── tools/ # MCP tool implementations
│ │ ├── index.js # Tool registry
│ │ ├── chat.js # Unified chat tool (chat/consensus/roundtable modes)
│ │ └── modes/ # parallel.js + roundtable.js execution engines
│ └── utils/ # Utility modules
│ ├── contextProcessor.js # File/image processing
│ ├── errorHandler.js # Error handling
│ └── logger.js # Logging utilities
├── tests/ # Comprehensive test suite
├── docs/ # API and architecture docs
└── package.json # Dependencies and scripts
Note: This section is for maintainers. The package is already published as
converse-mcp-server.
# 1. Ensure clean working directory
git status
# 2. Run full validation
npm run validate
# 3. Test package contents
npm pack --dry-run
# 4. Test bin script
node bin/converse.js --help
# 5. Bump version (choose one)
npm version patch # Bug fixes: 1.0.1 → 1.0.2
npm version minor # New features: 1.0.1 → 1.1.0
npm version major # Breaking changes: 1.0.1 → 2.0.0
# 6. Test publish (dry run)
npm publish --dry-run
# 7. Publish to npm
npm publish
# 8. Verify publication
npm view converse-mcp-server
npx converse-mcp-server --help
npm version patch): Bug fixes, documentation updates, minor improvementsnpm version minor): New features, new model support, new tool capabilitiesnpm version major): Breaking API changes, major architecture changesAfter publishing, update installation instructions if needed and verify:
# Test direct execution
npx converse-mcp-server
npx converse
# Test MCP client integration
# Update Claude Desktop config to use: "npx converse-mcp-server"
npm view converse-mcp-server versionsnpm whoamigit checkout -b feature/amazing-featurenpm run validategit commit -m 'Add amazing feature'git push origin feature/amazing-feature# Fork and clone your fork
git clone https://github.com/yourusername/converse.git
cd converse
# Install dependencies
npm install
# Create feature branch
git checkout -b feature/your-feature
# Make changes and test
npm run validate
# Commit and push
git add .
git commit -m "Description of changes"
git push origin feature/your-feature
This MCP Server was inspired by and builds upon the excellent work from BeehiveInnovations/zen-mcp-server.
MIT License - see LICENSE file for details.
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases
Official GitHub integration for repos, issues, PRs, and CI/CD workflows