Total CMS について
Total CMS Desktop Extensionは、Claude DesktopをTotal CMSサイトのMCPエンドポイントにつなぐローカルstdioブリッジです。HTTPSでMCP通信を中継し、APIキーを付加して公開コンテンツやキーで許可された機能にアクセスできます。
主な機能
- 01ローカルstdioからHTTPへのMCPブリッジ
- 02設定したTotal CMSエンドポイントへの接続
- 03任意のAPIキーをヘッダーに付加
- 04キーなしでの公開アクセス
- 05OSの資格情報ストアでキーを保管
- 06エンドポイント接続にHTTPSを必須化
活用シーン
- 01Total CMSサイトの公開コンテンツを検索・閲覧
- 02APIキーの権限範囲でサイトを管理
- 03Total CMSドキュメントサーバーについて調べる
- 04ローカルサーバーを起動するMCPクライアントに接続
MCP 対応
この拡張機能はローカルのstdio MCPサーバーとして動作し、ストリーミングHTTPでTotal CMSの`/mcp`エンドポイントへプロトコルメッセージを中継します。`X-API-Key`ヘッダーを送信でき、カスタムヘッダー付きリモートMCPサーバーに対応するクライアントは直接接続することもできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Total CMS Desktop Extension(MCPB)
Claude Desktop 拡張機能 で、Claude をあらゆる Total CMS サイトに組み込まれている MCP サーバーに接続します。一度インストールすれば、Claude でドキュメントを検索したり、 コンテンツを閲覧したり、(API キーを使って)Total CMS サイトを直接管理したりできます。
これはホスト型コネクターではなく、ローカルブリッジです。お使いのマシン上で小さな Node
プロセスとして実行され、サイトの /mcp
エンドポイントに HTTPS 経由で MCP トラフィックを中継します。これにより、認証アクセス用のカスタム
X-API-Key ヘッダーを付与できます。オプションの認証を通知するサーバーに対して、Claude Desktop の組み込みリモートコネクターではできないことです。
プライバシーポリシー
この拡張機能は、独自のデータを収集、送信、保存しません。お使いのマシンから、設定した Total CMS MCP エンドポイント(デフォルト:https://totalcms.co/mcp。Total CMS の公式ドキュメントサイト)へ直接 HTTPS 接続を開き、Claude Desktop とそのエンドポイント間で MCP プロトコルメッセージを中継します。オプションの API キーは、OS のセキュアな認証情報ストアに保存され(Claude Desktop の sensitive: true 設定処理を介します)、設定したサイトへのリクエストの X-API-Key ヘッダーとしてのみ送信されます。ログに記録されることも、ほかの場所に送信されることもありません。
Total CMS 製品および totalcms.co 自体のプライバシーポリシーについては、https://totalcms.co/privacy をご覧ください。
セットアップ
設定不要:Total CMS 自体について質問する
拡張機能をインストールするだけです。デフォルトで Total CMS の公式ドキュメントサーバーである https://totalcms.co/mcp に接続するため、「Total CMS でウェブフックを設定するには?」「Total CMS はどのスキーマフィールドに対応していますか?」といった質問に、Claude がすぐに回答できます。
自分のサイトに接続する
- Total CMS の管理画面で、Settings -> MCP に移動し、サイトの
MCP エンドポイント URL をコピーします(
https://yoursite.com/mcpのような形式です。Total CMS をサブパスにインストールしている場合は、サブパスも含まれます)。 - Claude Desktop の Total CMS 拡張機能の設定で、その URL を Total CMS MCP endpoint に貼り付けます。
- 再インストールまたは再接続します。これで Claude は、サイトの公開 コレクションを閲覧、検索できます。
認証済みアクセス
- Settings → API Keys で、サイト用の Total CMS API キーを作成します。キーの
Scopes で許可される操作が、そのまま Claude に許可される操作になります。
- 管理者権限でのフルアクセス: すべての HTTP メソッドで、すべてのエンドポイント(
*)にアクセスできます。 - アクセス制限: キーのパスに
/mcpと、アクセスを許可するコレクション(/api/collections/blogなど)を追加します。/mcpだけではエンドポイントに接続できますが、コンテンツにはアクセスできません。キーに設定された HTTP メソッドによって、使用できるツールが決まります。GET のみを許可したキーでは読み取り専用で接続します。アクセス制限付きのキーでコレクションにアクセスするには、そのコレクションの MCP アクセスが API keys 以上に設定されている必要があります。Keys over MCP をご覧ください。
- 管理者権限でのフルアクセス: すべての HTTP メソッドで、すべてのエンドポイント(
- 拡張機能の設定にある API key (optional) フィールドにキーを貼り付けます。 キーは OS のキーチェーンに保存され、平文では保存されません。
- Claude は公開コンテンツに加えて、キーで許可された内容にアクセスできるようになります。 管理者権限をすべて含むキーでは、スキーマ管理、テンプレート、サイト情報、キャッシュの消去も利用できます。Claude のアクセスを公開された匿名アクセスに限定するには、このフィールドを空欄のままにします。
その他の MCP クライアント
ブリッジは標準的な stdio MCP サーバーなので、ローカルサーバーを起動するあらゆるクライアント(Cursor、VS Code、Windsurf など)で、Node 18 以降を使って実行できます。カスタムヘッダー付きのリモートサーバーに対応しているクライアントなら、ブリッジを介さず、サイトの /mcp エンドポイントに直接接続できます。
-
最新リリースから
totalcms.mcpbをダウンロードします。これは zip アーカイブです。任意の場所に解凍してください。中のserver/index.jsは単体で動作し、npm installは不要です。 -
クライアントの MCP 設定に追加します。
{ "mcpServers": { "totalcms": { "command": "node", "args": ["/path/to/totalcms/server/index.js"], "env": { "MCP_URL": "https://yoursite.com/mcp", "API_KEY": "" } } } }Total CMS のドキュメントサーバーを使用するには
MCP_URLを空のままにし、公開された匿名アクセスを使用するにはAPI_KEYを空のままにします。
ソースからビルドする場合は、npm install && npm run build を実行すると server/index.js が生成されます。
仕組み
server/index.js は小さな stdio MCP サーバーで、Claude Desktop が直接起動します(Node のインストールは不要です。MCPB バンドルには独自のランタイム処理が含まれています)。設定した MCP_URL に
ストリーミング可能な HTTP
接続を開き、すべての JSON-RPC メッセージを双方向にそのまま転送します。対象は initialize、tools/list、tools/call、resources/*、prompts/* と、すべての通知です。API_KEY が設定されている場合、すべての送信 HTTP リクエストに X-API-Key ヘッダーを付加します。
MCP_URL が https:// でない場合は起動を拒否します。ローカルでのテストであっても、通信上で認証情報を平文で送信することは認められません。
mcp-remote を使わない理由
最初にこれを試しました(詳細な説明は BUILD-REPORT.md を参照してください)。要点は、mcp-remote は起動時に必ず OAuth の検出を実行し、HTTP 401 レスポンスを受け取ると、無効にするフラグがないままブラウザーでの OAuth 認証フローを開始することです。Total CMS は OAuth ではなく通常の API キーヘッダーを使用します。無効なキーは、OAuth に対応していないサーバーに対する OAuth を試みるブラウザーポップアップの裏で停止するのではなく、MCP クライアントに明確な 401 エラーとして表示されるべきです。そのため、このバンドルでは @modelcontextprotocol/sdk の StreamableHTTPClientTransport と StdioServerTransport を直接利用した、小規模な手書きプロキシを同梱しています。
開発
npm install
npm run build # typecheck -> esbuild bundle -> mcpb validate -> mcpb pack
dist/totalcms.mcpb が生成されます。このファイルを Claude Desktop にドラッグしてインストールします。
npm run typecheck と npm run validate は単独で実行できます。
リリース
npm run bump 0.3.0 # rewrites the version in all four files
# add a "## [0.3.0] - YYYY-MM-DD" section to CHANGELOG.md
git commit -am "Release v0.3.0"
git tag v0.3.0 && git push origin master v0.3.0
タグをプッシュすればリリースは完了です。Release ワークフローがバンドルをビルドし、GitHub リリースに添付して、新しいバージョンを
MCP Registry に
io.github.totalcms/total-cms として公開します。
GitHub リリースノートには、対応する CHANGELOG.md のセクションが使われます。リリースの説明はそこに記載するため、タグを付ける前に書いてください。セクションがない場合は警告が表示され、ビルドは失敗せずに生成されたノートが使われます。説明文が書かれていないことを理由にリリースを止めるべきではありません。
知っておくべきことが、もう 2 つあります。
- レジストリは GitHub Releases とは別のシステムです。 MCP ディレクトリからインストールしたユーザーは、リリースページではなくレジストリから更新を取得します。一方だけを公開すると、ユーザーは古いバージョンのまま取り残されます。そのためワークフローでは両方を実行し、手作業でリリースを公開すべきでないのです。
server.jsonのfileSha256は CI が書き込みます。 zip にはタイムスタンプが含まれるため、CI でのビルドとローカルでのビルドではハッシュが一致しません。git にコミットされている値は、直近のローカルビルドの記録にすぎないため、無視してください。
レジストリへの認証には GitHub OIDC を使うため、更新が必要なシークレットはありません。すでに存在するタグ、またはこのワークフロー導入前にリリースされたタグを再公開するには、Actions タブから Release ワークフローを手動で実行し、そのタグを指定します。
セキュリティに関する注意事項
- ファイルシステムへのアクセスは一切なく、サブプロセスも一切起動せず、外部への HTTPS 通信先は 1 つだけです(
MCP_URLが指すホスト)。 - API キーは
API_KEY環境変数から読み取られます(Claude Desktop がキーチェーンに保存された設定から設定します)。標準出力、標準エラー出力、ログには一切書き込まれません。 MCP_URLはhttps://で始まる必要があります。そうでない場合、プロセスは起動を拒否します。
ライセンス
ソースコードはMITライセンスです。Total CMS という名称、炎のロゴ、同梱されている icon.png は商標であり、この許諾の対象ではありません。コードをフォークすることはできますが、再配布するバージョンを Total CMS が公開または推奨したものとして表示してはなりません。TRADEMARKS.md をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。