Qiskit MCP Server
Provides tools for building, executing, and analyzing quantum circuits using Qiskit, including creating circuits, adding gates, running simulations, analyzing state vectors, computing density matrices, optimizing circuits, and implementing quantum algorithms such as QFT and variational circuits.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Qiskit MCP ServerCreate a Bell state circuit with 2 qubits and run it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Qiskit MCP Server
Unofficial Model Context Protocol (MCP) server that enables LLMs to build and execute quantum circuits using Qiskit.
Features
The server provides 13 MCP tools for comprehensive quantum circuit operations:
Core Tools (8)
1. create_quantum_circuit
Create a new quantum circuit with specified qubits and classical bits.
Parameters:
num_qubits(int): Number of quantum bitsnum_classical_bits(int, optional): Number of classical bits (defaults to num_qubits)name(string, optional): Custom name for the circuit (auto-generated if not provided)
2. add_gates
Add quantum gates to an existing circuit.
Parameters:
circuit_name(string): Name of the circuit to modifygates(array): List of gate operations
Supported gates:
h: Hadamard gate -{'type': 'h', 'qubits': [0]}x: Pauli-X gate -{'type': 'x', 'qubits': [0]}y: Pauli-Y gate -{'type': 'y', 'qubits': [0]}z: Pauli-Z gate -{'type': 'z', 'qubits': [0]}cx: CNOT gate -{'type': 'cx', 'qubits': [0, 1]}measure: Measure specific qubit -{'type': 'measure', 'qubits': [0], 'classical_bit': 0}measure_all: Measure all qubits -{'type': 'measure_all'}
3. run_circuit
Execute a quantum circuit on the BasicSimulator.
Parameters:
circuit_name(string): Name of the circuit to runshots(int, optional): Number of measurement shots (default: 1000)
Returns: JSON with measurement results and counts
4. get_circuit_info
Get detailed information about a circuit.
Parameters:
circuit_name(string): Name of the circuit
Returns: JSON with circuit properties (qubits, depth, gate counts, etc.)
5. visualize_circuit
Get a text visualization of the quantum circuit.
Parameters:
circuit_name(string): Name of the circuit
Returns: ASCII art representation of the circuit
6. visualize_circuit_mermaid
Generate a Mermaid flowchart diagram of the quantum circuit.
Parameters:
circuit_name(string): Name of the circuit to visualize
Returns: Mermaid flowchart syntax representing the quantum circuit
7. list_circuits
List all created circuits with basic information.
Returns: JSON with all circuit names and their properties
Advanced Tools (6)
8. analyze_statevector
Analyze the quantum state vector of a circuit.
Parameters:
circuit_name(string): Name of the circuit to analyze
Returns: JSON with probabilities, amplitudes, and state analysis
9. compute_density_matrix
Compute and analyze the density matrix including purity and entanglement.
Parameters:
circuit_name(string): Name of the circuit to analyze
Returns: JSON with purity, entropy, and entanglement information
10. optimize_circuit
Optimize a quantum circuit using Qiskit transpiler passes.
Parameters:
circuit_name(string): Name of the circuit to optimizeoptimization_level(int): Optimization level 0-3
Returns: JSON with optimization results and performance metrics
11. add_advanced_gates
Add advanced quantum gates beyond basic H, X, Y, Z, CX.
Parameters:
circuit_name(string): Name of the circuit to modifygates(array): List of advanced gate operations
Supported advanced gates:
Rotation gates:
rx,ry,rz,rxx,ryy,rzzUniversal gate:
uClifford gates:
s,sdg,t,tdgswap: SWAP gate
12. create_variational_circuit
Create a variational quantum circuit for quantum machine learning.
Parameters:
num_qubits(int): Number of qubitsnum_layers(int): Number of layers (default: 1)entanglement(string): Entanglement pattern ('full', 'linear', 'circular')name(string, optional): Custom name for the circuit
Returns: Success message with circuit details and parameter count
13. implement_qft
Implement Quantum Fourier Transform circuit.
Parameters:
num_qubits(int): Number of qubits for QFTinverse(bool): Whether to implement inverse QFT (default: false)name(string, optional): Custom name for the circuit
Returns: Success message with QFT circuit details
Related MCP server: qiskit-sim-mcp
Examples and Documentation
π Comprehensive Examples
We provide extensive examples and prompts to help you get started:
Examples Folder - Complete collection of examples and prompts
Examples README - Detailed guide with learning paths
π Test Scripts
Basic Operations Tests - Test cases for core 6 tools
Advanced Operations Tests - Test cases for advanced 6 tools
Quantum Algorithms Tests - Famous quantum algorithms
π¬ Ready-to-Use Prompts (130+ Examples)
Basic Circuit Operations - Beginner-friendly prompts
Advanced Circuit Operations - State analysis & optimization
Quantum Algorithms - Algorithm implementations
Educational Examples - Learning-focused prompts
Quick Start Examples
Creating a Bell State
Create a 2-qubit quantum circuit and make a Bell state by applying H to qubit 0 and CNOT from 0 to 1, then measure both qubits and run with 1000 shots.Advanced State Analysis
I have a Bell state circuit. Analyze its statevector to show the probabilities, then compute the density matrix to verify it's entangled with purity=1.0.Circuit Optimization
Create a circuit with redundant gates (X followed by X), then optimize it at level 2 and show me the improvement metrics.Variational Quantum Circuit
Create a variational quantum circuit with 4 qubits, 2 layers, and full entanglement for quantum machine learning. Show me how many parameters it has.Running the Server
Standalone
# Install dependencies
uv sync
# Start the MCP server
uv run python main.pyClaude Desktop Integration
Add this configuration to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"qiskit-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/qiskit-mcp-server",
"run",
"main.py"
]
}
}
}Replace /path/to/qiskit-mcp-server with the actual path to this project directory.
After adding the configuration, restart Claude Desktop. You can then ask Claude to:
"Create a quantum Bell state circuit"
"Build a Grover search algorithm for 2 qubits"
"Analyze the statevector of my circuit to show entanglement"
"Optimize my circuit and show performance improvements"
"Create a variational circuit for quantum machine learning"
"Implement a 3-qubit Quantum Fourier Transform"
Testing and Validation
Run Test Scripts
# Test basic functionality
uv run python examples/test_scripts/test_basic_operations.py
# Test advanced features
uv run python examples/test_scripts/test_advanced_operations.py
# Test quantum algorithms
uv run python examples/test_scripts/test_quantum_algorithms.pyDirect Testing (Legacy)
uv run python test_direct.py # If availableDependencies
qiskit (β₯2.1.1): Quantum computing framework with quantum_info, circuit.library, and transpiler modules
fastmcp (β₯2.10.6): MCP server implementation
numpy: Required for numerical computations in state analysis
Quantum Computing Concepts Supported
Core Quantum Mechanics
Superposition: Create quantum superposition with Hadamard gates
Entanglement: Create entangled states with CNOT and advanced gates
Measurement: Collapse quantum states to classical bits
Quantum Interference: Demonstrate constructive/destructive interference
Advanced Quantum Operations
Parameterized Gates: RX, RY, RZ rotations with arbitrary angles
Two-Qubit Rotations: RXX, RYY, RZZ for direct entanglement creation
Universal Quantum Computation: Complete gate sets for any quantum algorithm
Clifford Operations: S, T gates for quantum error correction
Quantum State Analysis
Statevector Analysis: Complete quantum state information with probabilities
Density Matrix: Mixed state analysis, purity, and entropy calculations
Entanglement Detection: Partial trace entropy to verify quantum correlations
State Tomography: Comprehensive quantum state characterization
Quantum Algorithms
Search Algorithms: Grover's quadratic speedup for database search
Decision Algorithms: Deutsch-Jozsa exponential advantage
Fourier Analysis: Quantum Fourier Transform for period finding
Variational Algorithms: VQE, QAOA for near-term quantum advantage
Phase Estimation: Extract eigenvalues and phases from quantum operators
Circuit Optimization & Analysis
Transpiler Integration: Multi-level optimization (0-3) with performance metrics
Circuit Depth Analysis: Critical path analysis and parallelization
Gate Count Optimization: Redundancy removal and commutation analysis
Resource Estimation: Quantum resource requirements for algorithms
Quantum Machine Learning
Variational Circuits: Parameterized ansΓ€tze with different entanglement patterns
Quantum Feature Maps: Encoding classical data into quantum states
Hybrid Algorithms: Classical-quantum optimization loops
The server enables LLMs to interactively build quantum circuits by describing the desired quantum operations in natural language, which get translated into specific gate sequences, analyzed for quantum properties, optimized for performance, and executed on quantum simulators with comprehensive results analysis.
Project Structure
qiskit-mcp-server/
βββ main.py # MCP server with 13 quantum tools
βββ pyproject.toml # Dependencies and project config
βββ examples/ # Comprehensive examples and documentation
β βββ README.md # Learning guide and examples overview
β βββ test_scripts/ # Test cases and demonstrations
β β βββ test_basic_operations.py # Core tools testing
β β βββ test_advanced_operations.py # Advanced features testing
β β βββ test_quantum_algorithms.py # Algorithm implementations
β βββ prompts/ # 130+ ready-to-use prompt examples
β βββ basic_circuit_operations.md # Beginner prompts
β βββ advanced_circuit_operations.md # State analysis prompts
β βββ quantum_algorithms.md # Algorithm prompts
β βββ educational_examples.md # Learning prompts
βββ README.md # This fileGetting Help
Examples: Start with the examples folder for comprehensive guides
Qiskit Documentation: https://qiskit.org/documentation/
Quantum Computing Learning: IBM Qiskit Textbook
Issues: Report bugs and request features via GitHub issues
Contributing
Contributions are welcome! Areas for expansion:
Additional quantum algorithms (Shor's, HHL, quantum simulation)
Noise modeling and error mitigation tools
Advanced visualization capabilities
Hardware backend integration
Educational content and examples
License
This project is open source. See license file for details.
Available Tools
13 toolsadd_advanced_gatesA
Add advanced quantum gates to a circuit beyond basic H, X, Y, Z, CX.
Args: circuit_name: Name of the circuit to modify gates: List of advanced gate operations Supported gates: 'rx', 'ry', 'rz', 'rxx', 'ryy', 'rzz', 'u', 'swap', 's', 'sdg', 't', 'tdg'
Returns: Success message with applied gates
| Name | Required | Description | Default |
|---|---|---|---|
| circuit_name | Yes | ||
| gates | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. It states modification of a circuit and return of a success message, but lacks details on side effects (e.g., overwriting existing gates, prerequisites like circuit existence) or authorization.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with clear Args and Returns sections, no redundant information, and front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the open schema for gates (array of objects with additionalProperties), the description is incomplete: it does not explain the expected object format or provide examples. The output schema exists but is not detailed in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaning by naming the circuit_name parameter and listing supported gate operations for the gates array. However, it does not specify the structure of individual gate objects (e.g., required fields for qubits and parameters).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it adds advanced quantum gates beyond basic H, X, Y, Z, CX, and lists supported gates. It differentiates from the sibling 'add_gates' which likely handles basic gates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for advanced gates by listing supported types and contrasting with basic gates. It does not explicitly state when not to use, e.g., for basic gates use add_gates, but the implication is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_gatesA
Add quantum gates to a circuit.
Args: circuit_name: Name of the circuit to modify gates: List of gate operations, each with 'type' and 'qubits' keys Supported gates: 'h', 'x', 'y', 'z', 'cx', 'measure', 'measure_all'
Returns: Success message with applied gates
| Name | Required | Description | Default |
|---|---|---|---|
| circuit_name | Yes | ||
| gates | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states a success message is returned but does not disclose validation rules, error handling, or that the gates object allows additional properties beyond 'type' and 'qubits'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise, with clear sections for Args and Returns. It could be more structured (e.g., bullet points) but is functional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists (not shown), the description only mentions 'Success message' without details on the response format or potential errors. For a tool with two parameters, it covers the basics but lacks depth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds crucial meaning: circuit_name is the name of the circuit, and gates is a list with 'type' and 'qubits' keys and supported gate types listed. This goes beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add quantum gates to a circuit' and lists supported gates (h, x, y, z, cx, measure, measure_all), distinguishing it from the sibling 'add_advanced_gates' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The list of supported gates provides implicit guidance that this tool is for basic operations, but there is no explicit statement of when to use this vs. 'add_advanced_gates' or other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_statevectorA
Analyze the quantum state vector of a circuit.
Args: circuit_name: Name of the circuit to analyze
Returns: JSON string with state vector analysis including probabilities and amplitudes
| Name | Required | Description | Default |
|---|---|---|---|
| circuit_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It states the return format (JSON with probabilities and amplitudes) but does not explicitly confirm that the tool is read-only or safe. It adds some context but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with Args and Returns sections, making it clear and easy to parse. It could be slightly more concise, but it efficiently conveys necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to detail return values, but it already mentions probabilities and amplitudes. It is complete for the tool's complexity, though could contrast with related tools like compute_density_matrix.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds meaning: 'Name of the circuit to analyze' clarifies the single parameter beyond its schema name. This effectively compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Analyze the quantum state vector of a circuit' with a specific verb and resource. It distinguishes from sibling tools like run_circuit and visualize_circuit by focusing on state vector analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like compute_density_matrix or run_circuit. The description implies usage for analysis but lacks when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_density_matrixA
Compute and analyze the density matrix of a quantum circuit.
Args: circuit_name: Name of the circuit to analyze
Returns: JSON string with density matrix analysis including purity and entropy
| Name | Required | Description | Default |
|---|---|---|---|
| circuit_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool is compute-only and specifies return values (purity, entropy). However, it does not state whether the circuit must exist or if any side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences) and front-loaded with the core purpose. There is no redundant or extraneous information; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter and the existence of an output schema, the description covers the essential input and output details. It could mention error handling or missing circuit behavior, but is otherwise adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining that 'circuit_name' is the name of the circuit to analyze. This adds necessary semantic meaning beyond the schema's simple type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes and analyzes the density matrix of a quantum circuit. It distinguishes itself from sibling tools like analyze_statevector by specifying the specific object (density matrix) rather than statevector.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives (e.g., analyze_statevector). It also lacks any prerequisites or conditions for usage, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_quantum_circuitA
Create a new quantum circuit with auto-generated unique name.
Args: num_qubits: Number of quantum bits (must be an integer) num_classical_bits: Number of classical bits (must be an integer, defaults to num_qubits if not provided) name: Optional custom name for the circuit (auto-generated if not provided)
Returns: Success message with circuit details and generated name
| Name | Required | Description | Default |
|---|---|---|---|
| num_qubits | Yes | ||
| num_classical_bits | No | ||
| name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It explains return values and default behaviors for parameters. However, it does not disclose side effects (e.g., storage, whether circuit is saved) or permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a clear summary line, Args section, and Returns section. Every sentence provides necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the return explanation is adequate. However, the description lacks usage context relative to sibling tools and does not mention if the circuit is stored or how it integrates with other tools. Still, it is complete for a simple creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but description compensates fully. It explains all three parameters, including the default behavior for num_classical_bits and auto-generation for name. This adds significant value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new quantum circuit with auto-generated name. It distinguishes from sibling 'create_variational_circuit' implicitly by not mentioning variational parameters, but could be more explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs siblings like create_variational_circuit or add_gates. The description does not mention prerequisites or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_variational_circuitA
Create a variational quantum circuit (ansatz) for quantum machine learning.
Args: num_qubits: Number of qubits num_layers: Number of repetitions of the ansatz entanglement: Entanglement strategy ('full', 'linear', 'circular') name: Optional custom name for the circuit
Returns: Success message with circuit details
| Name | Required | Description | Default |
|---|---|---|---|
| num_qubits | Yes | ||
| num_layers | No | ||
| entanglement | No | full | |
| name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It mentions inputs and returns but lacks details on side effects, authentication, rate limits, or whether the circuit persists. For a creation tool, this is insufficient behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The docstring format with Args and Returns is clear and efficient. Each sentence earns its place. Minor redundancy (e.g., 'Success message with circuit details' could be shorter).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters (1 required), no annotations, and an output schema (not shown but mentioned), the description covers parameter meanings and return type. It lacks usage context and behavioral details, but it is complete enough for a straightforward creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description compensates by explaining each parameter's role, including defaults (num_layers=1, entanglement='full'). It adds significant meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it creates a variational quantum circuit (ansatz) for quantum machine learning, with a specific verb and resource. It distinguishes from sibling tools like 'create_quantum_circuit' by specifying 'variational' and 'ansatz'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for variational circuits but does not provide explicit when-to-use or when-not-to-use guidance, nor does it contrast with alternatives like create_quantum_circuit. Usage is implied but not clearly articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_circuit_infoA
Get information about a quantum circuit.
Args: circuit_name: Name of the circuit
Returns: JSON string with circuit information
| Name | Required | Description | Default |
|---|---|---|---|
| circuit_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It states the return type (JSON string with circuit information) but does not disclose side effects, error handling, or permissions. For a read operation, it is minimally adequate but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear structure (Args/Returns) and no redundant information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple and an output schema exists (though not shown), the description lacks details about what 'circuit information' includes (e.g., qubits, gates, depth). Also, no mention of preconditions or error cases. It is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds only the meaning of 'circuit_name' as 'Name of the circuit'. This clarifies the parameter beyond the schema's title ('Circuit Name') but is very brief. With a single parameter, this is baseline adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get information') and the resource ('a quantum circuit'). It distinguishes from sibling tools like 'list_circuits' (which likely lists circuit names) and 'analyze_statevector' (which analyzes state outputs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need details of a specific circuit by name, but it does not explicitly state when to use this tool versus alternatives like 'analyze_statevector' or 'visualize_circuit'. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
implement_qftB
Implement Quantum Fourier Transform circuit.
Args: num_qubits: Number of qubits for QFT inverse: Whether to implement inverse QFT name: Optional custom name for the circuit
Returns: Success message with QFT circuit details
| Name | Required | Description | Default |
|---|---|---|---|
| num_qubits | Yes | ||
| inverse | No | ||
| name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full burden. It only states that the tool implements a QFT circuit and returns a success message. It does not disclose whether it modifies an existing circuit, creates a new one, or any side effects or permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured as a clear docstring with Args and Returns sections. It is concise with no unnecessary words. The first sentence immediately states the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks important context such as how the circuit is created (e.g., does it start a new circuit or append to existing?), and the return value is vaguely described as 'Success message'. Given the output schema exists, the return description is acceptable but the overall behavioral context is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides meaningful explanations for all 3 parameters: 'num_qubits' is number of qubits, 'inverse' is for inverse QFT, 'name' is optional custom name. This adds value beyond the schema, which only has titles. Schema coverage is 0%, so the description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name 'implement_qft' and description 'Implement Quantum Fourier Transform circuit.' clearly state the action (implement) and resource (QFT circuit). It distinguishes from siblings like 'create_quantum_circuit' or 'add_gates' which are generic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description does not mention prerequisites, context, or when not to use. It simply states what it does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_circuitsA
List all created circuits.
Returns: JSON string with circuit names and basic info
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It states 'list all created circuits' and returns basic info, implying a read operation. However, it lacks details on scope (all circuits globally?), pagination, or performance implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are concise and front-loaded with purpose. Could potentially be condensed, but no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with no parameters and an output schema, the description is adequate. It specifies the return type and content generally, though 'basic info' is vague.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema description coverage is 100% trivially. Baseline is 3; the description adds no parameter info but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'circuits', distinguishing it from sibling tools that add, run, or visualize circuits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not guidance. The description implies this tool is for listing all circuits, but no alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
optimize_circuitB
Optimize a quantum circuit using Qiskit transpiler passes.
Args: circuit_name: Name of the circuit to optimize optimization_level: Optimization level (0-3, where 0 is no optimization)
Returns: Success message with optimization results and new circuit name
| Name | Required | Description | Default |
|---|---|---|---|
| circuit_name | Yes | ||
| optimization_level | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states optimization via transpiler passes but does not disclose side effects (e.g., whether original circuit is modified), details on transpilation passes, or what optimization_levels entail beyond 0-3. The return message mentions 'optimization results' but lacks specifics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using a single sentence and clear parameter list. It is front-loaded with the main purpose and avoids unnecessary detail. However, the main sentence could be more structured (e.g., using bullet points for clarity).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of circuit optimization, the description covers basic purpose and parameters but lacks prerequisites, error conditions, and details on what 'optimization results' include. The presence of an output schema reduces the burden for return values, but overall completeness is adequate with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description adds important context: circuit_name is the circuit to optimize, optimization_level ranges 0-3 with 0 meaning no optimization. This adds meaning beyond the schema's type and default. However, it does not explain what each level does in terms of passes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (optimize), resource (quantum circuit), and method (using Qiskit transpiler passes). It distinguishes from sibling tools like run_circuit or create_quantum_circuit by specifying optimization. The parameter descriptions further clarify its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus siblings, no prerequisites (e.g., circuit must exist), and no conditions for use. It does not mention alternatives or when optimization is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_circuitB
Run a quantum circuit on the simulator.
Args: circuit_name: Name of the circuit to run shots: Number of measurement shots
Returns: JSON string with measurement results
| Name | Required | Description | Default |
|---|---|---|---|
| circuit_name | Yes | ||
| shots | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It reveals it returns a JSON string with measurement results, but does not disclose side effects, performance characteristics, or whether it modifies the circuit. For a simulation tool, this is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using a clear 'Args:' and 'Returns:' format. Every sentence serves a purpose, with the main action stated first. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only 2 simple parameters and an implied output schema, the description is adequate but not thorough. It does not mention that the circuit must exist, error handling, or edge cases. It is minimally complete for a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists parameters with brief descriptions matching the schema but adds no additional meaning or constraints. Schema coverage is 0%, and the description does not elaborate on 'circuit_name' (e.g., must exist) or 'shots' (range, valid values).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: 'Run a quantum circuit on the simulator.' It uses a specific verb ('run') and resource ('quantum circuit'), distinguishing it from sibling tools like 'create_quantum_circuit' (creation) and 'list_circuits' (listing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'on the simulator', implying it's for simulation rather than hardware, but does not explicitly state when to use this tool vs alternatives like 'analyze_statevector' or 'compute_density_matrix'. No prerequisites or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
visualize_circuitB
Get a text visualization of the quantum circuit.
Args: circuit_name: Name of the circuit to visualize
Returns: Text representation of the circuit
| Name | Required | Description | Default |
|---|---|---|---|
| circuit_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden. It states it returns a 'Text representation' but does not disclose whether it is read-only, any required permissions, or side effects. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for purpose, followed by a docstring-style Args/Returns. Every sentence adds value with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and an output schema exists. The description explains the return value. However, it lacks usage context and behavioral details, making it adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. The 'Args' section adds 'Name of the circuit to visualize', which provides basic meaning but lacks details like allowed formats or examples. Insufficient depth.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'Get a text visualization of the quantum circuit,' which specifies the verb 'Get' and the resource 'text visualization of the quantum circuit'. It distinguishes from the sibling 'visualize_circuit_mermaid' by emphasizing 'text' rather than mermaid format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'visualize_circuit_mermaid' or any prerequisites. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
visualize_circuit_mermaidA
Generate a Mermaid flowchart diagram of the quantum circuit.
Args: circuit_name: Name of the circuit to visualize
Returns: Mermaid flowchart syntax representing the quantum circuit
| Name | Required | Description | Default |
|---|---|---|---|
| circuit_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the return type (Mermaid syntax) but does not explicitly state that the operation is read-only. However, given the name and context, it is still fairly clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with only two sentences plus structured Args/Returns sections. Every sentence adds value, and there is no redundant or vague wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool, the description covers the return format adequately. However, it does not mention that the circuit must already exist, which is a key prerequisite. Still, the presence of an output schema reduces the need for extensive return details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides a basic description 'Name of the circuit to visualize' but lacks additional details like validity requirements or formatting rules. This is minimal improvement over no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear action 'Generate a Mermaid flowchart diagram' and the resource 'quantum circuit'. It distinguishes itself from the sibling tool 'visualize_circuit' by explicitly naming the output format 'Mermaid', providing precise purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the sibling 'visualize_circuit' or others. The description does not mention any prerequisites (e.g., circuit must exist) or contextual cues for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
13 tool updates
v0.1.0- First observed
add_advanced_gates - First observed
add_gates - First observed
analyze_statevector - First observed
compute_density_matrix - First observed
create_quantum_circuit - First observed
create_variational_circuit - First observed
get_circuit_info - First observed
implement_qft - First observed
list_circuits - First observed
optimize_circuit - First observed
run_circuit - First observed
visualize_circuit - First observed
visualize_circuit_mermaid
TDQS
Each tool targets a distinct operation: circuit creation (general vs variational), gate addition (basic vs advanced), analysis (state vector vs density matrix), visualization (text vs mermaid), etc. No two tools have overlapping purposes.
All tool names follow a consistent verb_noun pattern in snake_case, e.g., 'add_gates', 'analyze_statevector', 'create_quantum_circuit'. The naming is predictable and uniform across the set.
With 13 tools covering creation, modification, analysis, simulation, and visualization, the count is well-scoped for a quantum computing SDK. Each tool serves a clear purpose without redundancy.
The tool surface covers the full lifecycle of circuit creation, modification, analysis, and simulation. Minor gaps exist, such as the absence of a tool to delete or reset circuits, but core workflows are well-supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
QuLab MCP remote server (Streamable HTTP) for computational science and lab tools.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn educational implementation of a Model Context Protocol server that demonstrates how to build a functional MCP server integrating with various LLM clients.2MIT
- FlicenseAqualityDmaintenanceThis 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.3-
- AlicenseNot gradedqualityCmaintenanceMCP server exposing Qiskit quantum computing functionality through the Model Context Protocol. Enables LLMs to create, manipulate, and execute quantum circuits via standardized MCP tools and resources.MIT
- FlicenseNot gradedqualityCmaintenanceMCP server wrapping Google's Stim stabilizer circuit simulator. Wire it up to an LLM and you can build and sample circuits through conversation.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/barvhaim/qiskit-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server