SkillMesh
SkillMesh is a retrieval router for MCP/LLM tool catalogs. It selects top-K relevant expert cards instead of loading every tool, reducing prompt size, by improving tool selection, and lowering token cost. Supports Claude MCP, Codex skills, and OpenAI-style function schemas.
README
SkillMesh
Stop stuffing hundreds of tools into your LLM prompt. Route to the right ones.
SkillMesh is a retrieval router for agent tool catalogs. Instead of loading every skill/tool into every prompt, it selects the best few cards for the query and injects only those.
Why Teams Adopt SkillMesh
- Keeps prompts small as your catalog grows (top-K instead of full dump)
- Improves tool selection quality on multi-domain tasks
- Cuts token cost per call by avoiding irrelevant tool context
- Works with Claude (MCP), Codex (skill bundle), and local CLI workflows
- Standardized OpenAI-style function schemas for tool expansion
The Problem
LLM agents break when you load every tool into the prompt. Token counts explode, accuracy drops, and cost scales linearly with your catalog size. Teams with 50+ skills end up with bloated system prompts that confuse the model and burn budget.
SkillMesh solves this with retrieval-based routing: given a user query, it selects only the top-K most relevant expert cards and injects them into the prompt — keeping context small, accurate, and cheap.
High-Value Use Cases
- Internal AI assistants with large tool/skill catalogs (50+ cards)
- Multi-step workflows crossing domains (data -> ML -> infra -> reporting)
- Teams using MCP where tool overload hurts selection quality
- Role-based execution flows (
Data-Analyst,Financial-Analyst,AWS-Engineer)
SkillMesh vs Static Skill Docs
Static SKILL.md only |
SkillMesh routing | |
|---|---|---|
| Prompt strategy | Load broad instructions every turn | Inject only relevant top-K cards |
| Scale behavior | Gets noisy as catalog grows | Remains focused with retrieval |
| Multi-domain tasks | Manual tool prompting | Query-driven cross-domain routing |
| Expansion | Add docs and hope model picks right one | Add cards + retrieval handles selection |
Before vs After
| Without SkillMesh | With SkillMesh | |
|---|---|---|
| Prompt tokens | ~50,000+ (all tools loaded) | ~3,000 (top-K only) |
| Tool selection | Model guesses from a huge list | BM25+Dense retrieval picks the best match |
| Cost per call | High (full catalog every time) | Low (only relevant cards) |
| Accuracy | Degrades as catalog grows | Stays consistent |
| Multi-domain tasks | Confusing for the model | Routed precisely (clean + train + deploy) |
How It Works
User Query
│
▼
┌─────────────────────┐
│ BM25 + Dense Index │ ← Scores every card in your registry
└─────────┬───────────┘
│
▼
┌─────────────────────┐
│ RRF Fusion Rank │ ← Merges sparse + dense rankings
└─────────┬───────────┘
│
▼
┌─────────────────────┐
│ Top-K Card Select │ ← Returns the K best expert cards
└─────────┬───────────┘
│
▼
┌─────────────────────┐
│ Agent acts as expert │ ← Full instructions injected into prompt
└─────────────────────┘
Each card contains: execution behavior, decision trees, anti-patterns, output contracts, and composability hints — everything the agent needs to act as a domain expert.
One-line MCP install (Claude Desktop / Claude Code)
Add this to your Claude Desktop config (claude_desktop_config.json) or Claude Code MCP settings:
{
"mcpServers": {
"skillmesh": {
"command": "uvx",
"args": ["--from", "skillmesh[mcp]", "skillmesh-mcp"]
}
}
}
No env vars. No file paths. No cloning. The bundled registry is included in the package.
Requires uv to be installed.
60-Second Demo
git clone https://github.com/varunreddy/SkillMesh.git
cd SkillMesh
pip install -e .
skillmesh emit \
--provider claude \
--registry examples/registry/tools.json \
--query "clean messy sales data, train a baseline model, and generate charts" \
--top-k 5
Output (truncated):
<context>
<card id="data.data-cleaning" title="Data Cleaning and Validation Expert">
# Data Cleaning and Validation Expert
Specialist in detecting and correcting data quality issues...
</card>
<card id="ml.sklearn-modeling" title="Scikit-learn Modeling and Evaluation">
...
</card>
<card id="viz.matplotlib-seaborn" title="Visualization with Matplotlib and Seaborn">
...
</card>
</context>
Only the relevant experts are injected — the rest of the 100+ card catalog stays out of the prompt.
Integrations
| Platform | Method | Status | Docs |
|---|---|---|---|
| Claude Code | MCP server | Supported | Setup guide |
| Claude Desktop | MCP server | Supported | Setup guide |
| Codex | Skill bundle | Supported | Setup guide |
Claude MCP Server
The easiest way to run it is via uvx (see "One-line MCP install" above). For local development:
pip install -e .[mcp]
skillmesh-mcp
The server auto-discovers the registry: env var SKILLMESH_REGISTRY → repo root → bundled registry.
Exposes five tools via MCP:
route_with_skillmesh(query, top_k)— provider-formatted context blockretrieve_skillmesh_cards(query, top_k)— structured JSON payloadlist_skillmesh_roles(catalog?, registry?)— full role list with installed statuslist_installed_skillmesh_roles(catalog?, registry?)— installed roles onlyinstall_skillmesh_role(role, catalog?, registry?, dry_run?)— install by id or friendly name (for exampleData-Analyst)
Copy-ready config templates in examples/mcp/.
Codex Skill Bundle
$skill-installer install https://github.com/varunreddy/SkillMesh/tree/main/skills/skillmesh
Direct role commands in SkillMesh:
skillmesh roles
skillmesh roles list
skillmesh Data-Analyst install
skillmesh roles install Data-Analyst
Or via installed bundle wrapper:
~/.codex/skills/skillmesh/scripts/roles.sh
~/.codex/skills/skillmesh/scripts/roles.sh list
~/.codex/skills/skillmesh/scripts/roles.sh install --role-id role.data-engineer
Quickstart
Install
python -m venv .venv && source .venv/bin/activate
pip install -e .[dev]
Optional extras:
pip install -e .[dense] # Dense reranking with sentence-transformers
pip install -e .[mcp] # Claude MCP server
Retrieve top-K cards
skillmesh retrieve \
--registry examples/registry/tools.json \
--query "set up nginx reverse proxy with SSL" \
--top-k 3
Emit provider-ready context
skillmesh emit \
--provider claude \
--registry examples/registry/tools.json \
--query "deploy container to GCP Cloud Run" \
--top-k 5
Role Quickstart
List available role cards:
skillmesh roles list --catalog examples/registry/tools.json
Install a role by friendly name (adds missing dependencies):
skillmesh roles install Data-Analyst \
--catalog examples/registry/tools.json \
--registry ~/.codex/skills/skillmesh/installed.registry.yaml
Dry-run an install to preview what will be added:
skillmesh roles install AWS-Engineer \
--catalog examples/registry/tools.json \
--registry ~/.codex/skills/skillmesh/installed.registry.yaml \
--dry-run
MCP equivalent (tool call):
install_skillmesh_role(role="Data-Analyst", catalog="examples/registry/tools.json", dry_run=false)
Curated Registries
Use domain-specific registries for tighter routing:
| Registry | Domain | Cards |
|---|---|---|
tools.json / tools.yaml |
Full catalog | 154 |
ml-engineering.registry.yaml |
ML training & evaluation | 33 |
data-engineering.registry.yaml |
Pipelines & data platforms | 14 |
bi-analytics.registry.yaml |
BI & dashboards | 21 |
devops.registry.yaml |
DevOps & infrastructure | 18 |
web-apis.registry.yaml |
API design & patterns | 11 |
cloud-gcp.registry.yaml |
Google Cloud Platform | 13 |
cloud-bi.registry.yaml |
Cloud BI | 17 |
roles.registry.yaml |
Role orchestrators | 11 |
skillmesh emit \
--provider claude \
--registry examples/registry/devops.registry.yaml \
--query "configure prometheus alerting and grafana dashboards" \
--top-k 3
Benchmarking
Use the reproducible benchmark template:
CLI Commands
| Command | Description |
|---|---|
skillmesh retrieve |
Top-K retrieval payload (JSON) |
skillmesh fetch |
Alias for retrieve (supports free-text query shorthand) |
skillmesh emit |
Provider-formatted context block |
skillmesh index |
Index registry into Chroma for persistent retrieval |
skillmesh roles wizard |
Interactive role picker and installer |
skillmesh roles list |
List available role cards from a catalog |
skillmesh roles install |
Install role card + missing dependency cards into target registry |
skillmesh role |
Alias for roles |
skillmesh-mcp |
Stdio MCP server for Claude |
skillmesh retrieve/MCP payloads include invocation in OpenAI function-tool format for every card.
skillmesh --help
Repository Layout
src/skill_registry_rag/
├── models.py # Tool/role card models
├── registry.py # Registry loading + validation
├── retriever.py # BM25 + optional dense retrieval
├── adapters/ # Provider formatters (codex, claude)
└── cli.py # skillmesh CLI
examples/registry/
├── tools.json # Full tool catalog
├── tools.yaml # YAML version of full catalog
├── instructions/ # Expert instruction files (90+)
├── roles/ # Role orchestrator files
└── *.registry.yaml # Domain-specific registries
skills/skillmesh/ # Codex-installable skill
Contributing
See CONTRIBUTING.md for how to add expert cards, create registries, and submit PRs.
Troubleshooting
skillmesh: command not found
pip install -e .
Missing registry path
The CLI and MCP server auto-discover the registry. If auto-discovery fails, pass --registry or set:
export SKILLMESH_REGISTRY=/path/to/tools.json
# or pass --registry on every command
skillmesh-mcp fails to start
pip install -e .[mcp]
Codex does not detect new skill
Restart Codex after running $skill-installer.
Development
ruff check src tests
pytest
License
MIT — see LICENSE.
If SkillMesh helps your team, please star the repo — it directly improves discoverability and helps others find the project.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。