Docker Techstack Rolldev Mcp Server について
RollDev 上の Magento 2 開発環境向け MCP サーバーです。AI クライアントから環境やサービスを管理し、開発コマンドの実行、新規プロジェクトの初期化、読み取り専用の性能診断を行えます。
主な機能
- 01RollDev 環境とサービスの管理
- 02SQL、PHP、Magento CLI、Composer の実行
- 03Magento 2 プロジェクトの初期化
- 04Inspector の稼働状況と性能トレースの確認
- 05コマンド出力のログファイル保存
活用シーン
- 01Magento プロジェクト環境の起動や停止
- 02プロジェクトデータベースの照会やアップグレードコマンドの実行
- 03遅いルート、重複クエリ、サービス状態の調査
MCP 対応
互換性のある MCP クライアントに、RollDev 環境管理、開発操作、Inspector 照会のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
10掲載時のツール一覧 · 3 週間前に更新
このツールにパラメーターはありません。
詳細
RollDev MCP サーバー
RollDev と Magento 2 の開発環境向けの Model Context Protocol(MCP)サーバーです。このサーバーを使用すると、Claude やその他の LLM が RollDev プロジェクトと連携し、環境を管理してコマンドを実行したり、新しい Magento 2 プロジェクトをシームレスに初期化したりできます。
機能
環境管理
- 環境制御:RollDev プロジェクトの環境の一覧表示、起動、停止
- サービス管理:RollDev のシステムサービス(データベース、Redis、OpenSearch など)の制御
- プロジェクトの初期化:自動設定で新しい Magento 2 プロジェクトを作成
開発ツール
- データベース操作:プロジェクトのデータベースで SQL クエリを直接実行
- PHP スクリプトの実行:プロジェクトのコンテナ内で PHP スクリプトを実行
- Magento CLI へのアクセス:
roll magentoで Magento コマンドを実行 - Composer 連携:プロジェクト環境で Composer コマンドを実行
信頼性に関する機能
- コマンドのタイムアウト:ハングを防ぐため、すべてのコマンドに適切なタイムアウトを設定しています(操作に応じて 5~15 分)
- 出力ファイルへのリダイレクト:後で調査できるよう、コマンドの出力をログファイルに保存するオプション
前提条件
- RollDev がインストールおよび設定されていること
- Node.js 18+
- RollDev のプロジェクト環境が稼働していること(一部の操作に必要)
インストール
オプション 1:NPM を使用(推奨)
{
"mcpServers": {
"rolldev": {
"command": "npx",
"args": [
"-y",
"@disrex/rolldev-mcp-server"
]
}
}
}
この設定を Claude for Desktop の設定ファイルに追加してください:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
オプション 2:手動セットアップ
- このリポジトリをクローンします:
git clone https://github.com/dockergiant/rolldev-mcp-server.git
cd rolldev-mcp-server
- 依存関係をインストールします:
npm install
- Claude の設定に追加します:
{
"mcpServers": {
"rolldev": {
"command": "node",
"args": ["/path/to/rolldev-mcp-server/server.js"]
}
}
}
利用可能なツール
rolldev_list_environments
プロジェクト名、パス、URL、Docker ネットワーク、コンテナ数などの構造化された情報とともに、実行中の RollDev 環境をすべて一覧表示します。
rolldev_start_project
RollDev プロジェクト環境を起動します。
- project_path:プロジェクトディレクトリのパス
rolldev_stop_project
RollDev プロジェクト環境を停止します。
- project_path:プロジェクトディレクトリのパス
rolldev_start_svc
RollDev のシステムサービスを起動します。
- project_path:プロジェクトディレクトリのパス
rolldev_stop_svc
RollDev のシステムサービスを停止します。
- project_path:プロジェクトディレクトリのパス
rolldev_db_query
プロジェクトのデータベースで SQL クエリを実行します。
- project_path:プロジェクトディレクトリのパス
- query:実行する SQL クエリ
- database:データベース名(省略可能。既定値は「magento」)
rolldev_php_script
プロジェクトのコンテナ内で PHP スクリプトを実行します。
- project_path:プロジェクトディレクトリのパス
- script_path:プロジェクトルートからの相対パスで指定する PHP スクリプトのパス
- args:追加の引数(省略可能)
rolldev_magento_cli
Magento CLI コマンドを実行します(タイムアウトは 5 分です)。
- project_path: プロジェクトディレクトリへのパス
- command: Magento コマンド('bin/magento' のプレフィックスなし)
- args: 追加の引数(任意)
- save_output_to_file: 出力全体をログファイルに保存します(任意、デフォルト: false)
rolldev_composer
プロジェクト環境で Composer コマンドを実行します(タイムアウトは 10 分です)。
- project_path: プロジェクトディレクトリへのパス
- command: Composer コマンド(例: "install"、"update"、"require symfony/console")
- save_output_to_file: 出力全体をログファイルに保存します(任意、デフォルト: false)
rolldev_magento2_init
自動設定で新しい Magento 2 プロジェクトを初期化します(タイムアウトは 15 分です)。
- project_name: プロジェクト名(小文字の英字、数字、ハイフンのみ)
- magento_version: Magento のバージョン(任意、デフォルトは "2.4.x")
- target_directory: 対象ディレクトリ(任意、デフォルトは現在のディレクトリ)
Roll Inspector ツール(読み取り専用)
これらのツールは Roll Inspector(https://inspector.<TRAEFIK_DOMAIN>)から読み取りを行い、環境を変更することはありません。各ツールは project_path を受け取り、roll と同じ方法で ROLL_ENV_NAME、TRAEFIK_DOMAIN、ROLL_INSPECTOR を読み込みます(${ROLL_HOME_DIR:-~/.roll}/.env.roll、次にその場所の .env、続いて最も近いプロジェクトの .env.roll の順に読み込み、後のファイルが前のファイルを上書きします)。また、上記のツールと同様に save_output_to_file を受け付けます。出力はコンパクトなテキストと JSON ブロックです。60,000 文字を超える部分は省略され、save_output_to_file の使用を促すヒントが表示されます。
| ツール | 戻り値 |
|---|---|
rolldev_inspector_overview | サービスの稼働状態、警告、およびコピーして使える修正方法 |
rolldev_inspector_traces | カテゴリ別のコスト内訳を含むトレース一覧。フィルター: route、min_ms、sort、limit |
rolldev_inspector_trace | 1 つのトレース id の分析: カテゴリ別のコスト、ホットスパン、繰り返される(N+1)呼び出し、最も遅い呼び出し。生のスパンは include_spans を指定した場合のみ返され、自己時間順に最大 200 件に制限されます |
rolldev_inspector_hotspots | 保存済みのすべてのトレースにおける、最も遅いルート、最もコストの高い操作、繰り返される呼び出し。limit で各セクションの行数を設定します |
rolldev_inspector_request | url(または xid)のタイムラインエントリー: Varnish の結果と PHP、キャッシュ、検索の各レーン。limit を指定すると、一致した項目を新しい順にさらに返します |
rolldev_inspector_service | kind が varnish、redis、search、rabbitmq の場合の section health(デフォルト)または info |
接続の詳細:
- ツールは
node:httpsで接続し、${ROLL_SSL_DIR}/rootca/certs/ca.cert.pemにある roll のルート CA を信頼します。ROLL_SSL_DIRのデフォルトは${ROLL_HOME_DIR}/ssl、ROLL_HOME_DIRのデフォルトは~/.rollです(bin/rollと同様)。上書きするには、MCP サーバーの環境でいずれかの変数を設定してください。 - リクエストは 10 秒後にタイムアウトします。
ROLL_INSPECTORが未設定または0の場合、ツールは修正方法を返します。.env.rollにROLL_INSPECTOR=1を設定し、roll env upを実行してください。- 停止中の Inspector コンテナ(
roll env up)、証明書の問題(roll sign-certificate <domain>)、解決できないホスト、ゲートからの 403 を、わかりやすい言葉で報告します。 rolldev_inspector_traceとrolldev_inspector_hotspotsには、分析およびホットスポットのエンドポイントを備えた Inspector イメージが必要です。古いイメージの場合は、更新を促すメッセージが表示されます。
トレースとホットスポットの回答には、プロジェクトの .env.roll で ROLL_INSPECTOR=1 と ROLL_INSPECTOR_TRACE=1 を設定する必要があります。Varnish HIT にはトレースがないため、rolldev_inspector_request では結果が見つかりません。ユーザードキュメント: roll-docker-stack/docs/inspector/api-and-extensions.md。
ロジックは inspector.cjs にあり、test/inspector.test.js で偽のトランスポートを使って実行します。
例
RollDev MCP サーバーのセットアップ後、Claude で試せるやり取りの例をいくつか紹介します。
基本的な環境管理
- 「RollDev の環境をすべて一覧表示できますか?」
- 「/path/to/my-magento-project のプロジェクトを起動してください」
- 「現在のプロジェクトのサービスを停止してください」
データベース操作
- 「プロジェクトでクエリ 'SELECT * FROM admin_user LIMIT 5' を実行する」
- 「データベースで有効になっているモジュールをすべて表示する」
- 「ストアの現在の設定値を確認する」
Magento 開発
- 「プロジェクトで Magento コマンド 'cache:flush' を実行する」
- 「Magento のインストール環境で 'setup:upgrade' を実行する」
- 「利用可能な Magento CLI コマンドをすべて一覧表示する」
プロジェクトの初期化
- 「'my-store' という名前で新しい Magento 2.4.7 プロジェクトを初期化する」
- 「最新バージョンの Magento プロジェクトを /Users/dev/projects に作成する」
Composer 操作
- 「プロジェクトで Composer を使って依存関係をインストールする」
- 「プロジェクトで symfony/console パッケージを要求する」
出力ファイルへのリダイレクト
- 「setup:upgrade を実行し、調査用に出力をファイルに保存する」
- 「composer install を実行し、出力をログファイルに保存する」
Roll Inspector
これらのプロンプトは読み取り専用です。Inspector ツールが何かを消去、フラッシュ、切り替えすることはありません。 16. 「/category-1.html が遅いのはなぜですか? Inspector のトレースを確認してください」 17. 「このプロジェクトの Inspector のホットスポットを表示してください」 18. 「このプロジェクトで同じ SQL クエリが繰り返されている(N+1)ルートはどれですか?」 19. 「RabbitMQ は正常ですか? Inspector に概要を確認してもらってください」 20. 「/checkout/cart への直近のリクエストは Varnish MISS でしたか? その理由も教えてください」
開発
# Start in development mode with debugging
npm run dev
# Run tests
npm test
テスト
MCP Inspector を使ってサーバーをテストできます。
npx @modelcontextprotocol/inspector node server.js
コントリビューション
- dockergiant/rolldev-mcp-server からリポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細は LICENSE ファイルを参照してください。
サポート
問題が発生した場合や質問がある場合は、以下をご確認ください。
- GitHub Issues セクションを確認する
- modelcontextprotocol.io の MCP ドキュメントを参照する
- 詳細な再現手順を記載して、新しい issue を作成する
スポンサー
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。