mcpField
Q
Qiskit Gym MCP Server

Qiskit Gym MCP Server

ローカル
github.com科学・教育453 週間前に更新

Qiskit Gym MCP Server について

Qiskit Gym MCP サーバーは、強化学習による量子回路合成を MCP ツールとして提供します。量子コンパイルの研究者や開発者を対象とし、IBM ハードウェアのトポロジープリセットとバックグラウンド学習に対応します。

主な機能

  1. 01PPO または AlphaZero による強化学習モデルの学習
  2. 02置換、線形関数、Clifford の三種類の合成
  3. 03IBM ハードウェアやグリッドのトポロジープリセット
  4. 04IBM フェイクバックエンドの正確な結合マップの取得
  5. 05ステータス確認とモデル保存に対応したバックグラウンド学習

活用シーン

  1. 013x3 グリッドトポロジー向け Clifford 合成モデルの学習
  2. 02IBM Nighthawk のサブトポロジーを対象とした一括学習
  3. 03長時間の学習中に別の作業を継続

MCP 対応

MCP サーバーとして、環境・学習・合成・モデル・結合マップの各ツールを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"qiskit-qiskit-gym": {
"command": "uvx",
"args": [
"qiskit-gym-mcp-server"
]
}
}
}
起動コマンドuvx qiskit-gym-mcp-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiqiskit-gym-mcp-server0.4.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Qiskit Gym MCP サーバー

MCP Registry

qiskit-gym を使用して、強化学習ベースの量子回路合成機能を提供する Model Context Protocol(MCP)サーバーです。

機能

  • RL モデルのトレーニング:強化学習エージェントをトレーニングして、最適な量子回路を合成します
  • バックグラウンドトレーニング:ポーリングに対応したバックグラウンドスレッドで、長時間のトレーニングを実行します
  • 3 種類の合成:
    • 置換:SWAP ゲートを最小限に抑えた量子ビットのルーティング
    • 線形関数:線形ブール関数の CNOT 合成
    • Clifford:カスタムゲートセットによる最適な Clifford 回路合成
  • ハードウェア対応:IBM Heron、Nighthawk、および一般的なグリッド/線形トポロジーのプリセット
  • IBM の正確なトポロジー:IBM Quantum のフェイクバックエンドから正確な結合マップを取得できます(オフラインで利用でき、認証情報は不要です)
  • サブトポロジーの抽出:ハードウェア結合マップから連結サブグラフを抽出し、対象を絞ったトレーニングを行えます
  • モデルの永続化:トレーニング済みモデルの保存、読み込み、管理
  • TensorBoard との統合:TensorBoard でトレーニングの進捗を監視できます

インストール

pip install qiskit-gym-mcp-server

または、ソースからインストールします。

git clone https://github.com/Qiskit/mcp-servers
cd mcp-servers/qiskit-gym-mcp-server
pip install -e .

クイックスタート

Claude Desktop の設定

Claude Desktop の設定ファイル(~/Library/Application Support/Claude/claude_desktop_config.json)に追加します。

{
  "mcpServers": {
    "qiskit-gym": {
      "command": "qiskit-gym-mcp-server"
    }
  }
}
ワークフローの例
User: "Train a model to synthesize Clifford circuits on a 3x3 grid topology"

AI Agent:
1. create_clifford_env_tool(num_qubits=9, preset="grid_3x3")  # -> env_id
2. start_training_tool(env_id, algorithm="ppo", num_iterations=200)  # -> session_id, model_id
3. save_model_tool(session_id, model_name="clifford_3x3_v1")  # -> saved to disk
User: "Train on all 6-qubit subtopologies from IBM Nighthawk"

AI Agent:
1. extract_subtopologies_tool(preset="ibm_nighthawk", num_qubits=6)  # -> list of subtopologies
2. For each subtopology:
   - create_clifford_env_tool(num_qubits=6, coupling_map=subtopology["edges"])
   - start_training_tool(env_id, algorithm="ppo", num_iterations=100)
   - save_model_tool(session_id, model_name=f"nighthawk_6q_{i}")
User: "Train a model using the exact topology of IBM Fez backend"

AI Agent:
1. get_fake_backend_coupling_map_tool(backend_name="fake_fez")  # -> exact 156-qubit Heron topology
2. extract_subtopologies_tool(edges=coupling_map["edges"], num_qubits=5)  # -> 5-qubit subtopologies
3. For each subtopology:
   - create_permutation_env_tool(num_qubits=5, coupling_map=subtopology["edges"])
   - start_training_tool(env_id, algorithm="ppo", num_iterations=100)
User: "Train a model in the background so I can do other things"

AI Agent:
1. create_clifford_env_tool(num_qubits=6, preset="grid_2x3")  # -> env_id
2. start_training_tool(env_id, algorithm="ppo", num_iterations=500, background=True)  # -> session_id (returns immediately)
3. (User can now ask other questions or the agent can do other work)
4. get_training_status_tool(session_id)  # -> check progress
5. wait_for_training_tool(session_id, timeout=600)  # -> blocks until complete, returns model_id
6. save_model_tool(session_id, model_name="clifford_6q_v1")

