Payload MCP について
Payload MCPは、Payload CMSプロジェクトを開発する人向けのローカルMCPサーバーです。コード生成、検証、プロジェクトのひな形作成、コードベースのクエリに対応します。開発中のため、APIやコマンドは変更される場合があります。
主な機能
- 01Payload CMSのひな形コード生成
- 02コンポーネントと設定の検証
- 03プロジェクト作成と機能追加
- 04コードベースのクエリと分析
活用シーン
- 01コレクション、フック、エンドポイントの作成
- 02開発中のコンポーネント検証
- 03Payload CMSプロジェクトのひな形作成
- 04Payloadクエリの提案取得
MCP 対応
ローカルMCPサーバーとして、Cursorを含むMCP対応AIアシスタントにPayload CMSの生成、検証、ひな形作成、クエリ用ツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Payload MCP
⚠️ 開発中
このリポジトリは現在開発中で、まだ機能がすべて揃っていません。API、設定、CLI コマンドは予告なく変更される場合があります。ご自身の責任でご利用ください!
Payload CMS 向けの強力な Model Context Protocol(MCP)サーバーです。AI アシスタントが Payload CMS プロジェクトの開発、管理、拡張を支援できるようにします。
概要
Payload MCP(Model Context Protocol)は、AI アシスタントを Payload CMS の開発ワークフローに接続するための専用サーバーです。コードの生成、コンポーネントの検証、プロジェクトのスキャフォールディング、専用クエリの実行などを行うツールを提供します。これらのツールは、標準化された Model Context Protocol を通じて AI エージェントから利用できます。
このプロジェクトでは、ローカルで実行して、Payload CMS の開発に特化した機能を AI アシスタントに提供する MCP サーバーを実装しています。これにより、次のことが簡単に行えます。
- コレクション、フィールド、アクセス制御などのボイラープレートコードを生成する
- Payload CMS のコンポーネントを検証する
- 新しい Payload CMS プロジェクトをスキャフォールディングする
- 既存のコードベースをクエリして分析する
機能
- コード生成:適切な構造とベストプラクティスに沿って、コレクション、フィールド、設定ファイル、アクセス制御ルール、フック、エンドポイント、プラグイン、ブロック、マイグレーション、コンポーネントを作成します
- 検証:Payload CMS のコンポーネントがベストプラクティスに従い、正しく動作することを検証します
- スキャフォールディング:適切なファイル構成と依存関係を備えた新しい Payload CMS プロジェクトをセットアップします
- 専用クエリ:Payload CMS のコードベースに関する推奨事項と分析情報を提供します
- MCP 準拠:Model Context Protocol に対応するすべての AI アシスタントで動作します
- ローカル優先:プライバシーとセキュリティを保護するため、すべてローカルマシン上で実行します
はじめに
前提条件
- Node.js(v16 以降)
- npm または Bun(推奨)
インストール
-
パッケージをインストールします。
npm install -g @ngyngcphu/payload-mcp -
mcp.jsonに次の内容を追加して、MCP クライアント(Cursor など)を設定します。{ "mcpServers": { "@ngyngcphu/payload-mcp": { "command": "npx", "args": ["@ngyngcphu/payload-mcp"] } } } -
MCP クライアントで必要になったときに、サーバーが自動的に起動します。デフォルトのポートは 3001 です。
手動起動(任意)
サーバーを手動で起動する場合:
npx @ngyngcphu/payload-mcp
ツールリファレンス
Payload MCP は、4 つのカテゴリのツールを提供します。
ジェネレーターツール
Payload CMS のコンポーネントのボイラープレートコードを生成します。
| ツール | 説明 |
|---|---|
collection | フィールド、フック、アクセス制御を備えた Payload コレクションを生成します |
field | コレクション用のフィールド設定を生成します |
config | Payload の設定ファイルを生成します |
access-control | アクセス制御関数を生成します |
hook | コレクション用の before/after フックを生成します |
endpoint | カスタム API エンドポイントを生成します |
plugin | Payload プラグインを生成します |
block | Payload のブロックフィールド型用のブロックを生成します |
migration | データベースマイグレーションを生成します |
component | 管理パネル用の React コンポーネントを生成します |
クエリツール
Payload CMS のコードベースをクエリして分析するためのツールです。
| ツール | 説明 |
|---|---|
validate_query | Payload クエリを検証してフォーマットします |
get_query_suggestions | コレクションに基づいて Payload クエリの候補を取得します |
format_response | Payload クエリのレスポンスをフォーマットします |
スキャフォールドツール
新しい Payload CMS プロジェクトをスキャフォールディングするためのツールです。
| ツール | 説明 |
|---|---|
create_project | 推奨される構成で新しい Payload CMS プロジェクトを作成します |
add_feature | 既存の Payload CMS プロジェクトに機能を追加します |
setup_authentication | Payload CMS プロジェクトの認証を設定します |
setup_deployment | さまざまなプラットフォーム向けにデプロイ設定を行います |
バリデーター ツール
Payload CMS コンポーネントを検証するツールです。
| ツール | 説明 |
|---|---|
validate_collection | コレクションの設定を検証します |
validate_field | フィールドの設定を検証します |
validate_access_control | アクセス制御ルールを検証します |
validate_hook | フックの実装を検証します |
使用例
コレクションの生成
// Example: Generate a simple blog post collection
const options = {
name: "Post",
slug: "posts",
fields: [
{ name: "title", type: "text", required: true },
{ name: "content", type: "richText" },
{ name: "status", type: "select", options: ["draft", "published"] }
],
timestamps: true,
auth: false
};
// The AI would use the generate_template tool with these options
// Result would be a complete collection configuration file
クエリの検証
// Example: Validate a query for the posts collection
const query = {
where: {
status: {
equals: "published"
},
createdAt: {
greater_than: "2023-01-01"
}
},
sort: "-createdAt",
limit: 10
};
// The AI would use the validate_query tool with this query
// Result would indicate if the query is valid and properly formatted
新しいプロジェクトのスキャフォールディング
// Example: Create a new Payload CMS project for a blog
const options = {
name: "My Blog",
collections: ["posts", "categories", "authors"],
authentication: true,
admin: {
customization: true
},
database: "mongodb"
};
// The AI would use the create_project tool with these options
// Result would be instructions for setting up a complete project
設定
Payload MCP は、次のファイルを変更して設定できます。
package.json:name、version、その他のメタデータを更新しますindex.ts:必要に応じてデフォルトのポート(3001)を変更しますserver/index.ts:MCP サーバー名などのサーバーオプションを設定します
ワークフローの例
Payload MCP を使用する一般的なワークフローは、次のようになります。
-
MCP サーバーを起動する:
npm start -
AI アシスタントを接続する:
http://localhost:3001/の MCP サーバーを使用するよう、AI アシスタントを設定します -
生成をリクエストする: Payload CMS プロジェクト用の新しいコレクションを生成するよう、AI アシスタントに依頼します
-
確認して統合する: 生成されたコードを確認し、Payload CMS プロジェクトに統合します
-
検証する: 検証ツールを使用して、実装が正しいことを確認します
-
反復する: AI アシスタントと MCP ツールを活用しながら、開発を続けます
ヒントとベストプラクティス
- スキャフォールディングから始める:新しいプロジェクトでは、スキャフォールディングツールを使用して、適切に構成されたプロジェクトをセットアップします
- 頻繁に検証する:検証ツールを使用して、開発プロセスの早い段階で問題を見つけます
- ツールを組み合わせる:複雑なタスクの多くは複数のツールを必要とします。たとえば、コレクションを生成してから検証します
- 生成されたコードを確認する:プロジェクトに統合する前に、必ず生成されたコードを確認します
- サーバーを起動したままにする:AI アシスタントがアクセスできるよう、開発セッション中は MCP サーバーを起動したままにします
- Git を使用する:変更を簡単に追跡し、必要に応じて元に戻せるよう、こまめにコミットします
今後の予定
- より多くの Payload CMS コンポーネントタイプに対応する追加のジェネレーター
- 人気の IDE との統合
- GraphQL クエリの生成と検証への対応
- 大規模な Payload CMS プロジェクト向けのパフォーマンス最適化
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
サポート
問題が発生した場合や質問がある場合は、GitHub リポジトリにイシューを登録してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。