Skip to main content
Glama

Routed

The Universal Local Router for Agent Skills

Live Demo Latest Release Platforms Glama Score License: MIT

Live Demo | Overview | Architecture | Installation | Quick Start | Comparison | Environments | MCP & Local Models | CLI | FAQ | Star History | License

TIP

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 mcp to 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" --explain

Or run the interactive setup wizard directly:

npx routed setup

To install globally via npm:

npm install -g routed

Standalone Installers

For permanent, system-level local installation across all AI coding environments:

Platform

Installer Package

Format

Quick Install

macOS

RoutedSetup.pkg / RoutedSetup.dmg

Apple Installer / Disk Image

Run .pkg or mount .dmg

Linux

RoutedSetup.deb / routed-linux-x64.tar.gz

Debian Package / Tarball

sudo dpkg -i RoutedSetup.deb

Windows

RoutedSetup.exe / Install-Routed.ps1

NSIS Executable Installer

Run RoutedSetup.exe

Build from Source

git clone https://github.com/bshea-1/Routed.git
cd Routed
npm install
npm run build
npm run setup

Quick Start

1. Interactive Setup Wizard

Run the setup wizard to detect installed AI coding tools and configure /route adapters:

routed setup

2. Discover & Index Skills

Scan local directories and build the hybrid index:

routed scan
routed skills

3. Route Prompts

Inside your AI agent chat (Antigravity, OpenCode, Claude Code, Cursor, Codex):

/route write a unit test for my authentication service using TDD

Or from your terminal:

routed route "audit accessibility and fix memory leaks" --explain

4. Diagnostics

Verify system health, SQLite indices, and embedding models:

routed doctor

Supported Environments

Environment

Adapter Path / Target

Auto-Detection

Integration Method

Model Context Protocol (MCP)

claude_desktop_config.json, .cursor/mcp.json

Supported

Universal JSON-RPC 2.0 stdio server (routed mcp)

LM Studio

~/.cache/lm-studio/mcp.json

Supported

Local MCP server for GPU-hosted local LLMs

Ollama

~/.ollama/routed/routed-tools.json

Supported

Tool schemas (/api/chat) and dynamic Modelfiles

Hermes Agent

~/.hermes/routed/routed-tools.json

Supported

Function calling schemas (JSON & XML) and prompt integration (routed hermes)

Antigravity

~/.gemini/config/skills/route/SKILL.md

Supported

Native skill dispatch and background router

Claude Code

~/.claude/skills/route/SKILL.md

Supported

Slash command integration and terminal runner

Cursor

.cursor/rules/routed.mdc / mcp.json

Supported

Rule-based prompt interception and MCP tools

Codeium Windsurf

~/.codeium/windsurf/mcp_config.json

Supported

Cascade MCP tool server

Continue.dev

~/.continue/config.json

Supported

Local IDE tool provider for Ollama and LM Studio

OpenCode

~/.opencode/skills/route/SKILL.md

Supported

Local skill loader and interactive prompts

Codex

.agents/skills/route/SKILL.md

Supported

Universal Agentic Skill schema

HOL Guard

Local agent harness command protection

Supported

Pre-action safety extension (command.routed)


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 tools

Route a prompt and generate a ready-to-run Ollama API payload:

routed ollama run --prompt "build a neural network in pytorch" --model llama3.2

Hermes 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 prompt

Route 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

routed setup

Run interactive setup wizard

routed setup

routed update

Check for updates and upgrade Routed

routed update --check

routed mcp

Start Model Context Protocol server over stdio

routed mcp

routed ollama <cmd>

Ollama tool schemas, routes, and Modelfiles

routed ollama tools

routed hermes <cmd>

Hermes schemas (JSON/XML), prompts, and routes

routed hermes schema

routed route "<prompt>"

Find matching skill(s) for a prompt

routed route "write unit test with TDD"

routed scan

Scan supported environments and update index

routed scan

routed skills

List all discovered and indexed skills

routed skills

routed adapters

Manage /route adapters across AI tools

routed adapters install

routed doctor

Run diagnostics and auto-reconciliation

routed doctor --fix

routed reindex

Incrementally re-index and re-embed skills

routed reindex

routed watch

Continuously monitor skill dirs for changes

routed watch

routed feedback

Manage routing preferences and corrections

routed feedback --list

routed status

Display status and detected environments

routed status

routed benchmark

Run routing accuracy and latency benchmarks

routed benchmark

routed uninstall

Safely remove Routed and clean adapters

routed uninstall --dry-run

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 screen

FAQ

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/Routed

  • Linux: ~/.local/share/routed

  • Windows: %LOCALAPPDATA%\Routed


Star History


License

MIT License. Copyright (c) 2026 bshea-1.

See LICENSE for full details.

Available Tools

5 tools
get_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe unique skill ID (e.g. "git-commit-helper") or exact skill name. Case-insensitive lookup (required).

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNoOptional host environment filter to restrict results to a specific tool (e.g. cursor, antigravity, claude-code, gemini-cli, hermes, codegate, openclaw, openmanus, lmstudio, ollama).
filterNoOptional substring query matched case-insensitively across skill names, descriptions, and tags.

TDQS

A4.9/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe original natural language prompt or task query that was routed by route_skill (required, non-empty string).
chosenSkillIdYesThe unique skill ID or skill name that correctly handles the query (required, non-empty string).

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNoOptional 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).
topKNoMaximum number of top-matching skills to return. Valid integer range: 1 to 10 (default: 3).
promptYesThe natural language user prompt, coding task, or question to route to relevant skills (required, non-empty string).
explainNoWhen true, includes scoring breakdown signals (exact match score, BM25 lexical score, vector semantic similarity). Default: false.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceNoOptional absolute directory path of a custom workspace to scan. If omitted, scans all standard global and workspace skill directories for detected host tools.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 3 tool updatesv1.0.2
    • Changedget_skill1 field changed
      • changedInput schema / properties / id / description
        Previous 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)."
    • Changedlist_skills2 fields changed
      • changedInput schema / properties / filter / description
        Previous 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."
      • changedInput schema / properties / host / description
        Previous 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)."
    • Changedroute_skill1 field changed
      • changedInput schema / properties / topK / description
        Previous 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)."
  2. 5 tool updatesv1.0.1
    • Changedget_skill1 field changed
      • changedInput schema / properties / id / description
        Previous 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)."
    • Changedlist_skills2 fields changed
      • changedInput schema / properties / filter / description
        Previous value: -"Optional filter query across names, descriptions, and tags."New value: +"Optional substring filter matched case-insensitively against skill names, descriptions, and tags."
      • changedInput schema / properties / host / description
        Previous 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)."
    • Changedrecord_feedback2 fields changed
      • changedInput schema / properties / chosenSkillId / description
        Previous value: -"The correct skill ID."New value: +"The unique skill ID or skill name that correctly handles the query (required, non-empty string)."
      • changedInput schema / properties / query / description
        Previous 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)."
    • Changedroute_skill4 fields changed
      • changedInput schema / properties / explain / description
        Previous 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."
      • changedInput schema / properties / host / description
        Previous 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)."
      • changedInput schema / properties / prompt / description
        Previous 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)."
      • changedInput schema / properties / topK / description
        Previous 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)."
    • Changedscan_skills1 field changed
      • changedInput schema / properties / workspace / description
        Previous 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."
  3. 5 tool updatesv0.1.0
    • First observedget_skill
    • First observedlist_skills
    • First observedrecord_feedback
    • First observedroute_skill
    • First observedscan_skills

TDQS

A4.7/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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