MIRASTACK Redfish MCP Server について
MIRASTACK Redfish MCP Serverは、DMTF Redfish準拠のBMCに対し、インフラ運用や診断のための制御されたインターフェースを提供します。既定では読み取り専用ツールのみを登録し、書き込みは明示的な有効化後も確認までドライランで扱います。
主な機能
- 01DMTF Redfish準拠BMCに対応
- 02stdioとstreamable-httpに対応
- 03既定は読み取り専用、段階的な書き込み設定
- 04確認前に書き込みをドライラン
- 05複数エンドポイントを設定
活用シーン
- 01BMCのサービス情報や機器情報を取得
- 02サーバーの電源状態や起動状態を診断
- 03確認後にBMCの設定を変更
- 04複数のエンドポイントでRedfish機器を管理
MCP 対応
stdioとstreamable-http経由で、MCPクライアントにRedfishツールを提供します。利用可能なツールセットは書き込みモードと設定で決まり、変更操作は確認されるまで適用されません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx mirastack-redfish-mcpMIRASTACK_REDFISH_ENDPOINTSシークレットJSON payload or YAML/JSON path defining one or more Redfish endpoints.MIRASTACK_REDFISH_DEFAULT_ENDPOINTDefault endpoint name used when no endpoint argument is provided.MIRASTACK_REDFISH_HOSTSingle-endpoint Redfish base URL, for example https://192.0.2.10.MIRASTACK_REDFISH_USERNAMEシークレットSingle-endpoint Redfish username.MIRASTACK_REDFISH_PASSWORDシークレットSingle-endpoint Redfish password.MIRASTACK_REDFISH_PASSWORD_FILEシークレットPath to a file containing the single-endpoint Redfish password.MIRASTACK_REDFISH_VERIFY_SSLTLS verification. Defaults to true. Set false only for lab endpoints with controlled certificates.MIRASTACK_REDFISH_CA_BUNDLEPath to a custom CA bundle used for TLS verification.MIRASTACK_REDFISH_TIMEOUT_SECHTTP timeout in seconds for Redfish requests.MIRASTACK_REDFISH_AUTH_MODEシークレットAuth mode: auto, session, or basic.MIRASTACK_REDFISH_WRITE_MODEWrite tier: off (default), power, config, or full. Mutating tools are not registered unless raised.MIRASTACK_REDFISH_TOOL_PROFILETool profile: core, standard, or full.MIRASTACK_REDFISH_TOOLSETSOptional comma-separated toolset override.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
25掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
MIRASTACK Redfish MCP サーバー
DMTF Redfish 準拠の BMC 向けガバナンス機能を備えた MCP サーバーです。iDRAC、iLO、XCC、 OpenBMC、および互換性のある実装に対応しています。デフォルトでは読み取り専用です。書き込みモードを明示的に引き上げない限り、変更を行う ツールは登録されず、すべての変更操作は確認されるまでドライランとして実行されます。
MIRASTACK LABS が開発しました。Apache-2.0。
主な特長
- 公式 Python MCP SDK を介した MCP
stdioおよびstreamable-httpトランスポート。 - DMTF Redfish-Publications から抽出したスキーマメタデータ。リリース
2026.1に固定されています。 - プロトコルに準拠した Redfish の動作:セッション認証、ETag/
If-Match、202タスクのポーリング、レジストリに基づくエラー表示。 - 安全な書き込み制御:段階的な登録と、ドライランを優先した確認。
このプロジェクトの目的
BMC は OS 起動前のアウトオブバンド制御プレーンであり、通常のホストレベルの root アクセスを超える権限を持ちます。強力なガードレールなしに自律型エージェントへ BMC アクセスを許可すると、電源、起動、ファームウェア、アカウントの各境界にまたがる重大な影響範囲のリスクが直ちに生じます。このサーバーでは、危険な操作を意図的な書き込みモードへの昇格の後に限定し、適用前に意図を確認できるよう、すべての変更操作をデフォルトでドライランにします。その結果、常時操作可能なリモートコントロールではなく、ガバナンス機能を備えた運用インターフェースを実現します。モデルは診断を迅速に進められますが、権限の移行は明示的に行われ、監査可能になります。
インストール
pip install mirastack-redfish-mcp
60 秒で試す(ハードウェア不要)
ローカル DMTF モックアップを実行し、読み取り専用モードで MCP サーバーを起動して、読み取りツールを呼び出します。
docker compose -f examples/mockup/docker-compose.yml up -d
export MIRASTACK_REDFISH_HOST="http://127.0.0.1:18000"
export MIRASTACK_REDFISH_USERNAME="<bmc-username>"
export MIRASTACK_REDFISH_PASSWORD="<bmc-password>"
export MIRASTACK_REDFISH_WRITE_MODE="off"
mirastack-redfish-mcp --transport stdio
ツール呼び出しの例:
{"tool":"service_info","arguments":{}}
出力の想定形式:
{
"endpoint": "default",
"service_root": {
"@odata.id": "/redfish/v1"
},
"capabilities": {
"redfish_version": "..."
}
}
検出モード
サーバーはエンドポイントの認証情報がゼロの状態でも起動し、読み取り専用の
ツール検出を提供します(MCP スキャナーによる検証とメタデータのインデックス作成に対応)。このモードでは、
スキーマ/コーパスに基づくツールは引き続き動作しますが、BMC に接続するツールは、必要な環境変数を示す
設定エラーを返します。必要な環境変数は MIRASTACK_REDFISH_HOST、
MIRASTACK_REDFISH_USERNAME、MIRASTACK_REDFISH_PASSWORD(または
MIRASTACK_REDFISH_PASSWORD_FILE)、複数エンドポイントの設定では
MIRASTACK_REDFISH_ENDPOINTS です。
検出モードは、エンドポイントファイルが存在しない場合にも適用されます。MIRASTACK_REDFISH_ENDPOINTS
が存在しないパスを指している場合(コンテナプラットフォームや MCP ディレクトリ
スキャナーがプレースホルダーを渡す際に発生します)、サーバーは stderr にそのパスを示す警告を記録し、
エンドポイントがゼロの状態で起動します。一方、ファイルが存在するものの、読み取りまたは解析ができない場合は、
引き続き起動時にエラーとなります。また、単一エンドポイントの設定が不完全な場合(たとえば、
MIRASTACK_REDFISH_HOST は指定されているが MIRASTACK_REDFISH_PASSWORD が指定されていない場合)もエラーとなるため、入力ミスによって
設定済みのデプロイメントが気付かないうちにダウングレードされることはありません。
クイックスタート(ハードウェア、stdio)
export MIRASTACK_REDFISH_HOST="https://192.0.2.10"
export MIRASTACK_REDFISH_USERNAME="<bmc-username>"
export MIRASTACK_REDFISH_PASSWORD="<bmc-password>"
export MIRASTACK_REDFISH_WRITE_MODE="off"
mirastack-redfish-mcp --transport stdio
クイックスタート(streamable-http)
mirastack-redfish-mcp \
--transport streamable-http \
--host 127.0.0.1 \
--port 8000 \
--path /mcp \
--stateless-http \
--json-response
警告:
0.0.0.0にバインドすると、このポートに接続できるすべてのホストから BMC を制御できるようになります。リスナーが、信頼できる管理ネットワーク上の認証プロキシの背後にある場合を除き、ループバックにバインドしてください。
設定
標準の環境変数
MIRASTACK_REDFISH_* 変数を使用します。
MIRASTACK_REDFISH_HOSTMIRASTACK_REDFISH_USERNAMEMIRASTACK_REDFISH_PASSWORDまたはMIRASTACK_REDFISH_PASSWORD_FILE- 任意:
MIRASTACK_REDFISH_VERIFY_SSL(デフォルト:true)、MIRASTACK_REDFISH_CA_BUNDLE、MIRASTACK_REDFISH_TIMEOUT_SEC、MIRASTACK_REDFISH_AUTH_MODE
複数エンドポイントの設定
MIRASTACK_REDFISH_ENDPOINTS にインライン JSON、または YAML/JSON ファイルを設定します。
{
"idrac-prod": {
"base_url": "https://192.0.2.10",
"username": "<bmc-username>",
"password_file": "/run/secrets/idrac_password",
"verify_ssl": true,
"read_only": true
},
"ilo-lab": {
"base_url": "https://192.0.2.11",
"username": "<bmc-username>",
"password": "<bmc-password>",
"verify_ssl": true
}
}
ラボ専用のオーバーライド(本番環境では非推奨):
{
"ilo-lab": {
"verify_ssl": false
}
}
デフォルトのエンドポイントを選択するには、MIRASTACK_REDFISH_DEFAULT_ENDPOINT を設定します。
互換性
従来の接頭辞なしの REDFISH_* 環境変数は引き続きフォールバックとして読み込まれます。各変数につき一度、非推奨の警告が表示されます。
ツール登録プロファイル
MIRASTACK_REDFISH_TOOL_PROFILE=full(デフォルト):書き込みモードで許可されているすべてのツールセットを使用します。MIRASTACK_REDFISH_TOOL_PROFILE=standard:未加工の書き込み用エスケープハッチを除外します。MIRASTACK_REDFISH_TOOL_PROFILE=core:厳選された、小規模モデル向けの15ツール構成です。MIRASTACK_REDFISH_TOOLSETS(カンマ区切り)を指定すると、プロファイルを明示的なツールセットで上書きします。
MIRASTACK_REDFISH_WRITE_MODE=full における、公開されるツールスキーマのペイロードの実測値は、core が20,795バイト(15ツール)、standard が43,669バイト(33ツール)、full が54,745バイト(40ツール)です。python3 scripts/check_tool_metadata.py --sizes で再測定できます。
書き込みの安全性モデル
MIRASTACK_REDFISH_WRITE_MODE=off(デフォルト):変更を伴うツールは登録されません。MIRASTACK_REDFISH_WRITE_MODE=power:電源/リセット/ブート制御ツールが登録されます。MIRASTACK_REDFISH_WRITE_MODE=config:config 階層のツールが登録されます。MIRASTACK_REDFISH_WRITE_MODE=full:full 階層のツールが登録されます。
変更を伴う各ツールは confirm を受け取ります。
confirm=false:next_stepを含むドライランの応答(dry_run=true、applied=false)を返します。confirm=true:アクションが適用されます。
エンドポイントごとの read_only=true はグローバルな書き込みモードを上書きし、そのエンドポイントでのすべての書き込みをブロックします。
階層の仕様
- 電源階層:
set_power_state、set_boot_override、reset_manager、cancel_task - 設定階層:
set_bios_attributes、eject_virtual_media、redfish_patch、redfish_post、redfish_delete、redfish_invoke_action - Full 階層:
insert_virtual_media、clear_logs、manage_account、simple_update、reset_to_defaults
開発
python3 -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
make build-index
make verify
スキーマインデックスは、再現性を確保するために特定のリリースに固定した DMTF Redfish-Publications から生成されます。更新手順については、CONTRIBUTING.md を参照してください。
レジストリへの公開に関する注意事項
server.jsonには、MCP Registry 用の PyPI および OCI パッケージ定義が含まれています。- この README には必須マーカー
mcp-name: ai.mirastacklabs/mirastack-redfish-mcpが記載されています。 - Docker イメージには
io.modelcontextprotocol.server.nameOCI ラベルが含まれています。 - Homebrew 経由で公式のパブリッシャー CLI をインストールします:
brew install mcp-publisher。 - レジストリへの公開に
npx mcp-publisherまたはpip install mcp-publisherを使用しないでください。
コンテナおよびディレクトリへのデプロイ
公開済みのイメージでは、コンソールスクリプトが PATH に配置されるため、docker run ... mirastack-redfish-mcp --transport stdio をそのまま使用できます。
一部の MCP ディレクトリは、リポジトリの Dockerfile を無視し、ソースから独自のイメージを生成します。生成されたビルドで uv sync によるインストールが行われると、プロジェクトは /app/.venv の仮想環境に配置され、コンソールスクリプトは PATH に含まれません。そのため、名前だけを指定して起動するランチャーは ENOENT エラーで失敗します。代わりに、ランチャーには絶対パスを指定してください。
{
"buildSteps": ["uv sync"],
"cmdArguments": ["/app/.venv/bin/mirastack-redfish-mcp", "--transport", "stdio"]
}
プラットフォームが作成しない MIRASTACK_REDFISH_ENDPOINTS のプレースホルダーパスを指定しても問題ありません。サーバーは探索モードで起動し、読み取り専用のツール構成を提供します。
貢献
GitHub は公開されている読み取り専用ミラーです。GitHub での Issue は歓迎しますが、GitHub で作成されたプルリクエストはマージできません。受け付けている貢献方法については、CONTRIBUTING.md を参照してください。
セキュリティ
SECURITY.md を参照してください。
ライセンス
Apache-2.0。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。