Routed
This server is a local MCP interface to Routed, providing fast, zero-token routing and management of agent skills.
Route prompts to skills via
route_skill, returning the top matching skills with instructions in under 20ms.Filter by host environment such as antigravity, cursor, claude-code, lmstudio, or ollama.
Control result count with
topKand get scoring explanations withexplain.Retrieve full skill details with
get_skillby skill ID or name.List indexed skills with
list_skills, optionally filtering by host or a search query.Scan and rebuild the index with
scan_skills, optionally targeting a specific workspace directory.Record feedback with
record_feedbackto fine-tune local scoring weights and learn synonyms.
Routed
The Universal Local Router for Agent Skills
Live Demo | Overview | Architecture | Installation | Quick Start | Comparison | Environments | MCP & Local Models | CLI | FAQ | Star History | License
Download standalone installers directly fromGitHub Releases: RoutedSetup.exe (Windows), RoutedSetup.pkg (macOS), and RoutedSetup.deb (Linux).
Overview
Routed is a universal, local, zero-token router for Agent Skills across AI coding environments. It automatically scans, indexes, and routes coding prompts to the most relevant skill using a local hybrid search engine combining Okapi BM25, exact matching, and local dense semantic embeddings.
Zero Token Cost: Eliminates costly LLM routing calls (saving 1,000+ prompt tokens per interaction).
Sub-20ms Latency: Local CPU-evaluated hybrid search responds instantly without network roundtrips.
Model Context Protocol (MCP) Server: Run Routed via
routed mcpto eliminate context pollution in LM Studio, Cursor, Claude Desktop, Windsurf, and Continue.Native Multilingual Understanding: Understands German, Spanish, French, Japanese, and 100+ languages natively, automatically handling compound words without language switches.
Native Auto-Updater: Automatic version checks and seamless in-place upgrades via
routed update.Self-Healing Host Reconciliation: Unified diagnostics and adapter repair via
routed doctor --fix.Privacy First: Prompt routing is executed 100% locally; no user queries leave your machine.
Multi-Skill Dispatch: Decomposes compound prompts and activates multiple skills simultaneously.
Related MCP server: Delegation MCP
Architecture
Routed evaluates queries using a multi-tier hybrid scoring pipeline running entirely on local CPU:
flowchart LR
UserPrompt["User Prompt (/route)"] --> Engine["Routed Core Engine"]
subgraph Engine["Hybrid Scoring Pipeline (Local CPU)"]
Exact["Exact / Alias Match (10%)"]
BM25["Okapi BM25 Lexical (35%)"]
Semantic["Dense Vector Embeddings (50%)"]
Meta["Adaptive History & Decay (5-25%)"]
end
Exact --> Scorer["Composite Hybrid Scorer"]
BM25 --> Scorer
Semantic --> Scorer
Meta --> Scorer
Scorer --> Selection["Top Skill(s) Resolved (< 20ms)"]
Selection --> Agent["AI Host Agent (Antigravity / Claude / Cursor / OpenCode / Codex)"]$$\text{Composite Score} = 0.50 \cdot \text{Semantic} + 0.35 \cdot \text{BM25} + 0.10 \cdot \text{Exact} + W_{\text{history}} \cdot \text{Metadata}$$
Comparison
Dimension | Routed (Local) | Traditional Cloud LLM Routing | Manual Skill Selection |
Token Cost | $0.00 (Zero tokens) | 500 to 2,000 paid tokens | $0.00 |
Latency | Under 20ms (Local CPU) | 1,200ms to 3,500ms network API | Manual human browsing |
Privacy | 100% Local (Air-gapped) | Sends user prompts to cloud | Local |
Ranking Engine | Deterministic Hybrid | Non-deterministic prompt drift | Memory or string grep |
Multi-Agent Sync | Automatic adapter synchronization | Fragmented per-tool prompting | Manual copy and paste |
Installation
Instant Test (Zero-Install via npx)
Test Routed immediately in any project without downloading an installer:
npx routed route "refactor auth service and add unit tests" --explainOr run the interactive setup wizard directly:
npx routed setupTo install globally via npm:
npm install -g routedStandalone Installers
For permanent, system-level local installation across all AI coding environments:
Platform | Installer Package | Format | Quick Install |
macOS | Apple Installer / Disk Image | Run | |
Linux | Debian Package / Tarball |
| |
Windows | NSIS Executable Installer | Run |
Build from Source
git clone https://github.com/bshea-1/Routed.git
cd Routed
npm install
npm run build
npm run setupQuick Start
1. Interactive Setup Wizard
Run the setup wizard to detect installed AI coding tools and configure /route adapters:
routed setup2. Discover & Index Skills
Scan local directories and build the hybrid index:
routed scan
routed skills3. Route Prompts
Inside your AI agent chat (Antigravity, OpenCode, Claude Code, Cursor, Codex):
/route write a unit test for my authentication service using TDDOr from your terminal:
routed route "audit accessibility and fix memory leaks" --explain4. Diagnostics
Verify system health, SQLite indices, and embedding models:
routed doctorSupported Environments
Environment | Adapter Path / Target | Auto-Detection | Integration Method |
Model Context Protocol (MCP) |
| Supported | Universal JSON-RPC 2.0 stdio server ( |
LM Studio |
| Supported | Local MCP server for GPU-hosted local LLMs |
Ollama |
| Supported | Tool schemas ( |
Hermes Agent |
| Supported | Function calling schemas (JSON & XML) and prompt integration ( |
Antigravity |
| Supported | Native skill dispatch and background router |
Claude Code |
| Supported | Slash command integration and terminal runner |
Cursor |
| Supported | Rule-based prompt interception and MCP tools |
Codeium Windsurf |
| Supported | Cascade MCP tool server |
Continue.dev |
| Supported | Local IDE tool provider for Ollama and LM Studio |
OpenCode |
| Supported | Local skill loader and interactive prompts |
Codex |
| Supported | Universal Agentic Skill schema |
Local agent harness command protection | Supported |
Model Context Protocol (MCP) & Local Models
Routed can be attached as a standard MCP server to any compatible host (LM Studio, Cursor, Claude Desktop, Windsurf, Continue). Instead of dumping 50+ tool schemas into your model context and exhausting VRAM, the host model only calls the route_skill tool. Routed evaluates the prompt on local CPU in sub-20ms and returns only the matched skill manifests.
Add to Claude Desktop / Cursor / LM Studio
Add the following snippet to your host configuration file:
{
"mcpServers": {
"routed": {
"command": "routed",
"args": ["mcp"]
}
}
}Direct Ollama Integration
Generate Ollama tool schemas for /api/chat function calling:
routed ollama toolsRoute a prompt and generate a ready-to-run Ollama API payload:
routed ollama run --prompt "build a neural network in pytorch" --model llama3.2Hermes Agent Integration
Generate tool schemas (OpenAI JSON or Nous Hermes XML) for Hermes agents:
# OpenAI-compatible JSON schema
routed hermes schema
# Nous Hermes XML schema
routed hermes schema --xml
# System prompt guidance snippet
routed hermes promptRoute a prompt and get ready-to-inject instructions:
routed hermes route "refactor auth service"Agent Harness Safety with HOL Guard
Routed integrates directly with HOL Guard (command.routed) to ensure safe automated execution inside agent harnesses. HOL Guard intercepts and flags state-modifying operations (routed doctor --fix, routed adapters install, routed adapters uninstall, and routed update) for pre-action human review, while allowing routine routing (routed route), diagnostics (routed doctor), and update checks (routed update --check) to execute without interruption.
CLI Reference
Command | Description | Example |
| Run interactive setup wizard |
|
| Check for updates and upgrade Routed |
|
| Start Model Context Protocol server over stdio |
|
| Ollama tool schemas, routes, and Modelfiles |
|
| Hermes schemas (JSON/XML), prompts, and routes |
|
| Find matching skill(s) for a prompt |
|
| Scan supported environments and update index |
|
| List all discovered and indexed skills |
|
| Manage |
|
| Run diagnostics and auto-reconciliation |
|
| Incrementally re-index and re-embed skills |
|
| Continuously monitor skill dirs for changes |
|
| Manage routing preferences and corrections |
|
| Display status and detected environments |
|
| Run routing accuracy and latency benchmarks |
|
| Safely remove Routed and clean adapters |
|
Usage:
routed <command> [arguments] [options]
Commands:
setup Run the interactive setup wizard
update Check for updates and automatically upgrade Routed (--check to inspect)
mcp Start Model Context Protocol (MCP) server for LM Studio, Cursor, Claude
ollama <subcommand> Ollama tool schemas, Modelfiles, and direct route integration
hermes <subcommand> Hermes agent schemas (JSON/XML), prompts, and direct route integration
route "<prompt>" Find the best matching Agent Skill(s) for a prompt
scan Scan supported AI environments and update index
skills List all discovered and indexed skills
adapters Manage /route adapters across AI coding tools
doctor Run system, database, and model diagnostics (--fix to repair)
reindex Incrementally re-index and re-embed installed skills
watch Continuously monitor skill directories for file changes
feedback Manage local routing preferences and corrections
uninstall Safely uninstall Routed and remove adapters (--dry-run available)
status Display current system status and detected environments
benchmark Run routing benchmark suite and measure accuracy and latency
version Print version information
help Display help screenFAQ
Routed follows an idempotent desired-state convergence model with zero blast radius. Each host adapter runs in an isolated boundary: if Cursor installs successfully but Claude Code fails (for example, due to a file lock or directory permission), Cursor is preserved and remains fully functional. Running routed doctor --fix or routed adapters install automatically detects and reconciles any missing adapters in a single command.
Routed runs quantized ONNX dense embedding models (Snowflake Arctic Embed S / all-MiniLM-L6-v2) directly on local CPU alongside Okapi BM25. Vector similarity and text indices are cached in a local SQLite database, requiring no internet connection or cloud tokens.
When a prompt contains compound intents or conjunctions (such as "and", "with", "as well as"), Routed decomposes the prompt into sub-clauses, scores candidates across all clauses, and returns all matching skills in selectedSkills for joint agent activation.
No. Benchmark execution times average under 20 milliseconds on local CPU, making routing practically instantaneous compared to remote cloud roundtrips (1,200ms to 3,500ms).
Routed stores its index and database files in standard platform directories:
macOS:
~/Library/Application Support/RoutedLinux:
~/.local/share/routedWindows:
%LOCALAPPDATA%\Routed
Star History
License
MIT License. Copyright (c) 2026 bshea-1.
See LICENSE for full details.
Available Tools
5 toolsget_skillA
Retrieve full markdown instructions and manifest for a skill by ID or name. Behavior: Read-only disk read; errors if not found. Usage Guidelines: Use when skill ID or name is already known (e.g. from route_skill or list_skills). Use route_skill to search by prompt intent. Parameters: id matches exact skill ID first, then falls back to case-insensitive name.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The unique skill ID (e.g. "git-commit-helper") or exact skill name. Case-insensitive lookup (required). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so description carries the burden. It discloses 'Read-only disk read; errors if not found' and the lookup fallback order, giving agents a clear safety profile and error expectation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into Behavior, Usage Guidelines, and Parameters sections in four concise sentences. Every sentence adds information and the main purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no annotations and no output schema, the description covers what the tool returns (full markdown instructions and manifest), its read-only behavior, failure mode, and selection criteria. For a one-parameter get tool, nothing essential is missing, though a bit more detail about the return structure could help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the id parameter with case-insensitive lookup semantics at 100% coverage, but the description adds the precedence rule that exact skill ID is matched first, then falls back to case-insensitive name. This is meaningful extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Retrieve' with resource 'full markdown instructions and manifest for a skill by ID or name.' It distinguishes itself from route_skill by noting that route_skill is for searching by prompt intent, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: when skill ID or name is already known (e.g. from route_skill or list_skills). It also states the alternative: 'Use route_skill to search by prompt intent,' providing clear selection logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_skillsA
List and filter all locally indexed agent skills from SQLite. Behavior: Read-only, sub-millisecond query with zero side effects. Usage Guidelines: Use to browse available skills without a prompt. Use scan_skills to refresh index after adding or editing skill files, route_skill to match prompts, or get_skill for specific skill instructions. Parameters: filter (substring search) and host (tool environment) combine as an AND filter. Returns all skills when omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | Optional host environment filter to restrict results to a specific tool (e.g. cursor, antigravity, claude-code, gemini-cli, hermes, codegate, openclaw, openmanus, lmstudio, ollama). | |
| filter | No | Optional substring query matched case-insensitively across skill names, descriptions, and tags. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It clearly states 'Read-only, sub-millisecond query with zero side effects,' which fully discloses behavioral characteristics with no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Organized into clear sections (Behavior, Usage Guidelines, Parameters) with no redundant wording. Every sentence adds meaningful information, achieving high density without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (list/filter, no output schema needed). The description covers purpose, behavior, usage, parameter semantics, and alternatives comprehensively, leaving no relevant gaps for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% so baseline is 3, but the description adds valuable context: 'combine as an AND filter' and 'Returns all skills when omitted,' which clarifies parameter interaction and default behavior beyond the individual schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('list' and 'filter') with a clear resource ('locally indexed agent skills from SQLite'). Explicitly differentiates from siblings by naming alternative tools and their purposes (scan_skills, route_skill, get_skill).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance ('Use to browse available skills without a prompt') and explicitly names alternatives with their appropriate contexts, leaving no ambiguity about selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_feedbackA
Record user routing corrections to refine scoring weights and learn prompt-to-skill synonyms. Behavior: Local SQLite update in <5ms. Idempotent. Usage Guidelines: Use after route_skill when a user approves or corrects a skill route. Parameters: query is the routed prompt; chosenSkillId is the correct skill identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The original natural language prompt or task query that was routed by route_skill (required, non-empty string). | |
| chosenSkillId | Yes | The unique skill ID or skill name that correctly handles the query (required, non-empty string). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that this is a 'Local SQLite update', that it is 'Idempotent', and gives a performance expectation of '<5ms'. This goes beyond a generic 'records feedback' and provides meaningful side-effect and safety context, though it doesn't describe error/failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with purpose, and logically structured with labeled Behavior, Usage Guidelines, and Parameters sections. Every sentence contributes operational value, and the key usage condition is immediately actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, no-output-schema, feedback-recording tool, the description is complete. It covers purpose, when to invoke it, side-effect characteristics (idempotent local update), and parameter meanings in context. No critical operational detail appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates 'query is the routed prompt; chosenSkillId is the correct skill identifier', but this adds minimal semantic value beyond the schema. It reinforces the routing context but does not introduce new format, constraints, or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Record user routing corrections to refine scoring weights and learn prompt-to-skill synonyms.' This clearly differentiates it from siblings like route_skill (routing), get_skill/list_skills (retrieval), and scan_skills (scanning). The resource and high-level effect are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use the tool: 'Use after route_skill when a user approves or corrects a skill route.' This gives a clear trigger condition and a sequencing relationship to its primary sibling. It leaves no ambiguity about the intended invocation context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
route_skillA
Route natural language prompts to matching agent skills using hybrid BM25 and dense embeddings. Behavior: Read-only local CPU execution in sub-20ms with zero LLM context tokens. Usage Guidelines: Primary entry point. Use route_skill to match task prompts against skills. Use list_skills to browse skills without a prompt, get_skill for known IDs, or scan_skills to refresh index. Parameters: prompt is the required query; topK (1-10, default 3) sets result limit; host filters environment; explain enables scoring breakdown signals.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | Optional host environment filter to restrict matches to a specific AI tool (e.g. cursor, antigravity, claude-code, gemini-cli, hermes, codegate, openclaw, openmanus, lmstudio, ollama). | |
| topK | No | Maximum number of top-matching skills to return. Valid integer range: 1 to 10 (default: 3). | |
| prompt | Yes | The natural language user prompt, coding task, or question to route to relevant skills (required, non-empty string). | |
| explain | No | When true, includes scoring breakdown signals (exact match score, BM25 lexical score, vector semantic similarity). Default: false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure, and it delivers: read-only execution, local CPU operation, sub-20ms latency, and zero LLM context tokens. These are concrete, useful behavioral traits that an agent needs to decide whether to call this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, uses labeled sections for behavior, usage guidelines, and parameters, and contains no filler. Every sentence contributes to either tool selection, invocation, or safety/performance understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a routing tool with no output schema, the description covers the core purpose, behavior, alternatives, and parameter semantics. An agent has enough context to decide when to use it and how to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description summarizes each parameter accurately, but adds little beyond what the schema already states about prompt, topK, host, and explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: route natural language prompts to matching agent skills, with the matching mechanism specified as hybrid BM25 and dense embeddings. It also distinguishes itself from siblings by explicitly naming list_skills, get_skill, and scan_skills as alternatives with different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly labels route_skill as the primary entry point and gives concrete conditions for using each sibling tool: list_skills for browsing without a prompt, get_skill for known IDs, and scan_skills for refreshing the index. This gives an agent clear decision criteria for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_skillsA
Scan filesystem directories across detected AI coding tools and rebuild the local SQLite index. Behavior: Synchronizes SQLite index in-place from disk in <100ms. Read-only on source skill files. Usage Guidelines: Use to refresh index after adding or editing skill files. Use route_skill or list_skills for querying. Parameters: workspace specifies an absolute directory to include workspace-local skills; scans all global tool paths when omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | No | Optional absolute directory path of a custom workspace to scan. If omitted, scans all standard global and workspace skill directories for detected host tools. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it discloses the in-place SQLite index update, a <100ms performance trait, and explicitly states it is read-only on source skill files. It could add more on failure modes or permissions, but the core behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, uses clear section labels (Behavior, Usage Guidelines, Parameters), and leads with the main purpose. Every sentence adds useful information, and there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter maintenance tool with no output schema, the description covers purpose, behavior, usage, and parameter semantics adequately. It does not describe the return value or success/failure feedback, but given the tool's simplicity and the lack of a meaningful output schema, the missing detail is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the workspace parameter. The description adds a small reminder that workspace is an absolute directory and clarifies the omission behavior, matching what the schema already states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Scan filesystem directories', 'rebuild the local SQLite index') and a clear resource (skill files across detected AI coding tools). It distinguishes itself from sibling query tools like route_skill and list_skills, so an agent understands its maintenance role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use it ('after adding or editing skill files') and names alternatives for querying ('Use route_skill or list_skills'). This gives the agent clear routing criteria without inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.0.2- Changed
get_skill1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"The unique skill ID (e.g., \"git-commit-helper\") or exact skill name. Case-insensitive lookup (required)."New value: +"The unique skill ID (e.g. \"git-commit-helper\") or exact skill name. Case-insensitive lookup (required)."
- Changed
list_skills2 fields changed- changed
Input schema / properties / filter / descriptionPrevious value: -"Optional substring filter matched case-insensitively against skill names, descriptions, and tags."New value: +"Optional substring query matched case-insensitively across skill names, descriptions, and tags." - changed
Input schema / properties / host / descriptionPrevious value: -"Optional host environment filter to limit results to a specific tool (e.g. cursor, antigravity, claude-code, gemini-cli, hermes, codegate, openclaw, openmanus, lmstudio, ollama)."New value: +"Optional host environment filter to restrict results to a specific tool (e.g. cursor, antigravity, claude-code, gemini-cli, hermes, codegate, openclaw, openmanus, lmstudio, ollama)."
- Changed
route_skill1 field changed- changed
Input schema / properties / topK / descriptionPrevious value: -"Maximum number of top-matching skills to return. Valid range: 1 to 10 (default: 3)."New value: +"Maximum number of top-matching skills to return. Valid integer range: 1 to 10 (default: 3)."
5 tool updates
v1.0.1- Changed
get_skill1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"The unique skill ID or skill name."New value: +"The unique skill ID (e.g., \"git-commit-helper\") or exact skill name. Case-insensitive lookup (required)."
- Changed
list_skills2 fields changed- changed
Input schema / properties / filter / descriptionPrevious value: -"Optional filter query across names, descriptions, and tags."New value: +"Optional substring filter matched case-insensitively against skill names, descriptions, and tags." - changed
Input schema / properties / host / descriptionPrevious value: -"Optional host environment filter."New value: +"Optional host environment filter to limit results to a specific tool (e.g. cursor, antigravity, claude-code, gemini-cli, hermes, codegate, openclaw, openmanus, lmstudio, ollama)."
- Changed
record_feedback2 fields changed- changed
Input schema / properties / chosenSkillId / descriptionPrevious value: -"The correct skill ID."New value: +"The unique skill ID or skill name that correctly handles the query (required, non-empty string)." - changed
Input schema / properties / query / descriptionPrevious value: -"The prompt query that was routed."New value: +"The original natural language prompt or task query that was routed by route_skill (required, non-empty string)."
- Changed
route_skill4 fields changed- changed
Input schema / properties / explain / descriptionPrevious value: -"Include scoring breakdown and matched signals."New value: +"When true, includes scoring breakdown signals (exact match score, BM25 lexical score, vector semantic similarity). Default: false." - changed
Input schema / properties / host / descriptionPrevious value: -"Optional host environment filter (e.g. antigravity, cursor, claude-code, lmstudio, ollama)."New value: +"Optional host environment filter to restrict matches to a specific AI tool (e.g. cursor, antigravity, claude-code, gemini-cli, hermes, codegate, openclaw, openmanus, lmstudio, ollama)." - changed
Input schema / properties / prompt / descriptionPrevious value: -"The user prompt or task description to route."New value: +"The natural language user prompt, coding task, or question to route to relevant skills (required, non-empty string)." - changed
Input schema / properties / topK / descriptionPrevious value: -"Maximum number of skills to return (default: 3)."New value: +"Maximum number of top-matching skills to return. Valid range: 1 to 10 (default: 3)."
- Changed
scan_skills1 field changed- changed
Input schema / properties / workspace / descriptionPrevious value: -"Optional workspace directory path to scan."New value: +"Optional absolute directory path of a custom workspace to scan. If omitted, scans all standard global and workspace skill directories for detected host tools."
5 tool updates
v0.1.0- First observed
get_skill - First observed
list_skills - First observed
record_feedback - First observed
route_skill - First observed
scan_skills
TDQS
Each tool has a clearly distinct role: route_skill matches prompts, get_skill retrieves by ID, list_skills browses, scan_skills reindexes, and record_feedback captures corrections. There is no meaningful overlap or ambiguity between them.
All tools follow a consistent verb_noun snake_case pattern, with verbs accurately describing the action: route, get, list, scan, record. Singular and plural object forms are used appropriately for the resource being acted on.
Five tools is well-scoped for a skill routing and indexing server. Each tool addresses a distinct operation in the workflow—querying, retrieving, browsing, scanning, and feedback—without unnecessary bloat or missing essentials.
The tool surface fully covers the advertised domain: routing prompts, browsing the index, retrieving full skill details, refreshing the index from disk, and incorporating user corrections. Since skills are sourced from the filesystem, a create/update/delete skill tool is not needed for this server's purpose.
Maintenance
Related MCP Connectors
AI routing, memory, guardrails, and governance. Routes across Claude, GPT, Gemini.
Agent-first skill marketplace with USK open standard for Claude, Cursor, Gemini, Codex CLI.
Git-backed platform for skills, tools, and context for AI agents
AI agent skills marketplace — token-efficient skill search & execution
Related MCP Servers
- AlicenseCqualityFmaintenanceAn AI router that connects applications to multiple LLM providers (OpenAI, Anthropic, Google, DeepSeek, Ollama, etc.) with smart model orchestration capabilities, enabling dynamic switching between models for different reasoning tasks.33737MIT
- AlicenseCqualityDmaintenanceIntelligent routing layer that analyzes tasks and guides your AI agent to delegate work to specialized tools (Gemini, Aider, Copilot) using rule-based and capability-based routing.3MIT
- AlicenseCqualityBmaintenanceRoutes coding tasks across multiple AI CLIs (Copilot, Claude Code, Gemini, etc.) with cost-aware tier routing and parallel wave orchestration.552Apache 2.0
- AlicenseAqualityBmaintenanceRoutes work from your coding agent across 20+ free-tier LLMs to cut costs 10-100x using a round-robin dispatch pool with cooldown-aware auto-fallback.81,224MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bshea-1/Routed'
If you have feedback or need assistance with the MCP directory API, please join our Discord server