mcp-router
MCP router that catalogs and deduplicates tools and exposes each agent only a relevant, authorised subset using typed decisions.
Overview
MCP Router discovers, catalogs, classifies and deduplicates every MCP server and tool you have, then exposes each AI agent only the small, relevant and authorised subset it needs for a task, instead of flooding its context with the whole catalogue. Routing decisions are System One style typed Choice, Score and Noul questions answered with calibrated probabilities. The decision engine is pluggable: a zero-ML deterministic backend by default, the open Laya model (recommended, opt-in) on a laptop GPU or CPU, a hosted endpoint such as Jev or another router, or Azure OpenAI.
Retrieval fuses Postgres pgvector embeddings with full-text search. A deny-by-default policy engine and execution manager ensure model scores are only relevance data and never widen access. Exposure budgets cap tools and servers per request, per agent and globally, and a route cache re-checks authorisation on every hit. Analytics follow each decision from surfaced to selected to succeeded, with position bias and context-token savings. A dashboard includes a tool playground, approvals queue and an 'agent lens' showing exactly what an agent would see and why. The whole stack runs without torch as a fallback.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Score | How relevant is this tool to the agent's task? | — |
| Choice | Which category does this tool belong to?(inferred) | — |
| Yes / no | Are these two tools duplicates?(inferred) | — |
How it works
- Discover and catalog MCP servers and tools
- Classify and deduplicate tools
- For a request, retrieve candidates and score relevance
- Policy engine filters to authorised tools within budgets
- Expose the subset; track the decision funnel
Strengths
- Smaller, relevant tool lists for agents
- Model scores cannot widen access
- Pluggable local or hosted decision engines
- Detailed analytics and agent lens
Caveats
- Requires Postgres with pgvector
- Complex deployment
- Laya backend is opt-in
At a glance
- Type
- MCP server
- Status
- beta
- Language
- Python
- Runtime
- service with Postgres and dashboard
- Has code
- yes
- License
- Apache-2.0
Use cases and integrations
How curated lists describe it
An open-source, Jev-based MCP router that catalogs, deduplicates, and dynamically filters tools using single-pass System One decisions.
logicrw/awesome-jev-projects
Frequently asked questions
Can the model give an agent access to unauthorised tools?
No, a deny-by-default policy engine decides access; scores are relevance only.
Does it need Jev?
No, it runs a deterministic backend by default, with Laya, Jev or Azure as options.
How do I see why an agent got certain tools?
Use the agent lens in the dashboard.
Related projects
Local Python MCP service that keeps the skill catalog out of the agent's context and lets Jev pick which SKILL.md files to load.
MCP serverbetaPythonToolkit where Jev condenses large MCP responses for Claude Code and maps Codex requests to reviewed, fixed repository operations.
ProjectbetaTypeScriptPi extension that strips the inlined skill list and asks Jev which single skill, if any, to load per turn.
Agent skillbetaTypeScriptGives an agent one tool that uses Jev to search a nested capability tree and return only the documented commands a task needs.
ProjectprototypeTypeScriptMIT plugin and local MCP server that hands an agent's closed questions to Jev or local Laya, with policy gates and receipts.
Agent skillproductionPythonClaude Code and Codex skill that routes a task to one of 27 specialist roles, with an optional Jev engine for catalog selection.
ProjectbetaPython