MCP server to list, load, explain, and validate Agent Skills.
io.github.craftbag/craftbag-mcp MCP Server
This MCP server lists, loads, explains, and validates Agent Skills. It is intended to provide access to skill-related information and support workflows that require verifying whether skills meet expected criteria.
🛠️ Key Features
List Agent Skills
Load Agent Skills
Explain Agent Skills
Validate Agent Skills
🚀 Use Cases
Retrieve available Agent Skills for use by an application
craftbag walks project and home skill trees (.agents, plus optional vendor trees for Claude, Cursor, Grok, and Bline). It then:
catalogs skills (list)
prints one skill body (load), or heading keys / one heading (load --outline, load --section KEY)
explains why a skill would activate (why)
checks a package (validate)
The same operations exist over MCP stdio (skills_list, skills_load, skills_why, skills_validate). Hosts can filter, rank, and load skills without taking a dependency on any one agent product.
Both commands install craftbag and craftbag-mcp. The MCP host then runs craftbag-mcp (on macOS GUI apps, use the full path if PATH is empty: /opt/homebrew/bin/craftbag-mcp).
Default list walks cwd-to-git .agents / vendor trees and $HOME/.agents / vendor trees. This clone has no project .agents. When those directories are absent, craftbag list exits 0 and says no skills were found. Point --path at the demo tree (same catalog as the demo GIF):
Launch --path, --vendor, --user-dir, and --no-implicit-roots are the walk when a tool call omits that field. The host cwd is still the implicit walk root unless you pass --no-implicit-roots. skills_load accepts outline and section (same as load --outline / --section KEY).
implicit_roots is on by default (cwd-to-git .agents and $HOME/.agents). Set it to false and put collection roots in paths for leftover-only hosts. format_load_view can print an outline or one heading instead of the whole body.