Skip to content
Conduit

mcp server

openrouter-deep-research-mcp

A multi-agent research MCP server + mini client adapter - orchestrates a net of async agents or streaming swarm to conduct ensemble consensus-backed research. Each task builds its own indexed pglite d

wheattoast11/openrouter-deep-research-mcpcommunitylistedunreviewednot running here yet

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • Node.js 20 or newer
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "openrouter-deep-research-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@terminals-tech/openrouter-agents"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 14, 2026

OpenRouter Agents MCP Server

npm MCP Stable GitHub

Production MCP server for multi-agent AI research. Plan, parallelize, synthesize.

Install

npx @terminals-tech/openrouter-agents --stdio

Claude Code one-liner:

claude mcp add openrouter-agents -- npx @terminals-tech/openrouter-agents --stdio

What's New (v2.0.0)

  • MCP SDK 1.27.1 — registerTool/registerPrompt/registerResource APIs, security fixes
  • Zod 4 — Upgraded from Zod 3; z.record() syntax, config schema fixes
  • Express 5 — Upgraded from Express 4; modern path patterns, req.query handling
  • Streamable HTTP — Primary transport (SSE deprecated as legacy fallback)
  • Circuit breaker — Model API fault tolerance with configurable thresholds
  • Embedding-based model routing — Local vector similarity for model selection (no LLM call)
  • Persistent storage — Reports, jobs, knowledge graph persist across sessions by default

macOS/Node 25 Note: A cosmetic libc++abi: mutex lock failed message may appear on shutdown. This is harmless — data is checkpointed before shutdown. Set DB_AUTO_HEAL=true for in-memory mode (no persistence, no message).

Full Changelog | Extensions Guide | MCP Compliance Report

Configuration

Set OPENROUTER_API_KEY in your environment, then configure via .env or .mcp.json:

VariableDefaultDescription
OPENROUTER_API_KEYrequiredOpenRouter API key
OPENROUTER_API_KEYS(optional)Comma-separated OpenRouter keys for rotation
OPENROUTER_KEY_COOLDOWN_MS5000Base cooldown per key after failures
SERVER_PORT3002HTTP server port
MODEALLAGENT, MANUAL, or ALL
EMBEDDING_ROUTING_ENABLEDtrueEnable embedding-based model routing
INDEXER_ENABLEDtrueEnable knowledge indexing

Full ENV Reference

{
  "mcpServers": {
    "openrouter-agents": {
      "command": "npx",
      "args": ["@terminals-tech/openrouter-agents", "--stdio"],
      "env": {
        "OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}",
        "INDEXER_ENABLED": "true"
      }
    }
  }
}

Multi-Client Setup

Transport Modes

TransportFlagUse Case
STDIO(default)MCP clients (Claude, Jan AI, Continue)
HTTP--httpWeb apps, shared server

STDIO is the default transport per MCP spec. Use --http explicitly for HTTP mode.

Client-Specific Setup

  1. Enable MCP Servers in Settings → Advanced → Experimental
  2. Click + to add server
  3. Configure:
    • Name: openrouter-agents
    • Command: npx
    • Arguments: @terminals-tech/openrouter-agents
    • Environment: OPENROUTER_API_KEY=sk-or-...

Note: STDIO is now default - no --stdio flag needed.

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "openrouter-agents": {
      "command": "npx",
      "args": ["@terminals-tech/openrouter-agents"],
      "env": {
        "OPENROUTER_API_KEY": "sk-or-..."
      }
    }
  }
}

Standard MCP config - STDIO is default, no flags needed:

{
  "command": "npx",
  "args": ["@terminals-tech/openrouter-agents"],
  "env": { "OPENROUTER_API_KEY": "..." }
}

Feature Matrix

FeatureAll MCP ClientsClaude Code Only
Core Research Tools✓✓
Knowledge Base✓✓
Session/Graph Tools✓✓
Rail Protocol Tools✓✓
Slash Commands-✓

Models (v2.0.0)

High-Cost Tier

ModelDomains
anthropic/claude-sonnet-4.5reasoning, technical, general, creative
anthropic/claude-opus-4.6reasoning, technical, general, creative
openai/gpt-5.2-chatreasoning, technical, general
openai/gpt-5.3-codexcoding, technical, reasoning
google/gemini-3-pro-previewreasoning, technical, general
qwen/qwen3-codercoding, editing, technical

