Nomacms Mcp Server について
Nomacms Mcp Serverは、CursorやClaude CodeなどのAIエージェントをNomaCMSプロジェクトに接続します。プロジェクト構成、コンテンツ、アセット、Webhookを操作でき、一括処理やバージョン履歴にも対応します。
主な機能
- 01プロジェクト、コレクション、フィールドの管理
- 02エントリーの作成、検索、更新、公開
- 03エントリーとアセットの一括操作
- 04アセットとWebhookの管理
- 05エントリーのバージョン確認とスナップショット復元
- 06フィールド、コレクション、クエリのリファレンス参照
活用シーン
- 01CMSコレクションとフィールド構成の管理
- 02ローカライズされたコンテンツエントリーの作成や更新
- 03アセットのアップロードとWebhook配信記録の確認
- 04エントリーを以前のバージョンに復元
MCP 対応
NomaCMSプロジェクトを操作する39種類のツールと、フィールドタイプ、コレクション、クエリに関する3種類のリファレンスリソースを提供します。各サーバー設定は1つのプロジェクトに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @nomacms/mcp-serverNOMA_API_KEYシークレットNomaCMS personal access token from User Settings → API KeysNOMA_PROJECT_IDNomaCMS project UUID from Project Settings → API Accessローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
39掲載時のツール一覧 · 3 週間前に更新
このツールにパラメーターはありません。
詳細
NomaCMS MCP サーバー
Cursor や Claude Code などの AI エージェントを NomaCMS プロジェクトに接続する MCP(Model Context Protocol)サーバーです。自然言語を使って、コレクション、フィールド、コンテンツエントリー、アセット、Webhook をプログラムから管理できます。
設定
NOMA_API_KEY:ユーザー設定 → API キーで取得できる API キーです。API キーの権限をご覧ください。NOMA_PROJECT_ID:プロジェクトの UUID です。プロジェクトのホームページ、または プロジェクト設定 → API アクセスで確認できます。
Cursor での使用方法
Cursor の MCP 設定(~/.cursor/mcp.json)に以下を追加します。
{
"mcpServers": {
"nomacms": {
"command": "npx",
"args": ["-y", "@nomacms/mcp-server"],
"env": {
"NOMA_API_KEY": "your-api-key",
"NOMA_PROJECT_ID": "your-project-uuid"
}
}
}
}
Claude Code での使用方法
Claude Code CLI を使って MCP サーバーを追加します。
claude mcp add nomacms \
-e NOMA_API_KEY=your-api-key \
-e NOMA_PROJECT_ID=your-project-uuid \
-- npx -y @nomacms/mcp-server
利用可能なツール(39)
プロジェクト
get_project— プロジェクト情報を取得します(default_locale、localesなど)add_project_locale— プロジェクトにロケールコードを追加します(admin が必要)set_default_project_locale— デフォルトのロケールを設定します(admin が必要)
ロケールの削除機能は、意図的にここでは公開していません。ロケールを削除する必要がある場合は、NomaCMS ダッシュボードの プロジェクト設定 → ローカライズを使用してください。
コレクション
list_collections— すべてのコレクションを一覧表示しますget_collection— フィールドスキーマ全体を含むコレクションを取得しますcreate_collection— コレクションを作成します(フィールドの一括作成は任意)update_collection— コレクションの名前とスラッグを更新しますreorder_collections— コレクションの順序を変更します
フィールド
create_field— コレクションにフィールドを追加しますupdate_field— フィールドを更新しますreorder_fields— コレクション内のフィールドの順序を変更します
コンテンツエントリー
list_entries— 高度なフィルタリング(13 個の演算子を使うwhere、OR グループ、リレーションフィルタリング)、並べ替え、ページネーション、件数、先頭のエントリーを指定してエントリーを一覧表示しますget_entry— 単一のコンテンツエントリーを取得しますcreate_entry— コンテンツエントリーを作成しますupdate_entry— コンテンツエントリーを更新しますpatch_entry— エントリーを部分的に更新します(HTTP PATCH。送信したフィールドのみをマージします)publish_entry— 下書きを新しい不変のバージョンとして公開します(update)unpublish_entry— 公開中のポインターをクリアします。バージョンは保持されます(update)delete_entry— コンテンツエントリーを論理削除します(ゴミ箱に移動します)bulk_create_entries— 複数のエントリーをアトミックに作成しますbulk_update_entries— UUID を指定して複数のエントリーをアトミックに更新しますbulk_delete_entries— UUID を指定して複数のエントリーをアトミックに削除しますlink_entry_translation— 異なるロケールの 2 つのエントリーを同じ翻訳グループにリンクします(POST …/link-translation。update の権限が必要)list_entry_versions— エントリーのバージョン履歴を一覧表示しますget_entry_version— バージョン番号を指定して 1 つのバージョンを取得します(スナップショットのペイロードを含みます)revert_entry_version— 過去のスナップショットから下書きを復元して公開します(update)update_entry_version_label— バージョンのラベルや説明を編集します。スナップショットは変更されません(update)
コンテンツ API の形式: 各エントリーには、uuid、locale、published_at、およびカスタムフィールドの値を含む fields があります。リッチテキストの値は、書き込み時にはマークダウン文字列です。読み取り時の形式は、フィールドの editor.outputFormat(markdown または html)に応じて、生のマークダウンまたはレンダリング済み HTML になります。リレーションフィールドは、読み取り時にネストされたエントリーオブジェクト(1 対多の場合は配列)を返します。書き込み時には、関連エントリーの UUID または 数値 ID のみを送信してください(以前の get_entry で取得したネストされたオブジェクト全体は送信しないでください)。get_entry は、translation_locale、exclude、timestamps、state のクエリパラメーターに対応しています。
アセット URL: API は、安定したリンクとして url、thumbnail_url、original_url を返します(任意で ?variant=thumbnail または ?variant=original を指定できます)。
アセット
list_assets— アセットをページネーション付きで一覧表示しますget_asset— UUID またはファイル名でアセットを取得しますupload_asset— ファイルをアセットとしてアップロードしますbulk_upload_assets— 複数のファイルをアトミックにアップロードしますbulk_update_asset_metadata— 複数のアセットのメタデータをアトミックに更新しますdelete_asset— アセットを削除します
Webhook
list_webhooks— プロジェクトのすべての Webhook を一覧表示しますget_webhook— UUID で Webhook を取得しますcreate_webhook— コンテンツおよび認証イベント用の Webhook を作成します(name、url、events、sources;description、secret、payload、status、collection_idsは任意)update_webhook— UUID で Webhook を更新します(作成時と同じフィールド)delete_webhook— UUID で Webhook を削除しますlist_webhook_logs— Webhook の配信ログを一覧表示します(uuid;paginate、pageは任意)
リソース
サーバーは、AI エージェントがコンテキストとして参照できる3つのリファレンスリソースを公開します。
- フィールドタイプのリファレンス(
nomacms://field-types)— 16種類すべてのフィールドタイプ、そのオプション、検証、一般的なパターンを網羅したリファレンスです。 - コレクションガイド(
nomacms://collections-guide)— コレクション、シングルトン、予約済みスラッグ、およびベストプラクティスに関するガイドです。 - クエリリファレンス(
nomacms://query-reference)— コンテンツクエリの完全なドキュメントです。13種類の演算子を使ったwhereフィルター、OR グループ、リレーションのフィルタリング、並べ替え、ページネーション、使用例を網羅しています。
API キーの権限
使用するツールに応じた適切な権限が API キーに必要です。
| 権限 | ツール |
|---|---|
read | コレクション、エントリー、アセット、Webhook の一覧表示/取得;Webhook ログ |
create | エントリーの作成、アセットのアップロード、Webhook の作成 |
update | エントリーの更新、link_entry_translation、アセットメタデータの更新、Webhook の更新 |
delete | エントリー、アセット、Webhook の削除 |
admin | コレクションとフィールドの作成/更新/並べ替え;デフォルトの プロジェクトロケール の追加/設定(MCP ではロケールの削除はできません) |
NomaCMS ダッシュボードの ユーザー設定 → API キー からキーを作成します。このサーバーの設定時に、プロジェクトのホームページまたは プロジェクト設定 → API アクセス から プロジェクト ID をコピーしてください。
複数のプロジェクトの使用
各 MCP エントリーは、1つの NomaCMS プロジェクトに接続します。複数のプロジェクトを扱うには、MCP 設定に個別のエントリーを追加してください。
{
"mcpServers": {
"nomacms-blog": {
"command": "npx",
"args": ["-y", "@nomacms/mcp-server"],
"env": {
"NOMA_API_KEY": "blog-project-api-key",
"NOMA_PROJECT_ID": "blog-project-uuid"
}
},
"nomacms-store": {
"command": "npx",
"args": ["-y", "@nomacms/mcp-server"],
"env": {
"NOMA_API_KEY": "store-project-api-key",
"NOMA_PROJECT_ID": "store-project-uuid"
}
}
}
}
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。