# Qiskit IBM Runtime MCP Server

Connects AI assistants to IBM Quantum computing hardware via Qiskit IBM Runtime. Useful for running quantum circuits, tracking jobs, and inspecting backend calibration in chat.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 41
- Author: Qiskit
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/Qiskit/mcp-servers/tree/HEAD/qiskit-ibm-runtime-mcp-server
- Updated: 2026-10-08
- HTML: https://affpapa.org/en/nevibecode/mcp/qiskit-ibm-runtime-mcp-server

## What it does

This server connects AI coding agents to IBM Quantum backends through the Model Context Protocol. It allows assistants to run quantum programs, inspect physical device properties, and retrieve measurement counts without manual notebook setup.

Execution relies on EstimatorV2 for expectation values and SamplerV2 for probability distributions. The server analyzes hardware calibration data to find optimal qubit chains for linear layouts. You can also monitor active jobs, read final outputs, or abort queue entries directly.

You need Python 3.10 or higher and an active IBM Quantum API token. Omitting the `QISKIT_IBM_RUNTIME_MCP_INSTANCE` variable forces a slow discovery pass across all account instances, delaying startup.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `QISKIT_IBM_TOKEN`, `QISKIT_IBM_RUNTIME_MCP_INSTANCE` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env QISKIT_IBM_TOKEN=<QISKIT_IBM_TOKEN> --env QISKIT_IBM_RUNTIME_MCP_INSTANCE=<QISKIT_IBM_RUNTIME_MCP_INSTANCE> --transport stdio qiskit-ibm-runtime-mcp-server -- uvx qiskit-ibm-runtime-mcp-server
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from qiskit-ibm-runtime-mcp-server <command>

### Codex

**Platform CLI**
```bash
codex mcp add qiskit-ibm-runtime-mcp-server --env QISKIT_IBM_TOKEN=<QISKIT_IBM_TOKEN> --env QISKIT_IBM_RUNTIME_MCP_INSTANCE=<QISKIT_IBM_RUNTIME_MCP_INSTANCE> -- uvx qiskit-ibm-runtime-mcp-server
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from qiskit-ibm-runtime-mcp-server <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "qiskit-ibm-runtime-mcp-server": {
            "command": "uvx",
            "args": [
                "qiskit-ibm-runtime-mcp-server"
            ],
            "env": {
                "QISKIT_IBM_TOKEN": "<QISKIT_IBM_TOKEN>",
                "QISKIT_IBM_RUNTIME_MCP_INSTANCE": "<QISKIT_IBM_RUNTIME_MCP_INSTANCE>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from qiskit-ibm-runtime-mcp-server <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "qiskit-ibm-runtime-mcp-server": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "qiskit-ibm-runtime-mcp-server"
            ],
            "env": {
                "QISKIT_IBM_TOKEN": "<QISKIT_IBM_TOKEN>",
                "QISKIT_IBM_RUNTIME_MCP_INSTANCE": "<QISKIT_IBM_RUNTIME_MCP_INSTANCE>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from qiskit-ibm-runtime-mcp-server <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e QISKIT_IBM_TOKEN=<QISKIT_IBM_TOKEN> -e QISKIT_IBM_RUNTIME_MCP_INSTANCE=<QISKIT_IBM_RUNTIME_MCP_INSTANCE> qiskit-ibm-runtime-mcp-server uvx qiskit-ibm-runtime-mcp-server
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from qiskit-ibm-runtime-mcp-server <command>

## When to use it
- run quantum circuits with EstimatorV2 and SamplerV2 primitives
- find the least busy IBM Quantum backend
- identify optimal qubit chains using hardware calibration data
- track execution status and fetch completed job results
- cancel pending quantum jobs from the queue

## Example prompts
- Show the least busy IBM Quantum backend and fetch its current calibration parameters.
- Find the best 5-qubit chain on the least busy device for a linear experiment.
- Check the status of my recent quantum job and print the measurement counts if it finished.

## Similar
- [qiskit](https://affpapa.org/en/nevibecode/skills/qiskit.md) — skill · 1900 installs
- [cudaq-guide](https://affpapa.org/en/nevibecode/skills/cudaq-guide.md) — skill · 2500 installs
- [pennylane](https://affpapa.org/en/nevibecode/skills/pennylane.md) — skill · 1900 installs
- [Dense Evolution](https://affpapa.org/en/nevibecode/mcp/dense-evolution.md) — MCP server · ★ 19
- [dt-js-runtime](https://affpapa.org/en/nevibecode/skills/dt-js-runtime.md) — skill · 1700 installs
- [cloudflare-workers-runtime-apis](https://affpapa.org/en/nevibecode/skills/cloudflare-workers-runtime-apis.md) — skill · 311 installs

From the same set: [qiskit/mcp-servers](https://affpapa.org/en/nevibecode/by/qiskit/mcp-servers.md) — 6 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
