jev-skill-router
Rust MCP server that retrieves agent-skill metadata with SQLite FTS5 and ranks candidates with one typed Score each from Jev.
Overview
Jev Skill Router recommends third-party agent skills for a project. Offline Python tooling indexes skill metadata from GitHub into SQLite with FTS5/BM25; a native Rust stdio MCP server then searches that index and sends one comparable typed Score per candidate, in batches of up to 128 questions, to a configured decision provider. It never installs or executes skills.
It is for agent users who want help discovering skills from a large external catalog. Providers are configured in a JSON profile file: the default profile calls Jev at TypeSafe's systemone endpoint, and a Perplexity pplx-decider profile is also shipped. Any endpoint that accepts the same model/state/questions request and returns typed Scores can be added without code changes. There is no automatic fallback between providers. Retrieval needs no model key; ranking does.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Score | How well does this candidate skill fit the project or request?(inferred) | — |
How it works
- Python indexer pulls skill metadata from GitHub into SQLite FTS5
- MCP search retrieves and deduplicates a BM25 shortlist, applying exclusion policy first
- Rust service sends one Score per candidate (max 128 per batch) to the selected provider
- Ranked recommendations are returned; nothing is installed or executed
Strengths
- Provider-agnostic: Jev and pplx-decider profiles, plus any compatible typed-decisions endpoint
- Runtime is a single native binary with read-only SQLite and no subprocesses
- Retrieval works without any model key
- Has a CI verify workflow per the README badge
Caveats
- Setup needs Rust, Python with FTS5 and an authenticated GitHub CLI
- Provider changes require a process restart
- README notes dated receipts are historical evidence, not proof of a current deployment
Getting started
Clone, install requirements-offline.txt, run `python3 -B router.py index --workers 16`, `cargo build --release --locked`, then start the stdio server with SKILL_ROUTER_DB and SKILL_ROUTER_PROVIDERS_FILE set.At a glance
- Type
- MCP server
- Status
- beta
- Language
- Rust
- Runtime
- MCP server
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
Jev Skill MCP Router — samler skill-kilder, indekserer dem, lader Jev vælge de…
wh000wh000/awesome-jev-live
Frequently asked questions
What does the decision model do here?
It scores each retrieved candidate skill so the shortlist can be ranked by fit.
Can I use something other than Jev?
Yes. A Perplexity decider profile ships, and any endpoint with the same typed Score request and response shape can be added in the providers file.
Does it install skills for me?
No. It only recommends; it never installs or executes skills.
Related projects
MCP server and semantic index that tags shadcn-format components once and matches a plain-language brief to them deterministically.
MCP serverbetaTypeScriptMCP server over Apple developer docs and WWDC transcripts that uses hybrid search, then Jev relevance scores to rank results.
MCP serverproductionTypeScriptLocal long-term memory for coding agents with an optional Jev reranker that orders recalled memories.
ProjectproductionTypeScriptDeterministic code-graph context for coding agents on Postgres, AGE and pgvector, with optional Jev or local re-selection of symbols.
MCP serverbetaPythonAgent skill where Ego Lite drives the browser and Jev resolves semantic choices: targets, filtering, ranking and evidence checks.
ProjectbetaMarkdown + TypeScriptMCP tool that asks Jev which files, web pages or snippets are relevant to a query, so the agent reads selectively.
MCP serverbetaTypeScript