AgentPlaybooks について
AgentPlaybooksは、AIエージェントのペルソナ、スキル、指示、メモリ、ツール接続をまとめるポータブルな環境です。複数のプラットフォームで設定を管理する個人やチーム向けで、エクスポート可能なプレイブックを共通の情報源にします。
主な機能
- 01エージェント設定のポータブルなプレイブック
- 02ペルソナ、指示、スキル、メモリの管理
- 03CLIによる監査、同期、バックアップ
- 04実行ごとに分離されたバージョン管理付きキャンバス
- 05サーバー側で認証情報を注入するシークレット保管庫
活用シーン
- 01複数のエージェントプラットフォーム間での同期
- 02ローカルのエージェント設定の監査と移行
- 03プロジェクトの指示やスキルのチーム共有
MCP 対応
プレイブックにはMCPサーバーを保存でき、MCP Skills拡張を通じてスキルを提供できます。他のMCPサーバーやOpenAPIサービスをツールとして連携でき、認証情報はシークレット保管庫から解決されます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://agentplaybooks.ai/api/mcp/manageclaude mcp add --transport http ai-agentplaybooks-agentplaybooks https://agentplaybooks.ai/api/mcp/manage{"mcpServers":{"ai-agentplaybooks-agentplaybooks":{"type":"http","url":"https://agentplaybooks.ai/api/mcp/manage"}}}Cursor で開く{"servers":{"ai-agentplaybooks-agentplaybooks":{"type":"http","url":"https://agentplaybooks.ai/api/mcp/manage"}}}VS Code で開く{"mcpServers":{"ai-agentplaybooks-agentplaybooks":{"type":"http","url":"https://agentplaybooks.ai/api/mcp/manage"}}}{"mcpServers":{"ai-agentplaybooks-agentplaybooks":{"serverUrl":"https://agentplaybooks.ai/api/mcp/manage"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://agentplaybooks.ai/api/mcp/manage認証が必要ツール
詳細
AgentPlaybooks
1つのプレイブックで、あらゆるエージェントに対応。 AI エージェントのためのポータブルな運用環境です。ペルソナ、スキル、MCP サーバー、プロジェクトの指示、メモリを1つの信頼できる情報源にまとめます。
エージェントを自分のものに保ちましょう。AgentPlaybooks では、スキル、ペルソナ、MCP サーバー、プロジェクトの指示、メモリを1つのポータブルなプレイブックに保存できるため、プラットフォームを切り替えたり、複数のプラットフォームを同時に使ったり、ベンダーロックインなしでセルフホストしたりできます。
エージェントの設定は、Claude、ChatGPT、Cursor、Codex、Gemini、ローカルモデル、そして今後登場するプラットフォーム間で同期されます。プレイブックこそがポータブルな信頼できる情報源であり、特定のベンダーやエディターではありません。
これは、単なる別のスキルストアや MCP レジストリではありません。スキルと MCP 接続はプレイブックの一部であり、プレイブックは仕事全体を担います。これは、身体を持つエージェントにも当てはまります。スキルには、ロボットが作業を実行する順序を記録したデモンストレーションを含められます。
主な特長
プレイブックに含まれるもの
- ペルソナ:プレイブックごとに1つ。プレイブックのレコードに直接保存されます
- 指示:常時適用されるプロジェクトルール —
AGENTS.md/CLAUDE.mdの内容 - スキル:Agent Skills 形式の
SKILL.mdドキュメント。すべてのクライアントでフロントマターが保持されます - スキルの添付ファイル:バンドルされたスクリプト、リファレンス、テンプレート。CLI で往復できます
- デモンストレーション:スキルの実行記録 — YouTube、固定 URL、または LeRobot データセット。タイムスタンプ付きセグメントを含みます。見て学ぶエージェント向け
- MCP サーバー:Model Context Protocol 形式のツールとリソース
- メモリ:タグと説明を付けられるキーと値のストア。 ネイティブの Hermes メモリプロバイダーを備えています
- Hermes Tools プラグイン:プレイブックのスキル、MCP/OpenAPI ツール、認証情報を接続
- キャンバス:バージョン管理された Markdown 作業ドキュメント。プレイブックの実行ごとに範囲が設定されるため、複数のチームが成果物を共有せずに同じプレイブックを実行できます
認証情報を渡さずに使う
- シークレットボルト:AES-256-GCM、ユーザーごとに鍵を導出します。エージェントはシークレットを名前で参照し、プラットフォームがサーバー側で値を注入する(
use_secret)ため、値がエージェントのコンテキストに入ることはありません。シークレットごとにホストの許可リストを任意で設定でき、有効期限も強制されます。有効期限切れのシークレットは、使用しようとするすべての経路で拒否されます。 - フェデレーション:他の MCP サーバーや OpenAPI サービスをプレイブックのツールとして利用でき、認証情報は同じボルトから名前で解決されます
- 監査証跡:すべてのフェデレーション呼び出しとボルト操作を記録します。拒否された操作も含まれます
ツールに導入する
- Claude:1つのプラグインで、アカウント内のすべてのプレイブックを claude.ai、Claude Desktop、Cowork、Claude Code、モバイルで利用できます。OAuth でサインインし、API キーは不要です。または、単一のプレイブックをカスタムコネクターとして追加できます。Claude での AgentPlaybooksを参照してください。
- Cursor と VS Code:アカウント全体または単一のプレイブックをワンクリックでインストールできます。各プレイブックの Integrations タブと、MCP Integrationから利用できます。
- CLI + ポータブル Agent Plugin:ローカルのエージェント設定を監査してから、1つのプレイブックを Claude Code、Cursor、ChatGPT/Codex、Google Antigravity、Grok Bot、Hermes に同期します
- Agent Plugins 1.0:プロジェクトプラグインをインストールするか、単一のプレイブックを
plugin.json、mcp.json、完全な Agent Skills ディレクトリとしてエクスポートできます。互換性のある MCP ホストは、MCP Skills 拡張機能を通じてホストされたプレイブックのスキルを検出することもできます。 - 非公開のバージョン管理付き中央バックアップは、インストール可能なプラグインのエクスポートとは別です。パッケージにボルトのシークレット値は含まれません。
- 公開:公開プレイブックのスキルは
/.well-known/skills/でプレーンな Markdown として HTTP 配信されます。URL からインストールでき、レジストリもサインアップも不要です - エクスポート形式:Agent Plugin ZIP、JSON、OpenAPI、MCP、Anthropic、Markdown
他の人と共同作業する
- API キー:ロールベースのアクセス制御(Viewer、Coworker、Admin)
- チームでの共同作業:人間の認証情報やエージェント API キーを共有せずに、一度限りの編集者招待ができます
- 探索:実用的なユースケース、セットアップガイド、厳選された AgentPlaybooks のスターター
- 共有:公開または限定公開のプレイブックを利用できます。プロジェクトのコンテキストは非公開のコピーに保持できます
- テーマ:システム設定に応じたライトモードとダークモード
技術スタック
| カテゴリ | 技術 | 目的 |
|---|---|---|
| フレームワーク | Next.js 16 + React 19 | App Router、SSR |
| スタイリング | Tailwind CSS 4 | ユーティリティファースト CSS |
| アニメーション | Framer Motion | UI アニメーション |
| アイコン | Lucide React | アイコンライブラリ |
| API | Hono | エッジ API ルーティング |
| データベース | Supabase | Postgres + Auth + RLS |
| i18n | next-intl | ローカライズ(en、hu、de、es) |
| ドキュメント | public/docs 内のプレーンな Markdown | クライアント側で取得してレンダリング |
| ホスティング | Cloudflare Workers | エッジデプロイ |
| アダプター | @opennextjs/cloudflare | Workers 上の Next.js |
ライブデモ
- ウェブサイト:https://agentplaybooks.ai — 正式なホストです。https://apbks.com はリンク用の短縮ドメインです
- ドキュメント:https://agentplaybooks.ai/docs
- リリース配布チェックリスト:npm、MCP レジストリ、プラグインストア、スキルの検索、Hermes メモリ、検証
- GitHub:https://github.com/matebenyovszky/agentplaybooks
はじめに
前提条件
- Node.js 22 以降(
package.jsonのengines。CI は 22 を実行します) - npm 11 以降 — npm 10 はロックファイルを書き込みますが、その後
npm ciで拒否されます - Supabase プロジェクト
- Cloudflare アカウント(デプロイする場合は任意)
インストール
git clone https://github.com/matebenyovszky/agentplaybooks.git
cd agentplaybooks
npm install
スターター
examples/ にあるポータブルなプレイブックです。ペルソナ、指示、
スキル、MCP、メモリ、ボルトを、自分で管理するツリーにまとめています。クローンまたは
cp -R できる、小規模な MIT ライセンスのサンプルです。マーケットプレイスではありません。
| スターター | 概要 |
|---|---|
coding-agent-baseline | コーディングエージェント用プレイブック:指示、2 つのスキル、安全な MCP スタブ |
doctor-drift-demo | ホストフォルダーとのずれを含むレビュー用プレイブック。ポータブルストアが正式な情報源です |
skills-only-starter | 最小構成のプレイブック:3 つのスキル + 指示。MCP なし |
cursor-hermes-starter | Cursor および Hermes ホスト向けの、ペルソナ、指示、スキルを含むプレイブック |
ホストにインストールします(任意で doctor によるチェックを実行してから sync を実行します)。
npx @agentplaybooks/cli@latest doctor examples/coding-agent-baseline
npx @agentplaybooks/cli@latest sync examples/coding-agent-baseline --target=claude,cursor --apply
examples/README.md、CLI ドキュメント、 および Agent Plugins 仕様をご覧ください。
環境変数
次の内容で .env.local ファイルを作成します。
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
# Required for the secrets vault. 32 bytes as 64 hex characters:
# node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
# Losing it means losing every stored secret — no vault operation can decrypt
# without it, and rotating it invalidates everything already encrypted.
SECRETS_ENCRYPTION_KEY=
任意:
| 変数 | 効果 |
|---|---|
NEXT_PUBLIC_APP_URL | canonical タグ、サイトマップ、robots で使用する正式なオリジンです。デフォルトは https://agentplaybooks.ai です。 |
ALLOWED_ORIGINS | カンマ区切りの CORS 許可リストです。ホスト環境のデフォルトを完全に置き換えます。セルフホストインスタンスでは、プロジェクト独自のドメインが信頼されないように設定してください。 |
SECRETS_REQUIRE_ALLOWED_HOSTS | true にすると、シークレットにホスト許可リストが必須になります。ホストが固定されていないシークレットは、アウトバウンドリクエストに一切使用できません。 |
開発
npm run dev
http://localhost:3000 を開きます
Cloudflare へのデプロイ
npm run build:worker
npm run preview
npx wrangler deploy
CLI、ChatGPT/Codex プラグイン、Claude Code プラグイン(packages/cli)
agentplaybooks doctor <project> は、ローカルのエージェント設定(指示、Agent Skills、カスタムエージェント、MCP サーバー、ハードコードされた可能性のあるシークレット、ドリフト)を監査します。また、agentplaybooks sync <project> は、正規の agentplaybook.json と、有効なターゲットで不足しているプラットフォームファイルを作成します。対象は、Claude Code、Cursor、ChatGPT/Codex、GitHub Copilot、Gemini CLI、Google Antigravity(.agents/skills)、Grok Bot(.agents/skills。AGENTS.md とともにネイティブで検出されます)、Hermes Agent(~/.hermes/config.yaml に登録された .agents/skills、および同ファイルの mcp_servers: と SOUL.md)です。
agentplaybooks plugin export|import は、Agent Plugins 1.0 パッケージをエクスポート/インポートして往復変換します。マニフェストの拡張部分に含まれるのはシークレットの参照とバインディングのみで、シークレット値は含まれません。
login / playbooks / pull / push は、ユーザー API キーを使って、ホストされたプレイブックとスキル、MCP サーバー、マニフェストを同期します。push は、Agent Skills のフォルダー一式と移植可能なカスタムエージェントを含む、プライベートでバージョン管理されたクロスプラットフォームの AI エージェント設定バックアップも作成します。backups はリビジョンを一覧表示し、pull --snapshot は以前のスナップショットを復元できます。シークレット値は移動せず、spec.secrets で宣言された参照のみが移動します。変更を伴うコマンドはまず実行計画を表示し、対応している場合は --apply、--yes、または対話形式の確認が必要です。packages/cli/README.md とバックアップと移行のガイドを参照してください。
同じパッケージは、ChatGPT/Codex および Cursor のプラグイン(スキル+アカウント MCP)でもあります。API キーの正確な設定方法とインストールコマンドは、packages/cli/README.md に記載されています。
Claude プラグインは、独立した軽量フォルダー plugins/agentplaybooks にあります。アカウント MCP コネクター(OAuth、キー不要)、チャットと Cowork で使えるプレイブックのスキル、固定された npx 経由で公開済み CLI を実行する doctor / sync コマンドが含まれています。claude.ai と Cowork は bin/ ディレクトリを含むプラグインを拒否するため、bin/ ディレクトリはありません。claude.ai では Customize → Plugins → Add marketplace から matebenyovszky/agentplaybooks を追加するか、Claude Code で次の操作を行います。
/plugin marketplace add matebenyovszky/agentplaybooks
/plugin install agentplaybooks@agentplaybooks
API の概要
公開プレイブックと非公開リストのプレイブックへのアクセス
公開プレイブックは誰でも閲覧できます。非公開リストのプレイブックには GUID でアクセスできますが、検索結果には表示されません。
GET /api/playbooks/:guid
GET /api/playbooks/:guid?format=openapi
GET /api/playbooks/:guid?format=mcp
GET /api/playbooks/:guid?format=anthropic
GET /api/playbooks/:guid?format=markdown
GET /api/playbooks/:id/personas
GET /api/playbooks/:id/skills
GET /api/playbooks/:guid/memory
注::id はペルソナとスキルの両方で UUID と GUID をサポートします。
認証済みプレイブックの CRUD(セッション認証)
GET /api/playbooks
POST /api/playbooks
PUT /api/playbooks/:id
DELETE /api/playbooks/:id
ペルソナ(所有者または編集者)
POST /api/playbooks/:id/personas
PUT /api/playbooks/:id/personas/:pid
DELETE /api/playbooks/:id/personas/:pid
スキル(所有者または編集者)
POST /api/playbooks/:id/skills
PUT /api/playbooks/:id/skills/:sid
DELETE /api/playbooks/:id/skills/:sid
メモリーへの書き込み(API キーまたは所有者)
PUT /api/playbooks/:guid/memory/:key
DELETE /api/playbooks/:guid/memory/:key
Canvas 作業ドキュメント
Canvas ドキュメントは隔離されたワークフロー実行に属するため、複数のチームが作業成果物を共有せずに同じプレイブックを実行できます。エージェントが時間をかけて改訂できる、長文の Markdown 成果物です。永続的な事実や構造化された状態にはメモリーを使い、PR レビュー、調査レポート、実装計画、段落ごとに編集できる草案などの成果物には Canvas を使います。
GET /api/playbooks/:guid/runs
POST /api/playbooks/:guid/runs
GET /api/playbooks/:guid/canvas?runId=:runId
POST /api/playbooks/:guid/canvas
GET /api/playbooks/:guid/canvas/:slug?runId=:runId
PUT /api/playbooks/:guid/canvas/:slug?runId=:runId
PATCH /api/playbooks/:guid/canvas/:slug?runId=:runId
DELETE /api/playbooks/:guid/canvas/:slug?runId=:runId
PUT はドキュメントのフィールドを置き換え、expectedVersion が必要です。PATCH は append、prepend、または完全一致の replace 操作による差分更新を行い、こちらも expectedVersion が必要です。バージョンが古い場合は HTTP 409 が返され、複数のエージェントが互いの作業を気づかないまま上書きすることを防ぎます。
curl -X PATCH 'https://your-domain.com/api/playbooks/abc123/canvas/pr-review?runId=RUN_UUID' \
-H "Authorization: Bearer apb_your_key" \
-H "Content-Type: application/json" \
-d '{
"operation": "replace",
"search": "## Security review\nPending.",
"content": "## Security review\nNo blocking issues found.",
"expectedVersion": 3
}'
プレイブック API キー(所有者のみ)
GET /api/playbooks/:id/api-keys
POST /api/playbooks/:id/api-keys
DELETE /api/playbooks/:id/api-keys/:kid
人間による共同作業(セッション認証、アクセス管理は所有者が担当)
人間の編集者は、一度限りのリンクで招待されます。プレイブックのコンテンツは編集できますが、所有権に関する管理は所有者のみが行えます。
GET /api/playbooks/:id/collaborators
POST /api/playbooks/:id/collaborators
DELETE /api/playbooks/:id/collaborators/:collaboratorId
GET /api/collaboration-invites/:token
POST /api/collaboration-invites/:token
招待リンクの有効期限は72時間で、一度だけ承諾できます。アクセス許可の全体像とセキュリティに関する注意事項は、チームでの共同作業を参照してください。
プレイブックのシークレット(所有者または API キー)
シークレットは AES-256-GCM で暗号化されます。エージェントは use_secret MCP ツールまたはプロキシエンドポイントを使用して、平文の値を読み取ることなく、HTTP リクエストでシークレットを使用できます。
GET /api/playbooks/:guid/secrets # List metadata only
POST /api/playbooks/:guid/secrets # Create encrypted secret
PUT /api/playbooks/:guid/secrets/:name # Update/rotate secret
DELETE /api/playbooks/:guid/secrets/:name # Delete secret
# Dashboard only
GET /api/playbooks/:guid/secrets/reveal/:name
# Proxy external requests using a secret
POST /api/playbooks/:guid/secrets/proxy
# Audit trail — shared with federated MCP calls
GET /api/playbooks/:guid/audit?operation=secret.
拒否された操作も含め、すべてのボールト操作が記録されます。記録内容は、実行された操作、その対象のシークレット、所有者または API キーのプレフィックス、そして secret.use の場合は接続先ホストです。記録にシークレットの値、送信先 URL 全体、キーが含まれることはありません。アクセスできるのは所有者のみです。プレイブック API キーではボールト操作を実行できますが、その記録を読み取ることはできません。
ユーザープロフィールとユーザー API キー(管理)
GET /api/user/profile
PUT /api/user/profile
GET /api/user/api-keys
POST /api/user/api-keys
DELETE /api/user/api-keys/:kid
公開ディスカバリーと保存済みのお気に入り
これらの API は、公開データの読み取り、ダッシュボードでのスキル/MCP のディスカバリー、既存のお気に入りをサポートします。Explore はサーバーでレンダリングされるユースケースガイドで、厳選されたファーストパーティのスターターリンクを掲載します。これらのカタログを読み込んだり、公開プレイブックを自動的に紹介したりすることはありません。
GET /api/public/playbooks
GET /api/public/skills
GET /api/public/skills/:id
GET /api/public/mcp
GET /api/public/mcp/:id
GET /api/playbooks/:id/star
POST /api/playbooks/:id/star
GET /api/user/starred
メモリへの書き戻し(プレイブック API キーまたは所有者)
GET /api/playbooks/:guid/memory
PUT /api/playbooks/:guid/memory/:key
DELETE /api/playbooks/:guid/memory/:key
MCP エンドポイント
ローカルの stdio プロセスが必要なクライアントについては、ローカル MCP トランスポートをご覧ください。 同じアカウントツールと認可ハンドラーを使用します。プロトコルの検出は認証情報なしで開始できますが、データ操作にはインスタンスの設定が必要です。
GET /api/mcp/:guid # MCP manifest
POST /api/mcp/:guid # MCP JSON-RPC
POST /api/mcp/:guid/tools/:tool # Call one tool over plain HTTP
POST /api/mcp/manage # MCP management server (user API key)
GET /api/mcp/config/:serverId # Federated server config (owner)
POST /api/mcp/config/:serverId
PUT /api/mcp/config/:serverId
DELETE /api/mcp/config/:serverId
POST /api/mcp/config/:serverId/test # Try the connection before saving it
GET /api/mcp-registry/search # Search the public MCP registry
GET /.well-known/mcp-registry-auth # Registry ownership verification
プレイブックが公開するすべてのツールは、通常の HTTP 呼び出しでも利用できます。そのため、MCP を扱えないクライアントも利用できます。
POST /api/playbooks/:guid/operations/:operation
POST /api/control/:operation # Account-level operations
HTTP 経由でのスキルの公開
スキルは通常の Markdown として提供されます。インデックスとスキルごとの SKILL.md があり、認証情報は不要で、CORS はオープンです。どのクライアントでも、レジストリやサインアップなしでベース URL からインストールできます。提供されるのは公開プレイブックのみです。非公開リストおよびプライベートのプレイブックには、引き続き apb pull からアクセスできます。
GET /.well-known/skills/ # Site-wide: every public playbook's skills
GET /playbooks/:guid/.well-known/skills/ # One playbook
hermes skills install well-known:https://agentplaybooks.ai/.well-known/skills/<name>
接続カタログ
GET /api/connections
フェデレーション MCP サーバーまたは OpenAPI サービスを接続するための、厳選されたテンプレートです。テンプレートは認証情報ではないため公開されています。各エントリには必要なシークレットが名前のみで記載され、プレイブックのボールトから取得されます。
管理
GET /api/manage/openapi.json
GET /api/manage/playbooks
POST /api/manage/playbooks
ヘルス
GET /api/health
API キーの使用方法
プレイブック API キーを使用すると、エージェントは単一のプレイブックのメモリを読み書きできます。
curl -X PUT https://your-domain.com/api/playbooks/abc123/memory/user_preferences \
-H "Authorization: Bearer apb_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"value": {"theme": "dark"}}'
ユーザー API キーは、管理エンドポイントと MCP 管理サーバーで使用します。
curl -X POST https://your-domain.com/api/mcp/manage \
-H "Authorization: Bearer apb_live_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"list_playbooks","params":{}}'
プロジェクト構成
agentplaybooks/
src/
app/
.well-known/skills/ # Public skill publishing (site-wide)
api/
_shared/ # auth.ts, guards.ts — where authorization lives
[[...route]]/ # Hono catch-all for most endpoints
mcp/ # MCP manifest, JSON-RPC, federation config
playbooks/ # Per-playbook routes (secrets, canvas, audit, …)
dashboard/ # Authenticated UI
enterprise/ # Self-hosting landing page
explore/ # Use cases, setup guidance, curated starters
login/ # Auth pages
page.tsx # Marketing home
components/
playbook/ # Editor components
ui/ # UI primitives
i18n/
messages/ # Translation files (en, hu, de, es)
request.ts # Server-side locale resolution
lib/
mcp/ # Federation, secret references
storage/ # Storage adapters
supabase/ # Supabase client and types
crypto.ts # Secrets vault encryption
packages/
cli/ # AgentPlaybooks CLI + Codex/Cursor plugin
plugins/
agentplaybooks/ # Claude plugin (claude.ai, Cowork, Claude Code)
.claude-plugin/ # Plugin marketplace manifest
docs/ # Contributor-facing notes
security/ # Supplier-assessment pack (HU + EN)
examples/ # Starter playbooks (fork/clone/sync)
public/
blog/ docs/ # Markdown served to the client
schemas/ # JSON schemas (agentplaybook.json, …)
scripts/ # Seed and build scripts
supabase/
migrations/ # Database migrations
tests/ # Vitest suites
open-next.config.ts
wrangler.jsonc
データベーススキーマ
- playbooks:中核エンティティ(公開範囲の列挙型(private、public、unlisted)を含む。エージェントのアイデンティティを定義するペルソナフィールドと、常時適用されるプロジェクトルールを記述する
instructionsを備えています) - secrets:ボールト。AES-256-GCM の暗号文、シークレットごとのホスト許可リスト、表示フラグ、ローテーション、使用量の記録を保持します
- audit_logs:フェデレーション MCP 呼び出しとシークレットボールト操作(
secret.*)の、所有者が読み取り可能な監査ログです。値、URL 全体、キーは保持しません。mcp_proxy_audit_logsから名称が変更されました。 - skills:スキル定義と、任意の SKILL.md コンテンツ
- skill_attachments:スキル用のセキュアな添付ファイルストレージ
- mcp_servers:MCP ツールとリソース
- playbook_runs:再利用可能なプレイブックの分離実行
- canvas:バージョン管理された Markdown 作業ドキュメント
- memories:キーと値を保存するメモリストア
- api_keys:RBAC ロールを持つ、プレイブック単位の API キー
- user_api_keys:ユーザー単位の API キー
- playbook_collaborators:承認済みの人間の編集者メンバーシップと、ハッシュ化された使い捨て招待
- profiles:公開ユーザープロフィールデータ
- playbook_stars:保存済みのプレイブックのお気に入り
意図的に2つ目の認証情報ストアは設けていません。フェデレーション MCP サーバーと OpenAPI サーバーは、以前は mcp_server_secrets に独自の暗号化シークレットを保存していました。このテーブルは削除されました(supabase/migrations/20260820_drop_mcp_server_secrets.sql)。2つ目のストアがあると、盗まれる価値が最も高い認証情報が、ボールトに備わっているローテーション、有効期限、使用量の記録、監査ログのない、より安全性の低い場所に置かれるためです。現在は transport_config.auth.token_secret でボールトのエントリを指定します。
行レベルセキュリティに関する注意
上記のテーブルでは RLS が有効になっていますが、実行時の主要な認可メカニズムではありません。ほぼすべての API ルートはサービスロールキーを使ってクエリを実行し、RLS をバイパスします。認可はアプリケーションコード(src/app/api/_shared/guards.ts)で実施されます。
一方、匿名キーで公開プレイブックを読み取る一部のエンドポイントでは、RLS が重要な役割を担っています。具体的には、MCP マニフェスト(/api/mcp/:guid)、そのツールルート、公開スキル/MCP の一覧です。これらは supabase/migrations/20260107_permissions_refactor.sql の匿名 SELECT ポリシーに依存しています。これらのポリシーを削除または無効にすると、制限が緩和されるのではなく、エンドポイントが動作しなくなります。
auth.uid() に対して記述されたポリシーは、現在機能していません。JWT を持つクライアントがテーブルクエリを実行していないためです。ブラウザーは /api/* 経由でのみ通信し、Postgres に直接アクセスすることはありません。
セキュリティ
脆弱性は非公開で報告してください。SECURITY.md を参照してください。セキュリティ上の欠陥について、公開の Issue を作成しないでください。
NIS2 / 418/2024. 77. § の申告に対応するセルフホスト運用者は、インシデント対応手順書(HU)から作業を開始できます。リリースの SBOM と cosign verify については、docs/security/supply-chain.md を参照してください。
コントリビューション
-
リポジトリをフォークします
-
機能ブランチを作成します(
git checkout -b feature/amazing-feature) -
CI と同じ順序で、同じチェックを実行します。
npm run lint # eslint npm run test:all # vitest + the CLI suite npm run prebuild && npx tsc --noEmit npm run audit:production npm run build -
変更をコミットし、プルリクエストを作成します
初めて PR を作成する前に、知っておくべきことが 2 つあります。
- ロックファイルは npm 11 で作成してください。 npm 10 が生成する
package-lock.jsonはnpm ciに拒否されるため、変更の検査に進む前に CI のインストールが失敗します。npx npm@11 installは Node 20 でも動作します。 - 警告は許容されますが、エラーは許容されません。
npm run lintでは現在、既知のreact-hooksとナビゲーションに関する警告が報告されており、これらは Issue で追跡されています。クリーンな実行とは、出力がないことではなく、エラーがゼロであることを意味します。
ライセンス
MIT — LICENSE を参照してください。
商用を含め、どのような用途にも使用できます。コピーまたは実質的な部分に、著作権表示と許諾表示を残してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。