Skip to main content
Glama

optimizely-test-data-mcp

コンテンツプランをインポート可能な Optimizely CMS 12 の .episerverdata パッケージに変換する MCP サーバーです。

ジェネレーターは CMS に一切触れません。コンテンツタイプのエクスポートを読み取り、ファイルを書き出すだけです。スキーマのエクスポートは人間が行い、結果のインポートも人間が Admin → Import Data で行います。

使用方法

{
  "mcpServers": {
    "optimizely-testdata": {
      "command": "bunx",
      "args": ["optimizely-test-data-mcp@0.1.0"]
    }
  }
}

バージョンを固定してください。固定されていない仕様は、キャッシュから提供される代わりにセッション開始ごとに再解決されます。Windows では、固定した場合の約0.7秒に対して、毎回約11秒かかることが測定されています。

Bun を使いたくない場合は、npx でも同じように動作します。

Related MCP server: PBIP Builder MCP Server

ツール

ツール

目的

load_schema

サイトのコンテンツタイプを Admin → Export Data エクスポートから読み込みます(コンテンツタイプのみ)。これが成功するまで、他のすべてのツールは失敗します。

list_content_types

サイトが実際に持つタイプを、種類や名前でフィルタリングして見つけます。

describe_content_type

1つのタイプのプロパティ、必須項目、編集可能なプランのスケルトンを表示します。

validate_plan

何も書き込まずにプランをチェックします。エラーは期待する形状を明示します。

build_package

.episerverdata ファイルを書き出します。

inspect_package

既存のパッケージ内のコンテンツツリーを要約します。

制限事項

メディア、インラインブロックプロパティ、未公開コンテンツ、複数言語、Category、型指定なしの Json は生成されません。実証済みのシリアライゼーションがないプロパティタイプは、推測ではなく警告付きで空のままにされます。誤った推測は、見た目は正しいが微妙に間違ったコンテンツを生成するからです。

対応しているもの: ページ、ブロック、ネストされたページツリー、テキスト、HTML、ContentArea、コンテンツ参照、{{date:±Nd}} / {{date:±Nh}} / {{date:±Nm}} トークン。

リリース

  1. package.json の version を更新します。

  2. コミットし、タグを付けてプッシュします:

git tag v0.2.0
git push origin v0.2.0

ワークフローはタグを package.json と照合し、テストを実行し、dist/ をビルドし、OIDC トラステッドパブリッシングを通じて公開します。保存するトークンはありません。

リリースは CI の仕事です。 prepublishOnly フックはないため、npm publish 単独ではビルドされません。dist/ は git で無視されており、それなしで公開すると files: ["dist"] が何にも一致しないパッケージが配布されます。npm はそれを受け入れ、終了コード 0 で終了するため、失敗を報告するものはありません。壊れたバージョンがそのまま消費者に届くだけです。手動で公開する必要がある場合は、最初に bun run build を実行してください。

その手動公開は一度だけ必要です。npm は既に知っているパッケージしか信頼できないからです。0.1.0 を手動で公開し(bun run build、その後 npm login 後に npm publish)、npmjs.com のパッケージの Settings → Trusted Publisher にトラステッドパブリッシャーを追加し、このリポジトリと publish.yml を指定します。以降のリリースはすべてタグから行われます。

利用者は使用するバージョンを固定します(上記の設定を参照)。ここでバージョンを上げても、利用者がその固定を更新するまで変更は反映されません。

Related MCP Connectors

Related MCP Servers