Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
MCP server to list, load, explain, and validate Agent Skills.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
作者はレジストリにインストール情報を載せていません。下にある作者のREADMEをご覧ください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント craftbag で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.3.1)がレジストリに届いたのは16 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにRustも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Fomu MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Kenya government form guides: checklists, draft letters, eCitizen, Huduma, timelines. Sample data.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Discover, list, load, and explain Agent Skills (SKILL.md) for CLI and MCP hosts.
craftbag walks project and home skill trees (.agents, plus optional vendor trees for Claude, Cursor, Grok, and Bline). It then:
list)load), or heading keys / one heading (load --outline, load --section KEY)why)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.
macOS and Linux (Homebrew):
brew install craftbag/tap/craftbag
Windows (Scoop):
scoop bucket add craftbag https://github.com/craftbag/scoop-bucket
scoop install craftbag/craftbag
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).
From a Rust toolchain (crates.io):
cargo install --locked craftbag-cli
cargo install --locked craftbag-mcp
Library dependency:
craftbag = "0.2"
From git (unreleased tip):
cargo install --locked --git https://github.com/craftbag/craftbag craftbag-cli
cargo install --locked --git https://github.com/craftbag/craftbag craftbag-mcp
MSRV is 1.85.
Default list walks cwd-to-git .agents/skills and $HOME/.agents/skills. Claude, Cursor, Grok, and Bline trees stay out of that walk until you pass --vendor. When .cursor/skills (or the matching directory for another vendor) is present and that vendor is off, the empty list names the flag: hint: .cursor/skills is present; pass --vendor cursor. This clone has no project .agents. When the .agents directories are absent, craftbag list exits 0 and says no skills were found. craftbag new NAME writes .agents/skills/NAME/SKILL.md with a matching name and a placeholder description. Point --path at the demo tree (same catalog as the demo GIF):
git clone https://github.com/craftbag/craftbag
cd craftbag craftbag list --no-implicit-roots --path demo/workspace/.agents/skills --catalog craftbag load review-pr --no-implicit-roots --path demo/workspace/.agents/skills craftbag load review-pr --no-implicit-roots --path demo/workspace/.agents/skills --outline craftbag load review-pr --no-implicit-roots --path demo/workspace/.agents/skills --section review-a-pull-request craftbag why review-pr --no-implicit-roots --path demo/workspace/.agents/skills --context review craftbag validate demo/workspace/.agents/skills/review-pr
--section review-a-pull-request passes the outline key. --outline prints that key before the heading Review a pull request. validate takes the package directory that contains SKILL.md, here demo/workspace/.agents/skills/review-pr. The collection folder demo/workspace/.agents/skills has no SKILL.md of its own, so validate on it exits 1 with directory is not a skill package (no SKILL.md). list --path on that folder still lists the packages inside it.
--path, --user-dir, and --ignore expand ~/ themselves, because MCP and a quoted command have no shell. ~//name stays under your home directory, the same as ~/name. A ~// remainder that is still a Windows drive path is refused, so it does not replace your home directory. A path that is not there is an unreadable skip and says the path does not exist. A symlink whose target is gone says dangling symlink. Explicit / and /.. are roots you named. A padded .. that collapses to /, such as /tmp/ .., is refused.
If craftbag is not on PATH yet, cargo build -p craftbag-cli --locked and use ./target/debug/craftbag in those commands.
In a project that already has skills under .agents/skills:
craftbag list --catalog
craftbag load NAME craftbag why NAME --context review craftbag validate ./path/to/my-skill
Claude, Cursor, Grok, or Bline trees are opt-in:
craftbag list --vendor claude --catalog
craftbag-mcp speaks JSON-RPC on stdio. Tools: skills_list, skills_load, skills_why, skills_validate. prompts/list and prompts/get expose skills whose user_invocable is true (the default) as MCP prompts. prompts/get returns the same text envelope as load. After brew install or scoop install, craftbag-mcp --help names the tools. A request with "id": null is answered with that id. A message that omits id is a notification and gets no response.
Claude Desktop (claude_desktop_config.json) and other hosts that take a stdio command:
{
"mcpServers": { "craftbag": { "command": "craftbag-mcp", "args": ["--vendor", "claude"] } } }
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).
use craftbag::{discover, DiscoveryOptions};
fn main() -> std::io::Result<()> { let cwd = std::env::current_dir()?; let report = discover(&cwd, &DiscoveryOptions::default()); for skill in &report.skills { println!("{} {}", skill.name, skill.description); } Ok(()) }
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.
See CONTRIBUTING.md. Security reports go to SECURITY.md. Roadmap and governance are in ROADMAP.md and GOVERNANCE.md.
Apache-2.0 or MIT. You may choose either. See LICENSE and LICENSE-APACHE.