qiskit-sim-mcp

qiskit-sim-mcp

This MCP server enables Claude Desktop to create, visualize, and simulate quantum circuits using Qiskit and Qiskit Aer, with support for preset circuits, custom QASM, and noise modeling.

Category
Visit Server

README

qiskit-sim-mcp

A Model Context Protocol (MCP) server that lets Claude Desktop create, visualize, and simulate quantum circuits using Qiskit and Qiskit Aer.

What It Does

Once connected to Claude Desktop, you can have natural conversations like:

  • "Create a Bell state and simulate it with 1024 shots"
  • "Show me the GHZ circuit diagram"
  • "Run the Bell state with high noise and explain what changed"
  • "Create a custom circuit from this QASM string"

Claude will call the underlying tools automatically — no manual tool invocation needed.

Features

  • 3 Tools: create_circuit, visualize_circuit, run_simulation
  • 5 Preset Circuits: Bell state, GHZ-3, Superposition, Deutsch-Jozsa, Random-4
  • Custom QASM: Accepts any valid OpenQASM 2.0 string
  • Noise Modeling: Ideal, low noise (p=0.001), high noise (p=0.01) via depolarizing error
  • 1 Resource: resource://noise-presets — lists available noise configurations
  • 1 Prompt: simulate_walkthrough — guided conversation template

Requirements

Setup

1. Clone the Repository

git clone <repo-url>
cd qiskit-sim-mcp

2. Install Dependencies

pip install -e .

This installs mcp[cli], qiskit, and qiskit-aer into your Python environment.

3. Verify the Installation

python -c "
import asyncio
from quantum_mcp_demo.server import mcp

tools    = asyncio.run(mcp.list_tools())
resources = asyncio.run(mcp.list_resources())
prompts  = asyncio.run(mcp.list_prompts())

print('Tools:',     [t.name for t in tools])
print('Resources:', [r.uri  for r in resources])
print('Prompts:',   [p.name for p in prompts])
"

Expected output:

Tools: ['create_circuit', 'visualize_circuit', 'run_simulation']
Resources: [AnyUrl('resource://noise-presets')]
Prompts: ['simulate_walkthrough']

4. Test with MCP Inspector (Optional)

uv run mcp dev src/quantum_mcp_demo/server.py

Open http://localhost:6274 in your browser. Use the Tools tab to call each tool manually before connecting to Claude Desktop.

5. Connect to Claude Desktop

Find your Claude Desktop config file:

OS Path
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
Windows %APPDATA%\Claude\claude_desktop_config.json

Add this entry inside the mcpServers object:

{
  "mcpServers": {
    "qiskit-sim-mcp": {
      "command": "/opt/anaconda3/bin/python",
      "args": [
        "-m",
        "quantum_mcp_demo.server"
      ]
    }
  }
}

Note: Replace /opt/anaconda3/bin/python with your actual Python path. Run which python to find it.

6. Restart Claude Desktop

Quit Claude Desktop completely (Cmd+Q on macOS), then reopen it. In a new conversation, the hammer icon (šŸ”Ø) in the chat input confirms MCP tools are loaded.

Usage Examples

Bell State Simulation

"Create a Bell state circuit, show me the diagram, then simulate it 1024 times with ideal and high noise."

Claude will call:

  1. create_circuit(preset="bell") → gets a circuit_id
  2. visualize_circuit(circuit_id=...) → shows the H + CNOT gate diagram
  3. run_simulation(circuit_id=..., shots=1024, noise_preset="ideal") → ~50% |00⟩, ~50% |11⟩
  4. run_simulation(circuit_id=..., shots=1024, noise_preset="high_noise") → degraded counts, |01⟩ and |10⟩ appear

Custom QASM Circuit

"Run this circuit: OPENQASM 2.0; include "qelib1.inc"; qreg q[2]; creg c[2]; h q[0]; cx q[0],q[1]; measure q -> c;"

Claude parses the QASM string and runs it through the same simulation pipeline.

Noise Comparison

"Compare the GHZ state under ideal vs high noise — what does the noise do to the entanglement?"

Project Structure

src/quantum_mcp_demo/
ā”œā”€ā”€ server.py              # MCP server entry point
ā”œā”€ā”€ circuits/
│   ā”œā”€ā”€ presets.py         # 5 named preset circuits
│   └── store.py           # In-memory circuit storage (UUID-keyed)
ā”œā”€ā”€ tools/
│   ā”œā”€ā”€ create_circuit.py  # Tool: create from preset or QASM
│   ā”œā”€ā”€ visualize.py       # Tool: HTML diagram + gate JSON
│   └── simulate.py        # Tool: AerSimulator + noise modeling
ā”œā”€ā”€ resources/
│   └── noise_presets.py   # Resource: noise configuration list
ā”œā”€ā”€ prompts/
│   └── walkthrough.py     # Prompt: guided simulation conversation
└── utils/
    ā”œā”€ā”€ serialization.py   # numpy → Python int conversion
    └── errors.py          # MCP error response builder

Preset Circuits

Preset Qubits Demonstrates
bell 2 Entanglement — 50/50 split on |00⟩ and |11⟩
ghz_3 3 Multi-qubit entanglement
superposition 1 Equal superposition via Hadamard
deutsch_jozsa 3 Quantum algorithm — interference
random_4 4 Noise stress test — fixed-seed random gates

Noise Presets

Preset Depolarizing p Description
ideal none Perfect simulation
low_noise 0.001 Realistic near-term device
high_noise 0.01 Aggressive noise — visible degradation

Troubleshooting

Claude Desktop doesn't show the hammer icon

  • Quit and fully relaunch Claude Desktop after editing the config
  • Check the config JSON is valid (no trailing commas)
  • Verify the Python path: which python

python -m quantum_mcp_demo.server fails

  • Make sure you ran pip install -e . from the project root
  • Confirm Python version: python --version (needs 3.13+)

Port conflict when running MCP Inspector

kill -9 $(lsof -t -i :6274) 2>/dev/null; kill -9 $(lsof -t -i :6277) 2>/dev/null

Simulation returns unexpected counts

  • Shot count mismatches are caught automatically and returned as isError: true
  • Try reducing shots (e.g. 512) if you see errors

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured