@terminals-tech/openrouter-agents
v1.16.0
Published
Production MCP server for multi-agent AI research with OpenRouter
Downloads
156
Maintainers
Readme
OpenRouter Agents MCP Server
Production MCP server for multi-agent AI research. Plan, parallelize, synthesize.
Install
npx @terminals-tech/openrouter-agents --stdioClaude Code one-liner:
claude mcp add openrouter-agents -- npx @terminals-tech/openrouter-agents --stdioWhat's New (v1.16.0)
- MCP SDK 1.26.0 — Security fixes (ReDoS, shared transport), client credentials scope support
- MCP Spec 2025-11-25 stable — All 8 SEPs now stable under AAIF/Linux Foundation governance
- New frontier models — claude-opus-4.6, gpt-5.3-codex, deepseek-v3.2 added to routing
- 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 failedmessage may appear on shutdown. This is harmless — data is checkpointed before shutdown. SetDB_AUTO_HEAL=truefor 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:
| Variable | Default | Description |
|----------|---------|-------------|
| OPENROUTER_API_KEY | required | OpenRouter API key |
| OPENROUTER_API_KEYS | (optional) | Comma-separated OpenRouter keys for rotation |
| OPENROUTER_KEY_COOLDOWN_MS | 5000 | Base cooldown per key after failures |
| SERVER_PORT | 3002 | HTTP server port |
| MODE | ALL | AGENT, MANUAL, or ALL |
| EMBEDDING_ROUTING_ENABLED | true | Enable embedding-based model routing |
| INDEXER_ENABLED | true | Enable knowledge indexing |
{
"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
| Transport | Flag | Use Case |
|-----------|------|----------|
| STDIO | (default) | MCP clients (Claude, Jan AI, Continue) |
| HTTP | --http | Web apps, shared server |
STDIO is the default transport per MCP spec. Use --http explicitly for HTTP mode.
Client-Specific Setup
- Enable MCP Servers in Settings → Advanced → Experimental
- Click + to add server
- Configure:
- Name:
openrouter-agents - Command:
npx - Arguments:
@terminals-tech/openrouter-agents - Environment:
OPENROUTER_API_KEY=sk-or-...
- Name:
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
| Feature | All MCP Clients | Claude Code Only | |---------|-----------------|------------------| | Core Research Tools | ✓ | ✓ | | Knowledge Base | ✓ | ✓ | | Session/Graph Tools | ✓ | ✓ | | Rail Protocol Tools | ✓ | ✓ | | Slash Commands | - | ✓ |
Models (v1.16.0)
High-Cost Tier
| Model | Domains |
|-------|---------|
| anthropic/claude-sonnet-4.5 | reasoning, technical, general, creative |
| anthropic/claude-opus-4.6 | reasoning, technical, general, creative |
| openai/gpt-5.2-chat | reasoning, technical, general |
| openai/gpt-5.3-codex | coding, technical, reasoning |
| google/gemini-3-pro-preview | reasoning, technical, general |
| qwen/qwen3-coder | coding, editing, technical |
Low-Cost Tier
| Model | Domains |
|-------|---------|
| google/gemini-3-flash-preview | coding, editing, technical |
| anthropic/claude-haiku-4.5 | general, technical, reasoning |
| deepseek/deepseek-chat-v3.1 | general, reasoning, technical, coding |
| deepseek/deepseek-v3.2 | general, reasoning, technical, coding |
| openai/gpt-oss-120b | general, reasoning, search |
Models are selected via embedding-based routing — query embeddings are matched to model domain profiles without an LLM call.
Tools
| Tool | Description |
|------|-------------|
| research | Async research (returns job_id) |
| conduct_research | Sync research with streaming |
| batch_research | Parallel batch queries |
| research_follow_up | Context-aware follow-up |
| agent | Unified entrypoint (auto-routes) |
| Tool | Description |
|------|-------------|
| search | Hybrid BM25+vector search |
| retrieve | Index or SQL query |
| query | SQL SELECT with params |
| get_report | Get report by ID |
| history | List recent reports |
| Tool | Description |
|------|-------------|
| undo / redo | Session time-travel |
| checkpoint | Named save points |
| fork_session | Create alternate timeline |
| graph_traverse | Explore knowledge graph |
| graph_clusters | Find node clusters |
| graph_pagerank | Importance rankings |
| Tool | Description |
|------|-------------|
| list_rails | List rails, tunnels, routes, consensus |
| explain_rail | Detailed rail/tunnel config |
| list_routes | All defined routes |
| list_tunnels | Active agent-to-agent tunnels |
| list_consensus | Streaming consensus sessions |
| Tool | Description |
|------|-------------|
| ping | Health check |
| get_server_status | Full diagnostics |
| job_status | Check async job |
| date_time | Current timestamp |
| calc | Math evaluation |
| list_tools | Available tools |
MCP Compliance
Compliant with MCP Specification 2025-11-25 (stable, AAIF/Linux Foundation governance).
| Feature | SEP | Status | |---------|-----|--------| | JSON-RPC 2.0 | Core | Compliant | | Tools/Resources/Prompts | Core | Compliant | | Task Protocol | SEP-1686 | Compliant | | Sampling with Tools | SEP-1577 | Compliant | | Elicitation | SEP-1036 | Compliant | | MCP Apps | SEP-1865 | Compliant | | Enterprise Auth | SEP-990 | Compliant | | Client Metadata | SEP-991 | Compliant |
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
| Module | Purpose |
|--------|---------|
| Signal Protocol | Inter-agent communication with confidence scoring and consensus |
| Rail Protocol | Bidirectional channels with backpressure, provenance, tunnels |
| Error Taxonomy | Deterministic classification with auto-learning and circuit breakers |
| Parameter Normalization | Declarative alias system (q→query, cost→costPreference) |
| RoleShift Protocol | Bidirectional server↔client via MCP sampling/elicitation |
| Embedding Router | Local vector-based model selection via @terminals-tech/embeddings |
Links
- Homepage: terminals.tech
- npm: @terminals-tech/openrouter-agents
- GitHub: terminals-tech/openrouter-agents
- Docs: CLAUDE.md | Tool Patterns | Getting Started
Releasing
Releases are automated via release-please:
- Push conventional commits to
main(e.g.feat:,fix:,chore:) - release-please opens a version-bump PR
- Merge the PR → GitHub Release created automatically
- npm publish triggers on release via CI
Manual publish:
npm test && npm publish --access publicVersion: 1.16.0 | MCP SDK: 1.26.0 | MCP Spec: 2025-11-25 | Author: Tej Desai | License: MIT
