Skills Board について
Skills Boardは、チーム向けのAIスキル共有ライブラリです。スキルを検索し、インストールコマンドやZIPを取得できます。異なるエージェントで同じ項目を利用でき、認証とスコープ管理に対応したMCPツールも備えています。
主な機能
- 01チームのスキルを一元管理
- 02タスク、説明、リポジトリ、タグで検索
- 03インストールコマンドとZIPの取得
- 04組織単位のメンバーアクセス
- 05スコープ管理付きMCPツール
活用シーン
- 01チームで共有するAIスキルの整理
- 02異なるエージェント向けスキルの検索
- 03エージェントによるスキルコレクションの検索と整理
MCP 対応
`/api/mcp`にOAuth保護されたエンドポイントを提供します。ツールでスキルやコレクションを検索し、インストールコマンドを取得できます。`skills:write`があれば、スキルの保存とコレクションの整理も可能です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://www.skillsboard.sh/api/mcpclaude mcp add --transport http tommybez-skillsboard https://www.skillsboard.sh/api/mcp{"mcpServers":{"tommybez-skillsboard":{"type":"http","url":"https://www.skillsboard.sh/api/mcp"}}}Cursor で開く{"servers":{"tommybez-skillsboard":{"type":"http","url":"https://www.skillsboard.sh/api/mcp"}}}VS Code で開く{"mcpServers":{"tommybez-skillsboard":{"type":"http","url":"https://www.skillsboard.sh/api/mcp"}}}{"mcpServers":{"tommybez-skillsboard":{"serverUrl":"https://www.skillsboard.sh/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Skills Boardは、チーム向けのエージェントネイティブなスキルレジストリです。チームのAIスキルを一か所にまとめ、誰もがそれらの場所を把握し、活用できるようにします。
ホスト版アプリを試す · ローカルで実行する · コントリビュートする
## Skills Board の理由役立つスキルは、チャットやブックマーク、個人用のエージェント設定の中に埋もれがちです。Skills Board を使えば、チームで検索できる一元的な場所にスキルを集め、各メンバーが自分に合った使い方を選べます。
- チームで使えるライブラリ。 役立つスキルを一度保存し、チーム固有のタグで整理して、後から簡単に見つけられるようにします。
- さまざまなエージェントに対応。 同じエントリを Claude、Codex、Cursor など、さまざまなエージェント設定で共有できます。
- 受け渡し方法を選択可能。 元のソースを開く、互換性のあるインストールコマンドをコピーする、最新のスキルファイルを ZIP としてダウンロードする、という方法を選べます。
- 組織単位のアクセス。 チームを作成してメンバーを招待し、ライブラリを各メンバーが利用できるようにします。
- オプションの MCP アクセス。 互換性のあるエージェントを、認証済みでスコープが制御されたツールに接続して、チームのスキルやコレクションを検索、整理できます。
重要
保存したスキルはチームが選んだものであり、セキュリティレビュー、互換性の認定、リリースの固定を意味するものではありません。Skills Board は利用可能な最新のソースを読み込みます。エージェントで使用する前に、そのソースを確認してください。
仕組み
- チームライブラリを作成し、GitHub リポジトリからスキルを追加します。
- Skills Board は元のソースを表示したままにし、そのエントリをチーム用に記録します。
- メンバーはタスク、説明、リポジトリ、タグで検索します。
- 各メンバーはソースを開く、互換性のあるコマンドをコピーする、最新のファイルを ZIP としてダウンロードする、という方法を選べます。
デプロイ環境で Vercel OIDC が利用できる場合は、公開カタログを使ってスキルを見つけられます。チームライブラリと GitHub からの直接的なフローが、引き続き製品の中心です。
ローカルで実行する
前提条件
- Node.js 20.9 以降
- pnpm 10
- PostgreSQL 15 以降
1. アプリをインストールする
git clone https://github.com/TommyBez/skillsboard.git
cd skillsboard
corepack enable
pnpm install
cp .env.example .env.local
openssl rand -base64 32 で Better Auth のシークレットを生成し、その値と PostgreSQL の接続文字列を .env.local に追加します。
2. データベースを準備する
新しいデータベースに、コミット済みの Drizzle マイグレーションを適用します。これにより、drizzle/ 内でバージョン管理されている SQL から、Better Auth のテーブルとアプリケーション固有のテーブルが作成されます。
pnpm db:migrate
3. 開発を開始する
pnpm dev
http://localhost:3000 を開きます。DATABASE_URL を変更した後は、モジュールの読み込み時に PostgreSQL のプールが作成されるため、サーバーを再起動してください。
環境変数
| 変数 | 必須 | 用途 |
|---|---|---|
DATABASE_URL | はい | アプリケーションが使用する PostgreSQL 接続文字列です。Neon では、ここにプーリング URL を指定できます。 |
DATABASE_URL_UNPOOLED | Neon でのマイグレーション時 | Drizzle のマイグレーションで使用する PostgreSQL への直接接続です。ローカルの非プーリング PostgreSQL では、DATABASE_URL と同じ値にできます。 |
BETTER_AUTH_SECRET | はい | 認証データの署名と暗号化に使用するシークレットです。 |
BETTER_AUTH_URL | 推奨 | アプリケーションの公開オリジンです。ローカルでは http://localhost:3000 を使用してください。 |
CRON_SECRET | ホスト環境でのリリースクリーンアップに必須 | vercel.json で設定された、期限切れのコレクションリリースを毎日クリーンアップする処理の認証に使用する専用のランダムなシークレットです。 |
RESEND_API_KEY | 開発環境以外では必須 | Resend を通じて、サインイン用 OTP とチームへの招待メールを送信します。 |
EMAIL_FROM | 開発環境以外では必須 | OTP メールと招待メールに使用する、検証済みの Resend 送信元アドレスです(例:Skills Board <[email protected]>)。 |
RESEND_WEBHOOK_SECRET | ホスト環境でのメール配信に必須 | Resend のバウンス、苦情、抑制、配信停止に関する Webhook を検証します。 |
EMAIL_PRIVACY_SECRET | Vercel Production では必須 | base64 または hex でエンコードされた、32 バイト以上のランダム値です。メールハッシュと暗号化された配信停止リンクの専用ルートキーです。ローカル環境やセルフホスト環境では、BETTER_AUTH_SECRET からドメイン分離されたキーを導出して代用できます。 |
EMAIL_PRIVACY_SECRET_PREVIOUS | キーローテーション中のみ | デュアルハッシュによる抑制検索と配信停止トークンの復号に使用する、保持された base64/hex ルートキーの JSON 配列です。保持されたレコードが依存しているルートキーは削除できません。 |
KV_REST_API_URL | 開発環境以外では必須 | クライアントアドレスごとのメール登録送信数をカウントする、Upstash Redis データベースの REST エンドポイントです。Vercel では、Marketplace 統合がこの値をプロジェクトに自動設定します。 |
KV_REST_API_TOKEN | 開発環境以外では必須 | 同じ統合によって設定される、そのデータベース用の REST トークンです。統合があわせて設定する読み取り専用トークンは使用しません。 |
UPSTASH_REDIS_REST_URL | セルフホスト用の代替設定 | 手動で作成したデータベース向けの、Upstash の正規名での同じエンドポイントです。Upstash クライアントは KV_REST_API_URL より先にこちらを読み取るため、Vercel プロジェクトでは未設定にします。 |
UPSTASH_REDIS_REST_TOKEN | セルフホスト用の代替設定 | Upstash の正規名での同じトークンです。KV_REST_API_TOKEN より先に読み取られます。どちらの組み合わせも揃っていない場合、登録フォームは引き続き利用でき、レート制限も適用されません。 |
GITHUB_TOKEN | いいえ | メタデータ取得と ZIP ダウンロードにおける GitHub API のレート制限を緩和します。 |
VERCEL_OIDC_TOKEN | いいえ | オプションの skills.sh カタログ用に、Vercel によって自動的に提供されます。 |
サインインとサインアップには、メールのワンタイムコードを使用します(パスワードは使用しません)。開発環境以外では、RESEND_API_KEY と、ドメイン認証済みの EMAIL_FROM の両方を設定してください。Resend のテスト用送信元の代替設定は、Resend 独自のテスト用宛先にのみ機能します。開発環境では OTP メールはスキップされ、6 桁のコードであればどれでも使用できます。Vercel OIDC がない場合、Discover カタログは機能を縮小して動作しますが、チームライブラリは引き続き使用できます。
ホスト環境のデプロイでは、コレクションリリースの保持期間クリーンアップが毎日 1 回実行されます。デプロイ前に Vercel Production 環境で CRON_SECRET を設定してください。シークレットが設定されていない場合、エンドポイントは処理を拒否します。セルフホスト環境では、スケジューラーから Authorization: Bearer <CRON_SECRET> を指定して /api/cron/collection-release-retention を呼び出せます。
公開メールアドレス取得フォームには、クライアントアドレスごとに 1 時間あたり 5 回の送信制限があり、ハッシュ化されたアドレスを使用して Upstash Redis でカウントされます。Vercel では、Marketplace からデプロイ先に近いリージョンの Upstash Redis データベースを追加し、プロジェクトに接続してください。この連携により、Production と Preview に KV_REST_API_URL と KV_REST_API_TOKEN が書き込まれるため、それ以外の設定は不要です。セルフホスト可能なデプロイでは、console.upstash.com で作成したデータベースを指定し、代わりに UPSTASH_REDIS_REST_URL と UPSTASH_REDIS_REST_TOKEN を設定します。Upstash クライアントは正規のペアを最初に読み取り、見つからない場合は KV_REST_API_ のペアにフォールバックします。そのため、両方が設定されている場合は正規のペアが使用されます。いずれの場合も、フォームはフェイルオープンです。認証情報がない場合や Redis に接続できない場合、送信はカウントされずに受け付けられ、その状況はログに記録されます。
プロダクトに関するメール配信は、トランザクション OTP および招待メールとは別です。サインアップ時の同意は任意で、デフォルトではオフです。Settings → Email から変更できます。また、ローカルでの同意履歴、配信停止記録、署名付き配信停止リンク、検証済みの Resend 配信 Webhook によって適用されます。プロダクトの一斉配信を設定する前に、docs/email-compliance.md をご覧ください。
MCP アクセス
Skills Board は、OAuth で保護された MCP エンドポイント /api/mcp を提供します。サインイン後、Settings → MCP を開いて接続してください。ツールを使って、チームのスキルやコレクションを検索したり、インストールコマンドを取得したり、公開スキルやリポジトリのスキルを見つけたりできます。skills:write があれば、新しいスキルを保存してコレクションを整理できます。保存済みのチームスキルの編集や削除、エージェントへのインストール、実行はできません。
仕様の詳細は skillsboard.sh/developers(Markdown 版は /developers.md)にあります。公開エンドポイント、OAuth フロー、各ツールと必要なスコープ、HTTP インターフェースで使用されるバージョン管理、エラー、レート制限の規約を記載しています。すべての情報をまとめた機械可読なインデックスは /llms.txt です。
公式プラグイン
このリポジトリは、公式 Skills Board プラグインのマーケットプレイスでもあります。プラグインには上記の MCP サーバー設定と、エージェントからチームライブラリを利用する方法を説明する 1 つのスキルが含まれています。特定のクライアントに依存しません。plugin/ 内のディレクトリには Agent Plugins 1.0.0 マニフェストと、それに加えて Claude Code マニフェストがあります。プラグインのインストールは、上記の MCP を手動で設定する代わりとなるものであり、その後に行う手順ではありません。
Claude Code の場合:
/plugin marketplace add TommyBez/skillsboard
/plugin install skills-board@skills-board
plugins CLI が対応している任意のクライアントの場合:
npx plugins add TommyBez/skillsboard
プラグインをインストールすると、MCP サーバーが設定されます。接続するには、引き続き Skills Board にサインインし、クライアントで要求されたスコープを承認する必要があります。
技術スタック
| レイヤー | テクノロジー |
|---|---|
| アプリケーション | Next.js 16 App Router、React 19、TypeScript |
| UI | Tailwind CSS 4、shadcn/ui、Base UI |
| 認証 | Better Auth(メール OTP)。組織と OAuth プロバイダーに対応 |
| データ | PostgreSQL、Drizzle ORM |
| メール | Resend、React Email |
| エージェントアクセス | mcp-handler を介した Model Context Protocol |
| ホスティング | ホスト型デプロイでは Vercel と Neon を使用。セルフホストにも対応 |
プロジェクトコマンド
| コマンド | 実行内容 |
|---|---|
pnpm dev | Turbopack 開発サーバーを起動します。 |
pnpm typecheck | ファイルを出力せずに TypeScript コンパイラーを実行します。 |
pnpm check | リポジトリで必須のローカルチェックを実行します。 |
pnpm db:generate --name <description> | スキーマ変更後に、バージョン管理されたマイグレーションを生成します。 |
pnpm db:check | スキーマとコミット済みのマイグレーションスナップショットが一致しているか確認します。 |
pnpm db:migrate | 設定済みのデータベースに保留中のマイグレーションを適用します。 |
pnpm db:push | プロトタイピングに使用する使い捨てデータベースにのみスキーマをプッシュします。 |
pnpm build | 本番ビルドを作成します。 |
pnpm start | 本番サーバーを起動します。 |
pnpm email | ポート 3001 で React Email テンプレートをプレビューします。 |
貢献
イシューやプルリクエストを歓迎します。大規模な変更を行う前に CONTRIBUTING.md を読み、行動規範に従ってください。脆弱性は SECURITY.md に記載された手順で報告してください。
Skills Board の構築に協力してくれた方々は、コントリビューターページをご覧ください。
ライセンス
Skills Board は MIT ライセンスの下で利用できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。