🚀 Sitecore用モデルコンテキストプロトコルサーバー
このサーバーは、Sitecoreに関連する様々なAPIやサービスを提供し、開発や運用を支援します。

🚀 クイックスタート
このサーバーを使用することで、Sitecoreに関連する様々な操作を行うことができます。以下に、サポートされているツールや機能を紹介します。
✨ 主な機能
実装済みのツール
-
[x] GraphQL API
- [x]
introspection-grahpql-{schema}: GraphQLスキーマを返します。
- [x]
query-graphql-{schema}: GraphQLクエリを実行します。
-
[x] アイテムサービスAPI
- [x]
item-service-get-item: IDでアイテムを返します。
- [x]
item-service-get-item-children: IDでアイテムの子要素を返します。
- [x]
item-service-get-item-by-path: パスでアイテムを返します。
- [x]
item-service-create-item: テンプレートIDと親パスを指定してアイテムを作成します。
- [x]
item-service-edit-item: IDでアイテムを編集します。
- [x]
item-service-delete-item: IDでアイテムを削除します。
- [x]
item-service-search-items: アイテムを検索します。
- [x]
item-service-run-stored-query: 保存されたクエリを実行します。
- [x]
item-service-run-stored-search: 保存された検索を実行します。
- [x] 複合アイテムサービスAPI
- [x]
item-service-get-languages: インスタンス内のSitecore言語を返します。
- [x]
item-service-get-item-descendants: IDでアイテムの子孫要素を返します。
-
[ ] Sitecore Powershell
- [x]
get-powershell-documentation: すべてのSitecore PowerShellコマンドを説明するドキュメントを返します。
- [x]
run-powershell-script: PowerShellスクリプトを実行し、出力を返します。
- [ ] セキュリティ
- [x]
security-get-current-user: 現在のユーザーを返します。
- [x]
security-get-user-by-identity: 名前でユーザーを返します。
- [x]
security-get-user-by-filter: フィルターでユーザーを返します。
- [x]
security-new-domain: 新しいドメインを作成します。
- [x]
security-new-user: 新しいユーザーを作成します。
- [x]
security-new-role: 新しいロールを作成します。
- [x]
security-remove-domain: ドメインを削除します。
- [x]
security-remove-user: ユーザーを削除します。
- [x]
security-remove-role: ロールを削除します。
- [x]
security-get-domain: ドメインを返します。
- [x]
security-get-domain-by-name: 名前でドメインを返します。
- [x]
security-get-role-by-identity: 名前でロールを返します。
- [x]
security-get-role-by-filter: フィルターでロールを返します。
- [x]
security-get-role-member: ロールのメンバーを返します。
- [x]
security-enable-user: ユーザーを有効にします。
- [x]
security-disable-user: ユーザーを無効にします。
- [x]
security-set-user-password: ユーザーのパスワードを変更します。
- [x]
security-lock-item-by-id: IDでアイテムをロックします。
- [x]
security-unlock-item-by-id: IDでアイテムのロックを解除します。
- [x]
security-lock-item-by-path: パスでアイテムをロックします。
- [x]
security-unlock-item-by-path: パスでアイテムのロックを解除します。
- [x]
security-protect-item-by-id: IDでアイテムを保護します。
- [x]
security-protect-item-by-path: パスでアイテムを保護します。
- [x]
security-unprotect-item-by-id: IDでアイテムの保護を解除します。
- [x]
security-unprotect-item-by-path: パスでアイテムの保護を解除します。
- [x]
security-test-acccount: アカウントをテストします。
- [x]
security-unlock-user: ユーザーのロックを解除します。
- [ ] テストカバレッジには、誤ったパスワードでユーザーをログインさせる必要があります。
- [ ]
security-login-user: ユーザーをログインさせます。SPE issueによりブロックされています。
- [ ]
security-logout-user: ユーザーをログアウトさせます。SPE issueによりブロックされています。
- [ ]
security-export-user: ユーザーをエクスポートします。SPE issueによりブロックされています。
- [ ]
security-import-user: ユーザーをインポートします。SPE issueによりブロックされています。
- [ ]
security-export-role: ロールをエクスポートします。SPE issueによりブロックされています。
- [ ]
security-import-role: ロールをインポートします。SPE issueによりブロックされています。
- [x]
security-add-role-member: ロールにメンバーを追加します。
- [x]
security-remove-role-member: ロールからメンバーを削除します。
- [x]
security-test-item-acl-by-id: IDでアイテムのACLをテストします。
- [x]
security-test-item-acl-by-path: パスでアイテムのACLをテストします。
- [x]
security-add-item-acl-by-id: IDでアイテムのACLを追加します。
- [x]
security-add-item-acl-by-path: パスでアイテムのACLを追加します。
- [x]
security-clear-item-acl-by-id: IDでアイテムのACLをクリアします。
- [x]
security-clear-item-acl-by-path: パスでアイテムのACLをクリアします。
- [x]
security-set-item-acl-by-id: IDでアイテムのACLを設定します。
- [x]
security-set-item-acl-by-path: パスでアイテムのACLを設定します。
- [x] プロバイダー
- [x]
provider-get-item-by-id: IDでアイテムを返します。
- [x]
provider-get-item-by-path: パスでアイテムを返します。
- [x]
provider-get-item-by-query: クエリでアイテムを返します。
- [x]
provider-get-item-by-path: パスでアイテムを返します。
- [x] プレゼンテーション
- [x]
presentation-get-layout-by-id: IDでアイテムのプレゼンテーションレイアウトを返します。
- [x]
presentation-get-layout-by-path: パスでアイテムのプレゼンテーションレイアウトを返します。
- [x]
presentation-set-layout-by-id: IDでアイテムのプレゼンテーションレイアウトを設定します。
- [x]
presentation-set-layout-by-path: パスでアイテムのプレゼンテーションレイアウトを設定します。
- [x]
presentation-reset-layout-by-id: IDでアイテムのプレゼンテーションレイアウトをリセットします。
- [x]
presentation-reset-layout-by-path: パスでアイテムのプレゼンテーションレイアウトをリセットします。
- [x]
presentation-merge-layout-by-id: アイテムのIDで最終レイアウトと共有レイアウトをマージします。
- [x]
presentation-merge-layout-by-path: アイテムのパスで最終レイアウトと共有レイアウトをマージします。
- [x]
presentation-get-layout-device: 指定されたデバイスのレイアウトを取得します。
- [x]
presentation-get-default-layout-device: デフォルトのレイアウトを取得します。
- [x]
presentation-get-rendering-by-id: アイテムのIDでレンダリング定義を取得します。
- [x]
presentation-get-rendering-by-path: アイテムのパスでレンダリング定義を取得します。
- [x]
presentation-remove-rendering-by-path: 所有者のアイテムパスでアイテムからレンダリングを削除します。
- [x]
presentation-remove-rendering-by-id: 所有者のアイテムIDでアイテムからレンダリングを削除します。
- [x]
presentation-add-rendering-by-path: パスで指定されたアイテムのプレゼンテーションにレンダリングを追加します。
- [x]
presentation-add-rendering-by-id: アイテムのIDで指定されたアイテムのプレゼンテーションにレンダリングを追加します。
- [x]
presentation-set-rendering-by-path: アイテムのパスで指定されたレンダリングを新しい値で更新します。
- [x]
presentation-set-rendering-by-id: アイテムのIDで指定されたレンダリングを新しい値で更新します。
- [x]
presentation-switch-rendering-by-id: アイテムのIDで指定された既存のレンダリングを代替のレンダリングに切り替えます。
- [x]
presentation-switch-rendering-by-path: パスで指定された既存のレンダリングを代替のレンダリングに切り替えます。
- [x]
presentation-switch-rendering-by-unique-id: 一意のIDで指定された既存のレンダリングを代替のレンダリングに切り替えます。
- [x]
presentation-get-placeholder-setting-by-id: IDで指定されたアイテムに割り当てられたプレースホルダー設定を取得します。
- [x]
presentation-get-placeholder-setting-by-path: パスで指定されたアイテムに割り当てられたプレースホルダー設定を取得します。
- [x]
presentation-add-placeholder-setting-by-id: IDで指定されたアイテムにプレースホルダー設定を追加します。
- [x]
presentation-add-placeholder-setting-by-path: パスで指定されたアイテムにプレースホルダー設定を追加します。
- [x]
presentation-remove-placeholder-setting-by-id: IDで指定されたアイテムからプレースホルダー設定を削除します。
- [x]
presentation-remove-placeholder-setting-by-path: パスで指定されたアイテムからプレースホルダー設定を削除します。
- [x]
presentation-get-rendering-parameter-by-id: IDで指定されたアイテムのレンダリングパラメーターを取得します。
- [x]
presentation-get-rendering-parameter-by-path: パスで指定されたアイテムのレンダリングパラメーターを取得します。
- [x]
presentation-remove-rendering-parameter-by-id: IDで指定されたアイテムに配置されたレンダリングから指定されたレンダリングパラメーターを削除します。
- [x]
presentation-remove-rendering-parameter-by-path: パスで指定されたアイテムに配置されたレンダリングから指定されたレンダリングパラメーターを削除します。
- [x]
presentation-set-rendering-parameter-by-id: IDで指定されたアイテムに配置されたレンダリングから指定されたレンダリングパラメーターを追加および更新します。
- [x]
presentation-set-rendering-parameter-by-path: パスで指定されたアイテムに配置されたレンダリングから指定されたレンダリングパラメーターを追加および更新します。
- [x] インデックス作成
- [x]
indexing-initialize-search-index: 1つまたは複数の検索インデックスを初期化します。
- [x]
indexing-get-search-index: 検索インデックスを返します。
- [x]
indexing-find-item: 検索インデックス内でアイテムを検索します。
- [x]
indexing-suspend-search-index: 実行中の1つまたは複数の検索インデックスを一時停止します。
- [x]
indexing-stop-search-index: 実行中の1つまたは複数の検索インデックスを停止します。
- [x]
indexing-resume-search-index: 一時停止中の1つまたは複数の検索インデックスを再開します。
- [x]
indexing-initialize-search-index-item-by-id: 指定されたIDとインデックス名のルートアイテムを持つツリーのインデックスを再構築します。
- [x]
indexing-initialize-search-index-item-by-path: 指定されたパスとインデックス名のルートアイテムを持つツリーのインデックスを再構築します。
- [x]
indexing-remove-search-index-item-by-id: 指定されたIDのアイテムを検索インデックスから削除します。
- [x]
indexing-remove-search-index-item-by-path: 指定されたパスのアイテムを検索インデックスから削除します。
- [ ]
indexing-initialize-item: 各フィールドのPowerShell自動プロパティでアイテムを初期化します。 スキップされました。MCPサーバーには価値がありません。
- [x] 共通
- [x]
common-add-base-template-by-id: IDでテンプレートアイテムに基本テンプレートを追加します。
- [x]
common-add-base-template-by-path: パスでテンプレートアイテムに基本テンプレートを追加します。
- [x]
common-add-item-version-by-id: 既存の言語バージョンを基に、新しい言語でアイテムのバージョンを作成します。
- [x]
common-add-item-version-by-path: 既存の言語バージョンを基に、新しい言語でアイテムのバージョンを作成します。
- [x]
common-convert-from-item-clone-by-id: IDでアイテムをクローンから完全に独立したアイテムに変換します。
- [x]
common-convert-from-item-clone-by-path: パスでアイテムをクローンから完全に独立したアイテムに変換します。
- [x]
common-get-archive: Sitecoreデータベースのアーカイブを取得します。
- [x]
common-get-archive-item: 指定されたアーカイブ内で見つかったアイテムのリストを取得します。
- [x]
common-get-cache: Sitecoreキャッシュに関する情報を取得します。
- [x]
common-get-database: Sitecoreデータベースに関する情報を取得します。
- [x]
common-get-item-field-by-id: IDでアイテムのフィールドを名前、フィールド、またはテンプレートフィールドとして取得します。
- [x]
common-get-item-field-by-path: パスでアイテムのフィールドを名前、フィールド、またはテンプレートフィールドとして取得します。
- [x]
common-get-item-clone-by-id: IDで指定されたアイテムのすべてのクローンを取得します。
- [x]
common-get-item-clone-by-path: パスで指定されたアイテムのすべてのクローンを取得します。
- [x]
common-get-item-reference-by-id: IDでSitecoreアイテムの参照(使用場所)を取得します。
- [x]
common-get-item-reference-by-path: パスでSitecoreアイテムの参照(使用場所)を取得します。
- [x]
common-get-item-referrer-by-id: IDでSitecoreアイテムを参照するアイテム(どのアイテムがそれを参照しているか)を取得します。
- [x]
common-get-item-referrer-by-path: パスでSitecoreアイテムを参照するアイテム(どのアイテムがそれを参照しているか)を取得します。
- [x]
common-get-item-template-by-id: IDでSitecoreアイテムのテンプレート情報を取得します。
- [x]
common-get-item-template-by-path: パスでSitecoreアイテムのテンプレート情報を取得します。
- [x]
common-get-item-workflow-event-by-id: IDで指定されたアイテムのワークフロー履歴からエントリを取得します。
- [x]
common-get-item-workflow-event-by-path: パスで指定されたアイテムのワークフロー履歴からエントリを取得します。
- [x]
common-get-sitecore-job: 現在のSitecoreジョブのリストを取得します。
- [x]
common-invoke-workflow-by-id: IDでSitecoreアイテムのワークフローアクションを実行します。
- [x]
common-invoke-workflow-by-path: パスでSitecoreアイテムのワークフローアクションを実行します。
- [x]
common-new-item-clone-by-id: IDで提供されたアイテムを基に新しいアイテムクローンを作成します。
- [x]
common-new-item-clone-by-path: パスで提供されたアイテムを基に新しいアイテムクローンを作成します。
- [x]
common-new-item-workflow-event-by-id: IDでSitecoreアイテムのワークフロー履歴に新しいエントリを作成します。
- [x]
common-new-item-workflow-event-by-path: パスでSitecoreアイテムのワークフロー履歴に新しいエントリを作成します。
- [x]
common-publish-item-by-id: IDでSitecoreアイテムを公開します。
- [x]
common-publish-item-by-path: パスでSitecoreアイテムを公開します。
- [x]
common-remove-archive-item: 指定されたアーカイブからアイテムを永久に削除します。
- [x]
common-remove-base-template-by-id: IDでテンプレートアイテムから基本テンプレートを削除します。
- [x]
common-remove-base-template-by-path: パスでテンプレートアイテムから基本テンプレートを削除します。
- [x]
common-remove-item-version-by-id: IDでSitecoreアイテムのバージョンを削除します。
- [x]
common-remove-item-version-by-path: パスでSitecoreアイテムのバージョンを削除します。
- [x]
common-reset-item-field-by-id: IDで名前、フィールド、またはテンプレートフィールドとして指定されたアイテムのフィールドをリセットします。
- [x]
common-reset-item-field-by-path: パスで名前、フィールド、またはテンプレートフィールドとして指定されたアイテムのフィールドをリセットします。
- [x]
common-restart-application: Sitecoreアプリケーションプールを再起動します。
- [x]
common-restore-archive-item: 指定されたアーカイブから元のデータベースにアイテムを復元します。
- [x]
common-set-item-template-by-id: IDでアイテムのテンプレートを設定します。
- [x]
common-set-item-template-by-path: パスでアイテムのテンプレートを設定します。
- [x]
common-test-base-template-by-id: IDでアイテムが指定されたテンプレートを継承しているかどうかを確認します。
- [x]
common-test-base-template-by-path: パスでアイテムが指定されたテンプレートを継承しているかどうかを確認します。
- [x]
common-update-item-referrer-by-id: 指定されたアイテム(IDで)へのすべての参照を、-NewTargetで提供された新しいものに更新するか、アイテムへのリンクを削除します。
- [x]
common-update-item-referrer-by-path: 指定されたアイテム(パスで)へのすべての参照を、-NewTargetで提供された新しいものに更新するか、アイテムへのリンクを削除します。
- [x] ロギング
- [x]
logging-get-logs: フィルタリングオプション付きで、ログディレクトリからSitecoreログを取得します。
-
[ ] Sitecore CLI
- [x]
sitecore-cli-documentation: LLMにより多くのコンテキストを提供するために、Sitecore CLIのドキュメントを取得します。
ツールの選択
AIエージェントは、使用できるツールの量に制限がある場合があります。必要のないツールを無効にすることを確認してください。これにより、エージェントがより高速で安価で効率的になります。
📦 インストール
以下のモデルコンテキストプロトコルサーバーをCursor、VS Code、Claudeに追加してください。
"Sitecore": {
"type": "stdio",
"command": "npx",
"args": ["@antonytm/mcp-sitecore-server@latest"],
"env": {
"TRANSPORT": "stdio",
"GRAPHQL_ENDPOINT": "https://xmcloudcm.localhost/sitecore/api/graph/",
"GRAPHQL_SCHEMAS": "edge,master,core",
"GRAPHQL_API_KEY": "{6D3F291E-66A5-4703-887A-D549AF83D859}",
"GRAPHQL_HEADERS": "",
"ITEM_SERVICE_DOMAIN": "sitecore",
"ITEM_SERVICE_USERNAME": "admin",
"ITEM_SERVICE_PASSWORD": "b",
"ITEM_SERVICE_SERVER_URL": "https://xmcloudcm.localhost/",
"POWERSHELL_DOMAIN": "sitecore",
"POWERSHELL_USERNAME": "admin",
"POWERSHELL_PASSWORD": "b",
"POWERSHELL_SERVER_URL": "https://xmcloudcm.localhost/",
}
}
環境変数の説明
TRANSPORT: 使用するトランスポートプロトコル。オプションは streamable-http、stdio、または sse です。
GRAPHQL_ENDPOINT: SitecoreインスタンスのGraphQLエンドポイントURL。
GRAPHQL_SCHEMAS: GraphQL APIで使用するSitecoreスキーマ。カンマ区切りで指定します。
GRAPHQL_API_KEY: GraphQLエンドポイントのAPIキー。
GRAPHQL_HEADERS: GraphQLリクエストに含める追加のヘッダー。
ITEM_SERVICE_DOMAIN: アイテムサービスAPI認証のドメイン。デフォルトは sitecore です。
ITEM_SERVICE_USERNAME: アイテムサービスAPI認証のユーザー名。
ITEM_SERVICE_PASSWORD: アイテムサービスAPI認証のパスワード。
ITEM_SERVICE_SERVER_URL: アイテムサービスAPIのベースURL。
POWERSHELL_DOMAIN: Sitecore PowerShellリモートAPI認証のドメイン。デフォルトは sitecore です。
POWERSHELL_USERNAME: Sitecore PowerShellリモートAPI認証のユーザー名。
POWERSHELL_PASSWORD: Sitecore PowerShellリモートAPI認証のパスワード。
POWERSHELL_SERVER_URL: Sitecore PowerShellリモートAPIのベースURL。
AUTORIZATION_HEADER: オプション。設定されている場合、サーバーへのアクセスに認証ヘッダーとして使用されます。MCPサーバーは、この環境変数の値を持つ authorization ヘッダーが渡されることを期待します。環境変数が設定されていない場合、サーバーは認証ヘッダーをチェックしません。
ドッカーイメージ
リソースリスト
- [x]
config: サーバーの設定を返します。すべてが適切に設定されていることを確認するために使用します。
ローカルインストール / 開発
- リポジトリをクローンします。
npm install を実行して依存関係をインストールします。
npm run build を実行してプロジェクトをビルドします。
npm start を実行してサーバーを起動します。
🤝 コントリビュート
詳細については、CONTRIBUTING.md を読んでください。