Skill Hub
Enables organizations to centrally manage and distribute Claude Code skills, allowing members to connect and use the latest skill instructions via a single command.
README
Skill Hub
社内の「AIが得意な人」が Claude Code 用のスキル(指示書+参照資料)を1箇所に登録し、社員は コマンド1行を Claude Code に貼るだけ でそのスキル群を使えるようにする、1社1インスタンスのテンプレートです。Cloudflare Workers + D1 上で動く単一Workerアプリで、自社のCloudflareアカウントにデプロイして使います。
これは何か(正直に)
スキルは「ファイル配布」ではなく「サーバーから都度配信」です。この違いが価値の中心です。
- 導入がコマンド1行で終わる
- 中央でスキルを更新すれば、次の利用から全員が最新版を使う
- 退職・異動時はトークンを失効させれば即座に使えなくなる
- リポジトリごと渡さないので、組織外への再配布が起きにくい
MCP応答は利用者の会話に平文として渡ります。「読めない秘匿」ではありません。読もうと思えば読める人には読めます。この仕組みが守っているのは「配布経路」と「失効の即時性」であり、完全に隠したいロジックはこの仕組みの対象外です(そういう用途はv2のサーバー実行型ツールで扱う想定です)。
Claude Code純正スキルとの違い
配信されるのは「指示書として読ませるテキスト」です。純正スキルの frontmatter 機能・/スラッシュ起動・同梱スクリプトの実行はできません。純正の自動発動に近づけるため、スキル登録時の「説明」にツールの発動条件を書く運用にしてください(MCPツールの description としてそのまま使われます)。
アーキテクチャ
[Claude Code (member)] --Streamable HTTP MCP--> POST /mcp ┐
[ブラウザ (admin/editor/member)] --Bearer--> /api/* + 静的UI ├─ Cloudflare Worker (Hono/TS)
[招待リンク] --> /join (明示ボタンPOSTでclaim・1回表示) ┘ │
D1: tokens/skills/skill_files/skill_versions/invites/audit_log
単一Worker・単一D1データベース。KV/Durable Objectsは使いません。静的UI(public/)もWorker経由で配信し、全応答にセキュリティヘッダを付与します。
セットアップ
前提: Node.js 20以上、Cloudflareアカウント。
git clone <このリポジトリ>
cd skill-hub
npm ci
npx wrangler login # 唯一の手作業(ブラウザでCloudflareにログイン)
node scripts/setup.mjs --seed
setup.mjs は冪等です。何度実行しても安全で、既にある状態はスキップします。
- D1データベース
skill-hub-dbを確認/作成し、wrangler.jsoncのdatabase_idを書き換えます - マイグレーションを適用します(未適用分のみ)
- Workerをデプロイします
- 有効なadminトークンが0件の場合のみ、初期adminトークンを1回だけ発行して表示します(このトークンは二度と表示されません。必ず控えてください)
--seedを付けるとskills-samples/の3本のサンプルスキルを投入します
複数のCloudflareアカウントを持っている場合は CLOUDFLARE_ACCOUNT_ID 環境変数で対象を指定してください。
使い方(役割別)
| 役割 | 誰 | できること |
|---|---|---|
| admin | AI推進担当(導入企業側) | スキル登録・メンバー招待・トークン発行/失効・監査ログ閲覧。何でもできる最上位権限 |
| editor | スキルを作る人 | 自分のgroups内のスキルを作成・更新・削除・ロールバック。下書き保存も可能 |
| member | 一般社員 | 招待リンクからトークンを発行し、Claude Codeにスキルを1コマンドで接続する |
memberの手順
- 管理者から届いた招待リンク(
https://<host>/join?code=...)を開く - 「トークンを発行する」ボタンを押す(GETでは何も起きません。ボタンを押した時だけトークンが発行されます)
- 表示されたコマンドをコピーして、Claude Codeのターミナルに貼る
claude mcp add --transport http --scope user skillhub https://<host>/mcp --header "Authorization: Bearer <token>"
--scope user なので、以後は全プロジェクトでスキルが使えます。**表示は1回だけです。**この画面を閉じると二度と見られないので、必ずその場でコピーしてください。
権限マトリクス(サーバー側で全て強制。UIの出し分けは補助でしかありません)
| 操作 | member | editor | admin |
|---|---|---|---|
| MCP tools/list・call(自groups内のpublishedのみ) | ✅ | ✅ | ✅ |
| GET /api/me・GET /api/skills(可視のみ) | ✅ | ✅ | ✅ |
| スキル作成/更新/削除/添付/公開切替/ロールバック | ❌ | ✅(対象skillのgroups⊆自groups) | ✅ |
| 下書き閲覧 | ❌ | ✅(同上) | ✅ |
| トークン発行/一覧/失効・招待発行/一覧/取消 | ❌ | ❌ | ✅ |
| 監査ログ閲覧 | ❌ | ❌ | ✅ |
groupsの可視判定はOR判定です(skill.groups と token.groups の積が空でない、またはどちらかが "*" なら見える)。複数groupsを指定しても「絞り込み」にはなりません。機密スキルは専用グループ1つで運用してください。
新しいスキルの発見は新しいセッションからです。MCPは tools/listChanged を送らないため、Claude Codeを起動したまま裏でスキルを追加しても、そのセッションのツール一覧には出てきません(本文の更新は既存セッションでも次回呼び出し時に反映されます)。反映させたい場合はClaude Codeを再起動してください。
無料枠と課金
Cloudflare Workers / D1 とも無料枠があります(Workers: 10万リクエスト/日、D1: 500万行読み取り/日・10万行書き込み/日が目安、いずれもCloudflareの料金ページで最新値を確認してください)。数十人規模の社内利用であれば通常は無料枠に収まりますが、超えた場合は自動で有料プラン(Workers Paid)への移行が必要になります。利用状況はCloudflareダッシュボードで確認できます。
v1のスコープ外(正直な制約)
- OAuth/SSO・IdP連携はしていません(トークン方式のみ)。Cloudflare Accessを前段に置く場合、CLIからのアクセスがブラウザ認証チャレンジで止まることがあるため、Access併用時は事前に確認してください
- スキルの二者承認ワークフローはありません。editorは信頼前提で、監査ログとバージョン履歴・ロールバックで事後対処します
- 可視スキルが40本を超えるとMCPの
tools/listが肥大化します。大規模組織向けの二段検索方式(search_skills)はv2予定です - バイナリ添付ファイルは非対応(テキストのみ)
- D1のリージョン/jurisdiction選択はセットアップスクリプトの手動オプション案内のみです
- CIは含まれていません
ライセンス
MIT。詳細は LICENSE を参照してください。
もっと詳しく
- セキュリティ設計: docs/security.md
- メンバー向け利用ガイド: docs/member-guide.md
- 運用ガイド(管理者向け): docs/operations.md
- Claude Codeによる自走セットアップ手順: CLAUDE.md
推荐服务器
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 模型以安全和受控的方式获取实时的网络信息。