ツールリファレンス

環境管理
ツール説明
create_permutation_env_toolSWAP ルーティング用の PermutationGym を作成
create_linear_function_env_toolCNOT 合成用の LinearFunctionGym を作成
create_clifford_env_toolカスタムゲートセットで CliffordGym を作成
list_environments_toolアクティブな環境を一覧表示
get_environment_info_tool環境の詳細を取得
delete_environment_tool環境を削除
トレーニング
ツール説明
start_training_toolRL トレーニング(PPO または AlphaZero)を開始します。background=True に対応
wait_for_training_toolバックグラウンドトレーニングの完了を待機
batch_train_environments_tool複数の環境をトレーニング
get_training_status_toolトレーニングの進捗とメトリクスを取得
stop_training_toolトレーニングセッションを停止
list_training_sessions_toolすべてのトレーニングセッションを一覧表示
合成
ツール説明
synthesize_permutation_tool最適な SWAP 回路を生成
synthesize_linear_function_tool最適な CNOT 回路を生成
synthesize_clifford_tool最適な Clifford 回路を生成
モデル管理
ツール説明
save_model_toolトレーニング済みモデルをディスクに保存
load_model_toolディスクからモデルを読み込み
list_saved_models_toolディスク上のモデルを一覧表示
list_loaded_models_toolメモリ内のモデルを一覧表示
delete_model_toolモデルを削除
get_model_info_toolモデルの詳細を取得
結合マップ
ツール説明
create_coupling_map_toolカスタム結合マップを作成
extract_subtopologies_toolハードウェアから N 量子ビットのサブトポロジーを抽出
list_subtopology_shapes_toolサブトポロジーの形状(ライン、グリッドなど)を一覧表示
get_fake_backend_coupling_map_toolフェイク IBM バックエンドから正確なトポロジーを取得(認証情報は不要)
list_available_fake_backends_toolオフラインでのトポロジー取得に利用できるすべてのフェイクバックエンドを一覧表示
ユーティリティツール
ツール説明
generate_random_permutation_toolテスト用のランダムな置換を生成します
generate_random_linear_function_toolテスト用のランダムな線形関数を生成します
generate_random_clifford_toolテスト用のランダムなクリフォード要素を生成します
convert_qpy_to_qasm3_toolQPY 回路を人間が読みやすい QASM3 に変換します
convert_qasm3_to_qpy_toolQASM3 回路を QPY 形式に変換します

ハードウェアプリセット

プリセット量子ビット数トポロジー説明
ibm_heron_r1133Heavy-hexIBM Heron r1 プロセッサ
ibm_heron_r2156Heavy-hexIBM Heron r2 プロセッサ
ibm_nighthawk12010x12 gridIBM Nighthawk(Heron と比べて深さが 600% 向上)
grid_3x39Grid3x3 の正方形グリッド
grid_5x525Grid5x5 の正方形グリッド
linear_55Line5 量子ビットの線形チェーン
linear_1010Line10 量子ビットの線形チェーン

リソース

URI説明
qiskit-gym://workflowsまずはこちら - ステップごとのワークフローとクイックスタートガイド
qiskit-gym://presets/coupling-maps利用可能なハードウェアプリセット
qiskit-gym://algorithmsPPO、AlphaZero のドキュメント
qiskit-gym://policiesBasicPolicy、Conv1dPolicy のドキュメント
qiskit-gym://environments環境タイプのドキュメント
qiskit-gym://training/sessionsアクティブなトレーニングセッション
qiskit-gym://models読み込み済みのモデル
qiskit-gym://server/configサーバー設定

設定

環境変数:

# Model storage directory (default: ~/.qiskit-gym/models)
QISKIT_GYM_MODEL_DIR=~/.qiskit-gym/models

# TensorBoard logs (default: ~/.qiskit-gym/runs)
QISKIT_GYM_TENSORBOARD_DIR=~/.qiskit-gym/runs

# Training limits (0 = no limit, default)
# QISKIT_GYM_MAX_ITERATIONS=10000  # Uncomment to set a limit
QISKIT_GYM_MAX_QUBITS=15
QISKIT_GYM_MAX_SEARCHES=10000

開発

# Install with dev dependencies
pip install -e ".[all]"

# Run tests
./run_tests.sh

# Or manually
uv run pytest tests/ -v
uv run ruff check src tests
uv run mypy src

依存関係

  • qiskit-gym - 量子回路合成用の強化学習環境
  • FastMCP - MCP サーバーフレームワーク
  • Qiskit - 量子コンピューティングフレームワーク
  • qiskit-ibm-runtime - IBM Quantum アクセスおよびフェイクバックエンド

ライセンス

Apache 2.0 - 詳細は LICENSE を参照してください。

貢献

貢献のガイドラインについては、CONTRIBUTING.md を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。