Low-Cost Tier

ModelDomains
google/gemini-3-flash-previewcoding, editing, technical
anthropic/claude-haiku-4.5general, technical, reasoning
deepseek/deepseek-chat-v3.1general, reasoning, technical, coding
deepseek/deepseek-v3.2general, reasoning, technical, coding
openai/gpt-oss-120bgeneral, reasoning, search

Models are selected via embedding-based routing — query embeddings are matched to model domain profiles without an LLM call.

Tools

ToolDescription
researchAsync research (returns job_id)
conduct_researchSync research with streaming
batch_researchParallel batch queries
research_follow_upContext-aware follow-up
agentUnified entrypoint (auto-routes)
ToolDescription
searchHybrid BM25+vector search
retrieveIndex or SQL query
querySQL SELECT with params
get_reportGet report by ID
historyList recent reports
ToolDescription
undo / redoSession time-travel
checkpointNamed save points
fork_sessionCreate alternate timeline
graph_traverseExplore knowledge graph
graph_clustersFind node clusters
graph_pagerankImportance rankings
ToolDescription
list_railsList rails, tunnels, routes, consensus
explain_railDetailed rail/tunnel config
list_routesAll defined routes
list_tunnelsActive agent-to-agent tunnels
list_consensusStreaming consensus sessions
ToolDescription
pingHealth check
get_server_statusFull diagnostics
job_statusCheck async job
date_timeCurrent timestamp
calcMath evaluation
list_toolsAvailable tools

MCP Compliance

Compliant with MCP Specification 2025-11-25 (stable, AAIF/Linux Foundation governance).

FeatureSEPStatus
JSON-RPC 2.0CoreCompliant
Tools/Resources/PromptsCoreCompliant
Task ProtocolSEP-1686Compliant
Sampling with ToolsSEP-1577Compliant
ElicitationSEP-1036Compliant
MCP AppsSEP-1865Compliant
Enterprise AuthSEP-990Compliant
Client MetadataSEP-991Compliant

Full Compliance Report

Architecture

User Query
    │
    ▼
┌─────────────────┐
│  Planning Agent  │ ─── Decomposes into sub-queries
└────────┬────────┘
         │
    ┌────┴────┐
    ▼         ▼
┌───────┐ ┌───────┐
│Agent 1│ │Agent N│ ─── Parallel research (embedding-routed models)
└───┬───┘ └───┬───┘
    │         │
    ▼         ▼
┌─────────────────┐
│   Synthesizer   │ ─── Consensus + citations (Signal protocol)
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  Knowledge Base  │ ─── PGlite + pgvector (persistent)
└─────────────────┘

Core Abstractions

ModulePurpose
Signal ProtocolInter-agent communication with confidence scoring and consensus
Rail ProtocolBidirectional channels with backpressure, provenance, tunnels
Error TaxonomyDeterministic classification with auto-learning and circuit breakers
Circuit BreakerModel API fault tolerance with configurable thresholds and auto-recovery
Parameter NormalizationDeclarative alias system (q→query, cost→costPreference)
RoleShift ProtocolBidirectional server↔client via MCP sampling/elicitation
Embedding RouterLocal vector-based model selection via @terminals-tech/embeddings

Circuit Breaker

Protects against cascading model API failures. Configurable via environment:

VariableDefaultDescription
RAIL_CIRCUIT_BREAKERtrueEnable circuit breaker
RAIL_CIRCUIT_THRESHOLD5Failures before tripping
RAIL_CIRCUIT_RESET_MS120000Recovery timeout (ms)

States: closed (normal) -> open (failing, requests rejected) -> half-open (testing recovery).

Transport (v2.0.0)

TransportStatusUse Case
Streamable HTTPPrimaryAll new integrations
SSEDeprecatedLegacy compatibility only
STDIODefaultMCP clients (Claude, Jan AI, Continue)

Links

Releasing

Releases are automated via release-please:

  1. Push conventional commits to main (e.g. feat:, fix:, chore:)
  2. release-please opens a version-bump PR
  3. Merge the PR → GitHub Release created automatically
  4. npm publish triggers on release via CI

Manual publish:

npm test && npm publish --access public

Version: 2.0.0 | MCP SDK: 1.27.1 | MCP Spec: 2025-11-25 | Author: Tej Desai | License: MIT

↑↓ navigate openesc close