Umbraco について
Umbraco は、Management API を通じて Umbraco CMS のバックオフィスタスクを実行する MCP サーバーです。コンテンツ、メディア、設定、メンバーなどのツールを公開し、アクセス範囲は API ユーザーの権限で決まります。
主な機能
- 01ドキュメントの読み取りと管理
- 02ドキュメントタイプとメディアタイプの管理
- 03メディアとごみ箱項目の管理
- 04言語と辞書項目の操作
- 05ログ検索と保存済み検索の管理
- 06除外リストによるツール制御
活用シーン
- 01CMSドキュメントの検索・更新・公開
- 02メディアアセットの作成と整理
- 03CMSの問題調査でログを確認
- 04APIユーザー権限によるエージェントアクセスの制限
MCP 対応
この MCP サーバーは、Umbraco Management API の操作を MCP クライアント向けのツールとして公開します。利用可能な操作は Umbraco API ユーザーの権限で決まり、指定したツールを一覧から除外することもできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
THIS REPO HAS NOW MOVED - https://github.com/umbraco/Umbraco-Cms-MCP-Dev
Umbraco MCP 
Umbraco CMS 用の MCP(Model Context Protocol)サーバーです。 Management API の主要な機能にアクセスでき、エージェントを使ってバックオフィスのタスクを実行できます。
はじめに
MCP サーバーは Umbraco API ユーザーを使用して Umbraco Management API にアクセスします。そのため、AI が利用できるツールは、通常の Umbraco ユーザー権限で制御できます。
はじめ方
Umbraco
MCP から Management API にアクセスするには、API ユーザーを作成する必要があります。 作成方法がわからない場合は、Umbraco のドキュメントに従ってください。
このユーザーに付与するアクセスレベルによって、エージェントが実行できる操作が決まります。
インストール
まず、適切な権限を持つ Umbraco API ユーザーを作成します。手順については、Umbraco のドキュメントをご覧ください。
Claude Desktop
Claude で Umbraco MCP を使い始めるには、まず Claude.ai デスクトップアプリをダウンロードしてインストールします。
Umbraco インスタンス(現在はバージョン 15.latest で動作確認済み)を起動し、新しい API ユーザーの認証情報を作成します。作成方法については、Umbraco のドキュメントをご覧ください。
必要な情報を用意したら、Claude デスクトップアプリに戻り、「設定」>「開発者」>「設定を編集」に進みます。任意のテキストエディターで json ファイルを開き、以下を追加します。UMBRACO_CLIENT_ID、UMBRACO_CLIENT_SECRET、UMBRACO_BASE_URL をローカル接続情報に置き換えてください。NODE_TLS_REJECT_UNAUTHORIZED 環境変数フラグを追加することで、自己署名証明書を使用して Claude が MCP に接続できるようになります。
{
"mcpServers": {
"umbraco-mcp": {
"command": "npx",
"args": ["@umbraco-mcp/umbraco-mcp-cms@alpha"],
"env": {
"NODE_TLS_REJECT_UNAUTHORIZED": "0",
"UMBRACO_CLIENT_ID": "umbraco-back-office-mcp",
"UMBRACO_CLIENT_SECRET": "1234567890",
"UMBRACO_BASE_URL": "https://localhost:44391"
}
}
}
}
Claude を再起動し、ホームページのドキュメントタイプの GUID を教えてください のような簡単なプロンプトを試してください。Umbraco MCP が順に処理を進める際に、各ツールの使用を許可する必要があります。Umbraco MCP で接続エラーが発生した場合は、ボタンをクリックしてログを開き、mcp-server-umbraco-mcp.log ファイルを確認して、問題の解決に役立つ追加情報を参照してください。
メモ
プロンプトを実行するのに十分な大きさのコンテキストウィンドウを確保するには、Claude.ai の有料版へのアップグレードが必要になる場合があります。
Claude Code
Claude Code CLI を使って Umbraco MCP サーバーを追加します。
claude mcp add umbraco-mcp npx @umbraco-mcp/umbraco-mcp-cms@alpha
または、環境変数とスコープを設定します。
# Install Claude Code globally (if not already installed)
npm install -g @anthropic-ai/claude-code
# Add with environment variables
claude mcp add umbraco-mcp --env UMBRACO_CLIENT_ID="your-id" --env UMBRACO_CLIENT_SECRET="your-secret" --env UMBRACO_BASE_URL="https://your-domain.com" -- npx @umbraco-mcp/umbraco-mcp-cms@alpha
# Verify installation
claude mcp list
これにより、既存のプロジェクトの claude.json 設定ファイルに umbraco-mcp が追加されます。
VS Code
#### ボタンをクリックしてインストール: [要件: GitHub Copilot Chat 拡張機能がインストールされた VS Code 1.101 以降。
または手動でインストール: MCP のインストールガイドに従い、この設定を使用してください。
{
"servers": {
"umbraco-mcp": {
"type": "stdio",
"command": "npx",
"args": ["@umbraco-mcp/umbraco-mcp-cms@alpha"],
"env": {
"UMBRACO_CLIENT_ID": "<API user name>",
"UMBRACO_CLIENT_SECRET": "<API client secret>",
"UMBRACO_BASE_URL": "https://<domain>",
"EXCLUDE_MANAGEMENT_TOOLS": "<toolname>,<toolname>"
}
}
}
}
Cursor
または手動でインストール:
Cursor Settings -> Tools & Integrations -> Add new MCP Server に移動します。
設定ファイルに以下を追加し、環境変数を更新してください。
{
"mcpServers": {
"umbraco-mcp": {
"command": "npx",
"args": ["@umbraco-mcp/umbraco-mcp-cms@alpha"],
"env": {
"UMBRACO_CLIENT_ID": "<API user name>",
"UMBRACO_CLIENT_SECRET": "<API client secret>",
"UMBRACO_BASE_URL": "https://<domain>",
"EXCLUDE_MANAGEMENT_TOOLS": "<toolname>,<toolname>"
}
}
}
}
設定環境変数
UMBRACO_CLIENT_ID
Umbraco API ユーザー名
UMBRACO_CLIENT_SECRET
Umbraco API ユーザーのクライアントシークレット
UMBRACO_BASE_URL
接続するサイトの URL です。スキームとドメインのみが必要です。例:https://example.com
EXCLUDE_MANAGEMENT_TOOLS
使用可能なツールの一覧から除外するツールを名前で指定できます。一部のエージェントは、多数のツールを処理できないため便利です。以下に記載されているツールをカンマ区切りで指定します。
Umbraco Management API ツール
ツール一覧を表示
カルチャ
get-culture - Umbraco で利用可能なすべてのカルチャを取得します
データ型
get-data-type-search - データ型を検索します
get-data-type - ID で特定のデータ型を取得します
get-data-type-references - データ型への参照を取得します
is-used-data-type - データ型が使用中かどうかを確認します
get-data-type-root - ルートレベルのデータ型を取得します
get-data-type-children - 子データ型を取得します
get-data-type-ancestors - 祖先データ型を取得します
get-all-data-types - すべてのデータ型を取得します
delete-data-type - データ型を削除します
create-data-type - 新しいデータ型を作成します
update-data-type - 既存のデータ型を更新します
copy-data-type - データ型をコピーします
move-data-type - データ型を別の場所に移動します
create-data-type-folder - データ型を整理するフォルダーを作成します
delete-data-type-folder - データ型フォルダーを削除します
get-data-type-folder - データ型フォルダーの情報を取得します
update-data-type-folder - データ型フォルダーの詳細を更新します
辞書
get-dictionary-search - 辞書項目を検索します
get-dictionary-by-key - キーで辞書項目を取得します
create-dictionary - 新しい辞書項目を作成します
update-dictionary - 辞書項目を更新します
delete-dictionary - 辞書項目を削除します
ドキュメント
`get-document-by-id` - ID でドキュメントを取得 `get-document-publish` - ドキュメントの公開ステータスを取得 `get-document-configuration` - ドキュメントの設定を取得 `copy-document` - ドキュメントをコピー `create-document` - 新しいドキュメントを作成 `post-document-public-access` - ドキュメントの公開アクセスを設定 `delete-document` - ドキュメントを削除 `delete-document-public-access` - ドキュメントの公開アクセスを削除 `get-document-urls` - ドキュメントの URL を取得 `get-document-domains` - ドキュメントのドメインを取得 `get-document-audit-log` - ドキュメントの監査ログを取得 `get-document-public-access` - ドキュメントの公開アクセス設定を取得 `move-document` - ドキュメントを移動 `move-to-recycle-bin` - ドキュメントをごみ箱に移動 `get-document-notifications` - ドキュメントの通知を取得 `publish-document` - ドキュメントを公開 `publish-document-with-descendants` - ドキュメントとその子孫を公開 `sort-document` - ドキュメントの順序を並べ替え `unpublish-document` - ドキュメントの公開を解除 `update-document` - ドキュメントを更新 `put-document-domains` - ドキュメントのドメインを更新 `put-document-notifications` - ドキュメントの通知を更新 `put-document-public-access` - ドキュメントの公開アクセスを更新 `delete-from-recycle-bin` - ごみ箱からドキュメントを削除 `empty-recycle-bin` - ごみ箱を空にする `get-recycle-bin-root` - ごみ箱のルート項目を取得 `get-recycle-bin-children` - ごみ箱の子項目を取得 `search-document` - ドキュメントを検索 `validate-document` - ドキュメントを検証 `get-document-root` - ルートドキュメントを取得 `get-document-children` - 子ドキュメントを取得 `get-document-ancestors` - ドキュメントの祖先を取得
ドキュメントブループリント
get-blueprint - ドキュメントブループリントを取得
delete-blueprint - ドキュメントブループリントを削除
update-blueprint - ドキュメントブループリントを更新
create-blueprint - 新しいドキュメントブループリントを作成
get-blueprint-ancestors - ブループリントの祖先を取得
get-blueprint-children - ブループリントの子項目を取得
get-blueprint-root - ルートブループリントを取得
ドキュメントタイプ
get-document-type - ドキュメントタイプを取得
get-document-type-configuration - ドキュメントタイプの設定を取得
get-document-type-blueprint - ドキュメントタイプのブループリントを取得
get-document-type-by-id-array - ID でドキュメントタイプを取得
get-document-type-available-compositions - 利用可能なコンポジションを取得
get-document-type-composition-references - コンポジションの参照を取得
update-document-type - ドキュメントタイプを更新
copy-document-type - ドキュメントタイプをコピー
move-document-type - ドキュメントタイプを移動
create-document-type - 新しいドキュメントタイプを作成
delete-document-type - ドキュメントタイプを削除
create-element-type - 要素タイプを作成
get-icons - 利用可能なアイコンを取得
get-document-type-allowed-children - 許可された子タイプを取得
get-all-document-types - すべてのドキュメントタイプを取得
create-document-type-folder - フォルダーを作成
delete-document-type-folder - フォルダーを削除
get-document-type-folder - フォルダー情報を取得
update-document-type-folder - フォルダーの詳細を更新
get-document-type-root - ルートドキュメントタイプを取得
get-document-type-ancestors - ドキュメントタイプの祖先を取得
get-document-type-children - ドキュメントタイプの子項目を取得
言語
get-language-items - すべての言語を取得
get-default-language - デフォルトの言語を取得
create-language - 新しい言語を作成
update-language - 言語を更新
delete-language - 言語を削除
get-language-by-iso-code - ISO コードで言語を取得
ログビューアー
`get-log-viewer-saved-search-by-name` - 名前で保存済み検索を取得 `get-log-viewer-level-count` - ログレベルの件数を取得 `post-log-viewer-saved-search` - ログ検索を保存 `delete-log-viewer-saved-search-by-name` - 保存済み検索を削除 `get-log-viewer` - ログを取得 `get-log-viewer-level` - ログレベルを取得 `get-log-viewer-search` - ログを検索 `get-log-viewer-validate-logs` - ログを検証 `get-log-viewer-message-template` - メッセージテンプレートを取得
メディア
get-media-by-id - ID でメディアを取得
get-media-ancestors - メディアの祖先を取得
get-media-children - メディアの子要素を取得
get-media-root - ルートのメディア項目を取得
create-media - 新しいメディアを作成
delete-media - メディアを削除
update-media - メディアを更新
get-media-configuration - メディアの設定を取得
get-media-urls - メディアの URL を取得
validate-media - メディアを検証
sort-media - メディア項目を並べ替え
get-media-by-id-array - ID でメディアを取得
move-media - メディアを移動
get-media-audit-log - メディアの監査ログを取得
get-media-recycle-bin-root - ごみ箱のルートを取得
get-media-recycle-bin-children - ごみ箱の子要素を取得
empty-recycle-bin - ごみ箱を空にする
restore-from-recycle-bin - ごみ箱から復元
move-media-to-recycle-bin - ごみ箱に移動
delete-from-recycle-bin - ごみ箱から削除
メディアタイプ
get-media-type-configuration - メディアタイプの設定を取得
get-media-type-by-id - ID でメディアタイプを取得
get-media-type-by-ids - ID でメディアタイプを取得
get-allowed - 使用可能なメディアタイプを取得
get-media-type-allowed-at-root - ルートで使用可能なタイプを取得
get-media-type-allowed-children - 使用可能な子タイプを取得
get-media-type-composition-references - コンポジション参照を取得
get-root - ルートのメディアタイプを取得
get-children - 子メディアタイプを取得
get-ancestors - 祖先のメディアタイプを取得
get-folder - フォルダー情報を取得
create-folder - 新しいフォルダーを作成
delete-folder - フォルダーを削除
update-folder - フォルダーの詳細を更新
create-media-type - 新しいメディアタイプを作成
copy-media-type - メディアタイプをコピー
get-media-type-available-compositions - 使用可能なコンポジションを取得
update-media-type - メディアタイプを更新
move-media-type - メディアタイプを移動
delete-media-type - メディアタイプを削除
メンバー
get-member - ID でメンバーを取得
create-member - 新しいメンバーを作成
delete-member - メンバーを削除
update-member - メンバーを更新
find-member - メンバーを検索
メンバーグループ
get-member-group - メンバーグループを取得
get-member-group-by-id-array - ID でメンバーグループを取得
create-member-group - 新しいメンバーグループを作成
update-member-group - メンバーグループを更新
delete-member-group - メンバーグループを削除
get-member-group-root - ルートのメンバーグループを取得
メンバータイプ
get-member-type-by-id - ID でメンバータイプを取得
create-member-type - 新しいメンバータイプを作成
get-member-type-by-id-array - ID でメンバータイプを取得
delete-member-type - メンバータイプを削除
update-member-type - メンバータイプを更新
copy-member-type - メンバータイプをコピー
get-member-type-available-compositions - 使用可能なコンポジションを取得
get-member-type-composition-references - コンポジション参照を取得
get-member-type-configuration - メンバータイプの設定を取得
get-member-type-root - ルートのメンバータイプを取得
プロパティタイプ
get-property-type - ID でプロパティタイプを取得
get-property-type-all-property-type-groups - すべてのプロパティタイプグループを取得
create-property-type - 新しいプロパティタイプを作成
update-property-type - プロパティタイプを更新
delete-property-type - プロパティタイプを削除
リダイレクト
`get-all-redirects` - すべてのリダイレクトを取得 `get-redirect-by-id` - ID でリダイレクトを取得 `delete-redirect` - リダイレクトを削除 `get-redirect-status` - リダイレクトのステータスを取得 `update-redirect-status` - リダイレクトのステータスを更新
サーバー
get-server-status - サーバーのステータスを取得
get-server-log-file - サーバーのログファイルを取得
tour-status - ツアーのステータスを取得
upgrade-status - アップグレードのステータスを取得
テンプレート
get-template-search - 名前でテンプレートを検索
get-template - ID でテンプレートを取得
get-templates-by-id-array - ID でテンプレートを取得
create-template - 新しいテンプレートを作成
update-template - ID でテンプレートを更新
delete-template - ID でテンプレートを削除
execute-template-query - テンプレートクエリを実行し、生成された LINQ コードを返す
get-template-query-settings - テンプレートクエリのスキーマを取得(ドキュメントタイプ、プロパティ、演算子)
get-template-root - ルートテンプレート項目を取得
get-template-children - 親 ID で子テンプレートまたはテンプレートフォルダーを取得
get-template-ancestors - ID でテンプレートの祖先を取得
一時ファイル
create-temporary-file - 一時ファイルを作成
get-temporary-file - 一時ファイルを取得
delete-temporary-file - 一時ファイルを削除
get-temporary-file-configuration - 一時ファイルの設定を取得
ユーザーグループ
get-user-group - ユーザーグループを取得
get-user-group-by-id-array - ID でユーザーグループを取得
get-user-groups - すべてのユーザーグループを取得
get-filter-user-group - ユーザーグループをフィルタリング
create-user-group - 新しいユーザーグループを作成
update-user-group - ユーザーグループを更新
delete-user-group - ユーザーグループを削除
delete-user-groups - 複数のユーザーグループを削除
Webhook
get-webhook-by-id - ID で Webhook を取得
get-webhook-by-id-array - ID で Webhook を取得
delete-webhook - Webhook を削除
update-webhook - Webhook を更新
get-webhook-events - Webhook イベントを取得
get-all-webhook-logs - すべての Webhook ログを取得
create-webhook - 新しい Webhook を作成
AI ツールを使ったコントリビューション
このプロジェクトは、AI コーディングアシスタントを使った開発に最適化されています。確立されたパターンやテスト基準との一貫性を保つため、一般的な AI ツール向けの指示ファイルを用意しています。
rulesync の使用
このプロジェクトには、19 以上の AI 開発ツール向けの指示ファイルを自動生成できる rulesync 設定ファイルが含まれています。使用する AI ツールに合わせた設定ファイルを生成します。
# Generate only for Claude Code
npx rulesync generate --claudecode
# Generate only for Cursor
npx rulesync generate --cursor
# Generate only for Vs Code Copilot
npx rulesync generate --copilot
その他の AI ツール
rulesync は、GitHub Copilot、Cline、Aider など、19 以上の AI 開発ツールをサポートしています。サポート対象ツールの完全な一覧は、rulesync リポジトリを確認してください。
指示ファイルには、以下の内容が含まれています。
- MCP 開発のパターンと規約
- TypeScript 実装ガイドライン
- ビルダーとヘルパーを使った包括的なテスト基準
- プロジェクト固有のコンテキストとアーキテクチャ
- Umbraco Management API との API 統合パターン
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
