Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
MCP server for AI Transpiler IBM Quantum services
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
QISKIT_IBM_TOKEN「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"qiskit-ibm-transpiler": {
"command": "uvx",
"args": [
"qiskit-ibm-transpiler-mcp-server"
],
"env": {
"QISKIT_IBM_TOKEN": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add qiskit-ibm-transpiler --env QISKIT_IBM_TOKEN=your-value -- uvx qiskit-ibm-transpiler-mcp-server動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"qiskit-ibm-transpiler": {
"command": "uvx",
"args": [
"qiskit-ibm-transpiler-mcp-server"
],
"env": {
"QISKIT_IBM_TOKEN": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"qiskit-ibm-transpiler": {
"type": "stdio",
"command": "uvx",
"args": [
"qiskit-ibm-transpiler-mcp-server"
],
"env": {
"QISKIT_IBM_TOKEN": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント Qiskit で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:QISKIT_IBM_TOKEN
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.4.1)がレジストリに届いたのは4 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Winecellarbuilders
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Find the team for your wine room.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
MCP server for Qiskit transpiler. It supports AI routing, AI Clifford synthesis, AI Linear Function synthesis, AI Permutation synthesis, and AI Pauli Network synthesis using QASM 3.0 as the input/output tools format.
The easiest way to install is via pip:
pip install qiskit-ibm-transpiler-mcp-server
This project recommends using uv for virtual environments and dependencies management. If you don't have uv installed, check out the instructions in https://docs.astral.sh/uv/getting-started/installation/
# This will create a virtual environment and install dependencies
uv sync
uv run qiskit-ibm-transpiler-mcp-server
The server will start and listen for MCP connections.
For frameworks that don't support async operations:
from qiskit_ibm_transpiler_mcp_server.qta import (
ai_routing, ai_clifford_synthesis ) from qiskit_ibm_transpiler_mcp_server.utils import setup_ibm_quantum_account
from dotenv import load_dotenv
load_dotenv()
qasm_string = "your_qasm_circuit_here"
setup_ibm_quantum_account.sync()
routed_circuit = ai_routing.sync(circuit=qasm_string, backend_name="backend_name")
routed_qpy_string = routed_circuit['circuit_qpy'] print(f"Routed circuit (QPY): {routed_qpy_string}")
clifford_synthesized_circuit = ai_clifford_synthesis.sync( circuit=routed_qpy_string, backend_name="backend_name", circuit_format="qpy" # Specify QPY input format ) print(f"Clifford synthesized circuit (QPY): {clifford_synthesized_circuit['circuit_qpy']}")
from qiskit_mcp_server import qpy_to_qasm3 conversion = qpy_to_qasm3(clifford_synthesized_circuit['circuit_qpy']) if conversion["status"] == "success": print(f"Human-readable circuit:\n{conversion['qasm3']}")
LangChain Integration Example:
Note: To run LangChain examples you will need to install the dependencies:
`bash
pip install langchain langchain-mcp-adapters langchain-openai python-dotenv
`
import asyncio
import os from langchain.agents import create_agent from langchain_mcp_adapters.client import MultiServerMCPClient from langchain_mcp_adapters.tools import load_mcp_tools from langchain_openai import ChatOpenAI from dotenv import load_dotenv
load_dotenv()
SAMPLE_CLIFFORD = """ OPENQASM 3.0; include "stdgates.inc"; qubit[3] q; h q[0]; cx q[0], q[1]; s q[2]; """
async def main():
mcp_client = MultiServerMCPClient({ "qiskit-ibm-transpiler": { "transport": "stdio", "command": "qiskit-ibm-transpiler-mcp-server", "args": [], "env": { "QISKIT_IBM_TOKEN": os.getenv("QISKIT_IBM_TOKEN", ""), }, } })
async with mcp_client.session("qiskit-ibm-transpiler") as session: tools = await load_mcp_tools(session)
llm = ChatOpenAI(model="gpt-5.2", temperature=0) agent = create_agent(llm, tools)
response = await agent.ainvoke(f"Synthesize this Clifford circuit for ibm_fez: {SAMPLE_CLIFFORD}") print(response)
asyncio.run(main())
For more LLM providers (Anthropic, Google, Ollama, Watsonx) and detailed examples including Jupyter notebooks, see the examples/ directory.
sh source .venv/bin/activate sh npx @modelcontextprotocol/inspector uv run qiskit-ibm-transpiler-mcp-server MCP Inspector is up and running at http://localhost:6277 _Note: to launch the MCP inspector you will need to have
nodeandnpm_
Configure IBM Quantum account with API token.
setup_ibm_quantum_account_tool(token: Optional[str] = None, channel: str = "ibm_quantum_platform")Parameters:
token (optional): IBM Quantum API token. If not provided, the function will:QISKIT_IBM_TOKEN environment variable~/.qiskit/qiskit-ibm.jsonchannel: Service channel (default: "ibm_quantum_platform")Returns: Setup status and account information
Note: If you already have saved credentials or have set the QISKIT_IBM_TOKEN environment variable, you can call this function without parameters or skip it entirely and use other functions directly.
Route input quantum circuit. It inserts SWAP operations on a circuit to make two-qubits operations compatible with a given coupling map that restricts the pair of qubits on which operations can be applied. You may want to execute routing pass before any other AI transpiling synthesis pass.
ai_routing(
circuit: str, backend_name: str, optimization_level: int = 1, layout_mode: str = "optimize", optimization_preferences: Literal[ "n_cnots", "n_gates", "cnot_layers", "layers", "noise" ] | list[Literal["n_cnots", "n_gates", "cnot_layers", "layers", "noise"]] | None = None, local_mode: bool = True, coupling_map: list[list[int]] | None = None, circuit_format: str = "qasm3" )
**Parameters:**
circuit: quantum circuit as QASM 3.0 string or base64-encoded QPYbackend_name: Qiskit Runtime Service backend name on which to map the input circuit synthesisoptimization_level (optional): The potential optimization level to apply during the transpilation process. Valid values are [1,2,3], where 1 is the least optimization (and fastest), and 3 the most optimization (and most time-intensive)layout_mode (optional): Specifies how to handle the layout selection. It can assume the following values:"keep": This respects the layout set by the previous transpiler passes. Typically used when the circuit must be run on specific qubits of the device. It often produces worse results because it has less room for optimization"improve": It is useful when you have a good initial guess for the layout"optimize": This is the default mode. It works best for general circuits where you might not have good layout guesses. This mode ignores previous layout selectionsoptimization_preferences (optional): Indicates what you want to reduce through optimization: number of cnot gates (n_cnots), number of gates (n_gates), number of cnots layers (cnot_layers), number of layers (layers), and/or noise (noise)local_mode (optional): determines where the AIRouting pass runs. If False, AIRouting runs remotely through the Qiskit Transpiler Service. If True, the package tries to run the pass in your local environment with a fallback to cloud mode if the required dependencies are not foundcoupling_map (optional): List of qubit pairs representing the backend topology. If provided, overrides the backend's coupling map. Useful for targeting a specific subset of qubitscircuit_format (optional): Format of the input circuit ("qasm3" or "qpy"). Defaults to "qasm3"Returns: Dictionary with:
status: "success" or "error"circuit_qpy: Base64-encoded QPY formatoriginal_circuit: Metrics for the input circuit (num_qubits, depth, size, two_qubit_gates)optimized_circuit: Metrics for the optimized circuit (num_qubits, depth, size, two_qubit_gates)improvements: Calculated improvements (depth_reduction, two_qubit_gate_reduction)Note: Currently, only the local mode execution is available
Transpile a quantum circuit using a hybrid pass manager that combines Qiskit's heuristic optimization with AI-powered transpiler passes. This provides end-to-end transpilation in a single unified pipeline.
hybrid_ai_transpile(
circuit: str, backend_name: str, ai_optimization_level: int = 3, optimization_level: int = 3, ai_layout_mode: str = "optimize", initial_layout: list[int] | None = None, coupling_map: list[list[int]] | None = None, circuit_format: str = "qasm3" )
**Parameters:**
circuit: quantum circuit as QASM 3.0 string or base64-encoded QPYbackend_name: Target IBM Quantum backend (e.g., 'ibm_boston', 'ibm_fez')ai_optimization_level (optional): Optimization level (1-3) for AI components. Higher values yield better results but require more computational resourcesoptimization_level (optional): Optimization level (1-3) for heuristic components in the PassManagerai_layout_mode (optional): Specifies how the AI routing component handles layout selection:"keep": Respects the layout set by previous transpiler passes"improve": Uses prior layouts as starting points for optimization"optimize": Default; ignores previous layout selections for general circuits. Note: If initial_layout is provided with 'optimize', it automatically converts to 'improve' to leverage the user-provided layoutinitial_layout (optional): List of physical qubit indices specifying where to place virtual qubits. For example, [0, 1, 5, 6, 7] maps virtual qubit 0 to physical qubit 0, virtual qubit 1 to physical qubit 1, etc.coupling_map (optional): List of qubit pairs representing the backend topology. If provided, overrides the backend's coupling map. Useful for targeting a specific subset of qubitscircuit_format (optional): Format of the input circuit ("qasm3" or "qpy"). Defaults to "qasm3"Returns: Dictionary with:
status: "success" or "error"circuit_qpy: Base64-encoded QPY formatoriginal_circuit: Metrics for the input circuit (num_qubits, depth, size, two_qubit_gates)optimized_circuit: Metrics for the optimized circuit (num_qubits, depth, size, two_qubit_gates)improvements: Calculated improvements (depth_reduction, two_qubit_gate_reduction)Synthesis for Clifford circuits (blocks of H, S, and CX gates). Currently, up to nine qubit blocks.
ai_clifford_synthesis(
circuit: str, backend_name: str, replace_only_if_better: bool = True, local_mode: bool = T
冒頭だけを表示しています。続きはリポジトリで読めます