ibm-quantum
Click on "Deploy 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., "@ibm-quantumlist my quantum backends then simulate a Bell pair with 1024 shots"
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.
IBM Quantum agent tools
A local MCP server that lets an AI agent use IBM Quantum through typed tools. It uses IBM's Qiskit Runtime SDK and the official MCP Python SDK. It can run from Codex or another MCP client that supports local stdio servers.
The API key stays in the original credential file. The server reads only its apikey field, keeps it in process memory, and sends it through IBM's authenticated SDK connection. Other JSON fields are ignored. No credential value is stored in source, tool arguments, tool responses, or the MCP configuration. Do not delete the credential file while this setup is in use.
Quick start without IBM credentials
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.lock
.venv/bin/python -m pip install --no-deps -e .
.venv/bin/python examples/mcp_client.pyOn Windows use .venv\Scripts\python.exe instead. Installation downloads dependencies; the example itself runs locally and submits no IBM job. For tests, install .[test] in the same environment and run python -m pytest -q with that environment's Python.
Related MCP server: Sentinel Core Agent
Local installation for IBM access
Python 3.11+ is required. With this folder in a permanent location, run:
python3 setup_local.py --api-key-file /absolute/path/to/apikey.json --register-codexThe script creates .venv, installs the pinned dependencies, generates .mcp.json with absolute paths, and registers ibm-quantum through codex mcp add. It prefers uv if available and otherwise uses Python's venv and pip. Omit --register-codex to generate configuration for another MCP client. Optional --instance CRN fixes the instance to use. Run setup again if you move the folder or credential file.
Start a new Codex task after registration. Example request:
Use the IBM Quantum tools to list my quantum computers, then simulate a Bell pair locally with 1024 shots.
For another MCP client, merge the generated .mcp.json entry into its MCP server configuration. Run python examples/mcp_client.py with this environment's Python for a working agent-side client example.
No Codex plugin manifest is included. The setup helper generates a local .mcp.json; rerun setup on a new machine. Direct MCP registration does not require a plugin marketplace entry. The server communicates over stdio and is not a public HTTP service.
Tools
Tool | Purpose |
| Inspect credential configuration presence and configured limits without authentication. |
| Authenticate and discover accessible IBM instances. |
| List QPUs, availability, qubit counts, and queue lengths. |
| Run a circuit locally, up to 20 qubits, without an IBM call. |
| Transpile a circuit for a selected QPU and inspect depth/gates. |
| Preview or submit a circuit and measure all qubits. |
| Preview or submit one weighted Pauli-sum expectation value. |
| List recent jobs, with pagination and pending-state filtering. |
| Read status and retrieve counts or expectation values. |
| Request cancellation of one unfinished job. |
When exactly one instance is accessible it is selected automatically. With multiple instances, pass an instance CRN returned by quantum_instances, or configure IBM_QUANTUM_INSTANCE. Backend names must come from discovery; available systems can change.
Circuit format
Pass JSON, not Python code. Indices start at zero and gate angles are numeric radians. Circuits contain up to 256 logical qubits and 10,000 gates. Supported gates are:
id x y z h s sdg t tdg sx sxdg
rx ry rz p u
cx cy cz ch swap ccx cswap
cp crx cry crz rxx ryy rzz barrierControl qubits precede target qubits. u takes three parameters, rotation/phase gates take one, and the other gates take none. Distinct gate qubits and argument counts are validated. barrier accepts one or more qubits. This initial version supports fully bound, unitary circuits with final measurements. It does not accept arbitrary Python, QASM files, dynamic control flow, reset, custom classical-register layouts, or parameter sweeps.
Call quantum_simulate with:
{
"circuit": {
"num_qubits": 2,
"gates": [
{"gate": "h", "qubits": [0]},
{"gate": "cx", "qubits": [0, 1]}
]
},
"shots": 1024,
"seed": 1234
}Counts use bitstrings with qubit 0 at the right. Sampler automatically measures every qubit into a register named meas. For quantum_run_estimator, supply observable, for example [{"pauli":"ZZ","coefficient":1.0}] for a two-qubit circuit. Pauli labels also place qubit 0 at the right. The tool maps observables to the transpiled physical-qubit layout.
Hardware workflow
Discover the instance and backend.
Simulate a small circuit locally.
Call
quantum_run_samplerorquantum_run_estimatorwith the circuit, backend, and defaultdry_run: trueto preview.When hardware execution is requested, repeat with
dry_run: false. This consumes IBM quantum usage and can incur charges under the selected plan.Keep the returned
job_id. Usequantum_jobto poll it and obtain results. Do not submit again while waiting. On an ambiguous submission error, inspectquantum_jobsand IBM's dashboard before retrying; there is no submission idempotency guarantee.
Default job limits are 8,192 sampler shots and 60 QPU execution seconds. The default requested shot count is 1,024. Estimator shots is the default per measurement configuration, so total estimator shots can be larger. The runtime limit caps quantum execution time; it is not a dollar budget, monthly budget, or queue timeout. These per-job limits do not restrict the number of jobs an agent may submit. The tool exposes mutation annotations to the client and defaults submission tools to preview, but client/user authorization remains the agent host's responsibility.
Server environment variable | Meaning |
| Path to an IBM JSON export containing |
| Alternative raw credential supplied by the process environment; takes precedence. |
| Optional default instance CRN. |
| Per-call shot setting ceiling; default 8192, maximum 1000000. |
| Per-job QPU execution ceiling; default 60, maximum 10800. |
If you lower the runtime ceiling below 60, also pass a corresponding max_execution_seconds to submission calls. Restart the server after changing credentials or environment configuration. Backend operational does not always mean a system is currently processing jobs; consult its status message.
quantum_job defaults to no queue wait. wait_seconds permits up to 30 seconds of SDK polling, separate from HTTP request/download timeouts. Results include at most 20 PUBs, the requested number of highest-count bitstrings (default 256), and at most 2,000 values in array fields. Truncation is reported. Parameter-sweep register shapes from jobs created elsewhere are reported without aggregating counts. For full results from large or externally created jobs, use the Qiskit Python API.
Validation
.venv/bin/python -m pip install 'pytest>=8,<9'
.venv/bin/python -m pytest tests -q
.venv/bin/python examples/mcp_client.pyTests use local simulation, fake IBM services, and a real MCP stdio subprocess. They do not use your API key or submit hardware jobs. No live IBM verification report is included, and this release review did not authenticate with IBM. See RELEASE_READINESS.md for the checks actually performed and remaining blockers.
References
SamplerV2 and EstimatorV2
Pinned to the maintained MCP 1.x API to keep FastMCP/ClientSession compatibility explicit. This is a local integration, not an IBM-endorsed product.
Status, provenance, and license
Experimental local integration, version 0.1.0. This repository began as a source-only preservation snapshot on 2026-10-29 of an AI-assisted local project. Original development history and live-service evidence were not imported. The retained snapshot is not evidence of independent authorship, scientific validation, or hardware performance. There are no bundled datasets, model weights, or credentials.
This project is distributed under the MIT License, added with owner authorization on 2026-10-29. The owner stated that all project code was created by AI and authorized MIT licensing. This records the owner’s assertion and permission, not an independent determination of copyright ownership or third-party provenance. Dependencies retain their own licenses; dependency pins do not establish ownership of this project. IBM and Qiskit names identify the service and SDKs used; this project is not endorsed by IBM.
Preview/transpilation still needs IBM access to retrieve backend information. Only configuration inspection and local simulation work without credentials. Per-job execution and shot ceilings are not a global spend cap: repeated submissions can accumulate usage and charges. Keep authorization controls in the MCP host. Review tool output before sharing it, since discovered instance names, CRNs, and job metadata can identify account resources.
See the release checklist before changing repository visibility.
Available Tools
10 toolsquantum_backendsBRead-onlyIdempotent
List accessible QPUs, availability, queue lengths, qubits, and supported gates for an instance.
| Name | Required | Description | Default |
|---|---|---|---|
| instance | No | ||
| min_num_qubits | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds that the result includes availability, queue lengths, qubits, and gates, which is useful context, but it does not disclose pagination, refresh behavior, or rate-limit constraints.
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?
A single front-loaded sentence listing the resource and its key attributes. There is no filler or repetition, and the important scoping phrase ('for an instance') is placed at the end without obscuring the main action.
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?
An output schema exists and rich annotations cover the safety profile, so those do not need repeating. However, with two optional parameters at 0% schema description coverage, the description does not fully equip an agent to use the min_num_qubits filter or understand the instance parameter.
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 explain both parameters. It mentions 'instance' but does not clarify whether it is optional, what a valid instance identifier looks like, or that min_num_qubits filters the returned backends. The parameter meaning is therefore largely left to inference.
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?
States a specific verb ('List') and resource ('accessible QPUs'), and enumerates the returned attributes. It does not explicitly differentiate itself from sibling tools such as quantum_instances, but the purpose is clear.
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 phrase 'for an instance' implies scoping but gives no explicit guidance about when to use this tool versus quantum_instances, quantum_configuration, or other siblings. There are no exclusions or alternative-routing instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quantum_cancel_jobADestructiveIdempotent
Request cancellation of the specified unfinished IBM job. Already consumed QPU time remains consumed.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| instance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the destructive, idempotent, open-world, and non-read-only nature of the tool. The description adds meaningful cost context beyond annotations by warning that already consumed QPU time remains consumed.
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 two sentences, front-loaded with the core action and followed by an important caveat. There is no wasted 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?
The annotations and output schema cover much of the safety and return-value context, and the description adds a useful QPU cost warning. Still, it does not document the optional instance parameter or explain cancellation semantics such as whether the request is asynchronous.
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 explain the parameters. It only refers vaguely to a 'specified unfinished IBM job' and does not explain the required job_id or the optional instance parameter.
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 a specific action and target: cancellation of an unfinished IBM job. This distinguishes it from sibling job listing, detail, simulation, and run tools, though it does not explicitly name an alternative.
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 word 'unfinished' implies the tool applies only to active jobs, giving some usage context. However, there is no explicit when-to-use guidance, no when-not guidance, and no reference to sibling alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quantum_configurationARead-onlyIdempotent
Show credential presence and configured limits without reading or returning the API key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as read-only, idempotent, non-destructive, and closed-world. The description adds meaningful security context beyond annotations: it confirms that credential presence is reported without reading or returning the API key, which is important for choosing this tool safely.
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 a single front-loaded sentence with no redundant or filler content. Every phrase contributes to clarifying scope or security behavior.
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 zero parameters, an output schema, and rich annotations, the description is complete enough for an agent to invoke the tool correctly. It explains the purpose and the key security constraint without needing to describe return structure.
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 tool has zero parameters and the schema is fully described, so the baseline is 4. The description does not need to explain parameter semantics in this case.
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 names a specific verb ('Show') and concrete resources ('credential presence' and 'configured limits'), making the tool's purpose immediately clear. It does not explicitly distinguish itself from any sibling, but its configuration/credential focus is naturally distinct from the job, backend, and instance tools.
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?
Usage is implied by the description: an agent can infer this is the tool to call when it needs to check whether credentials exist or what limits are configured. There are no explicit when-to-use or when-not-to-use instructions, and no alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quantum_instancesARead-onlyIdempotent
Authenticate with IBM and list accessible instance CRNs, names, and plans; no compute is submitted.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, open-world behavior, so the bar is lower. The description adds useful context: it performs IBM authentication and returns CRNs/names/plans without submitting compute, which the annotations do not convey.
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?
A single front-loaded sentence with the authentication action and the return content stated up front, then the side-effect boundary. 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 zero-parameter, read-only discovery tool with an output schema and full annotation coverage, the description covers what it does, what it returns, and that it has no compute side effects. Nothing an agent needs is missing.
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 tool takes zero parameters, so the baseline is 4. The description adds nothing to explain about inputs because there are none, and 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?
States a specific verb (list) and resource (accessible instance CRNs, names, plans) plus the authentication step. The clause 'no compute is submitted' cleanly separates it from the run_* and simulate siblings.
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 compute is submitted' signals this is the discovery/auth step rather than an execution tool, implying when to use it. It stops short of naming an explicit alternative or sequencing guidance (e.g., call before quantum_jobs/quantum_backends).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quantum_jobARead-onlyIdempotent
Read job status and results. Default does not wait for queued work. Results include up to 20 PUBs, register counts or expectation values; large results are explicitly marked truncated.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| instance | No | ||
| max_counts | No | ||
| wait_seconds | No | ||
| include_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent and non-destructive, and the description adds genuinely new behavior: the call is non-blocking by default and large result sets are explicitly flagged as truncated with a 20-PUB cap. It could still say what happens if the job is still queued (empty vs partial result).
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?
Three short sentences, front-loaded with purpose then default behavior then result shape. No filler; the truncation note could arguably move earlier but nothing is wasted.
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?
An output schema exists so return-shape detail is not required, and the description adequately covers blocking behavior and truncation. The main residual gap is the meaning of 'instance' and how it selects a target, which neither schema nor description explains.
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 clarifies the default non-waiting behavior (wait_seconds) and the result-size limit (max_counts/PUB cap, include_results), but leaves 'instance' and the exact relationship between max_counts and the 20-PUB truncation unexplained.
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?
States a specific verb and resource: read a job's status and results. It implicitly contrasts with quantum_jobs (listing) and quantum_cancel_job, though it never names a sibling explicitly and the single-job-by-id scope is only implied by the required job_id.
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?
"Default does not wait for queued work" hints that wait_seconds is opt-in for polling, but it never states when to use this versus quantum_jobs, quantum_preview, or a retry pattern. Guidance is implied rather than explicit, and no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quantum_jobsARead-onlyIdempotent
List recent jobs for an instance. Page with skip. Use after ambiguous submission errors to avoid duplicates.
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | ||
| limit | No | ||
| pending | No | ||
| instance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds the duplicate-checking rationale, which is genuinely useful context, but it omits ordering guarantees ("recent" implies newest-first without saying so) and says nothing about what the pending filter changes in the result set.
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?
Three short sentences, front-loaded with the core action, then paging, then the usage trigger. No filler or restatement of the tool name.
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?
An output schema exists, so return values need no explanation, and the paging story is at least gestured at. But for a four-parameter read tool with zero schema descriptions, leaving the pending filter and the limit cap unexplained is a real gap an agent could trip on.
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 all four parameters depend on the description. It explains skip-based paging and implies instance, but limit and especially pending (a nullable boolean filter with no stated meaning) are left entirely undocumented.
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?
"List recent jobs for an instance" states a specific verb (list) and resource (jobs) with scope (per instance), which is enough to separate it from the singular quantum_job sibling. It never names that sibling explicitly, so differentiation is implied rather than stated.
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?
"Use after ambiguous submission errors to avoid duplicates" gives a concrete triggering scenario that an agent can act on. It offers no exclusions or named alternatives (e.g., quantum_job for a single job, quantum_cancel_job for stopping one), so the routing is clear in one direction only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quantum_previewARead-onlyIdempotent
Transpile for a specific IBM backend and report depth/gate counts without submitting a job.
| Name | Required | Description | Default |
|---|---|---|---|
| circuit | Yes | ||
| instance | No | ||
| measured | No | ||
| backend_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and open-world behavior, so the description only needs to add context. It usefully clarifies that no job is submitted and that the output is depth/gate-count reporting, though it does not mention backend access requirements or external-call behavior.
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 a single front-loaded sentence with no redundant or filler content. The key action and the no-job constraint appear immediately.
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?
Although an output schema exists and annotations cover safety, the description does not compensate for the 0% input-schema description coverage. It leaves the measured flag, instance parameter, and circuit structure unexplained, which matters for correct invocation.
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 carry parameter meaning. It only indirectly covers backend_name and the circuit concept, and does not explain the circuit format, the optional instance parameter, or the measured flag.
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 uses a specific verb and resource: transpile a circuit for an IBM backend and report depth/gate counts. The phrase 'without submitting a job' clearly distinguishes it from the job-submitting siblings such as quantum_run_sampler and quantum_run_estimator.
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?
It implies the tool should be used for previewing transpilation metrics before running a job, but it does not explicitly name alternatives or state when not to use it. The 'without submitting a job' clause gives useful context, but selection guidance remains implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quantum_run_estimatorA
Estimate one weighted Pauli-sum observable. Pauli rightmost character is qubit 0. Shots is per measurement configuration, not total shots. False submits hardware work; default previews only.
| Name | Required | Description | Default |
|---|---|---|---|
| shots | No | ||
| circuit | Yes | ||
| dry_run | No | ||
| instance | No | ||
| observable | Yes | ||
| backend_name | Yes | ||
| max_execution_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark this as non-read-only and open-world, but the description adds genuinely new behavior: the default is a preview with no hardware submission, and a false dry_run submits real work. It also clarifies that shots are per measurement configuration, which affects cost/runtime expectations. It doesn't mention whether submission returns an async job needing polling (siblings include quantum_job and quantum_cancel_job), which would complete the picture.
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?
Four short sentences, each carrying distinct information, with the core purpose front-loaded and the safety-relevant dry_run note placed last. No filler.
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?
With an output schema present, the description doesn't need to explain return values, and it covers the two most error-prone semantics (Pauli qubit ordering and per-configuration shots). Gaps remain around backend/instance selection and whether the call is synchronous or returns a job handle, which matter for a hardware-submitting 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%, so the description carries the full burden. It usefully explains the observable encoding (rightmost Pauli character is qubit 0), shots semantics, and dry_run, but leaves four of seven parameters (backend_name, instance, max_execution_seconds, coefficient) entirely unexplained in both schema and 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?
States a specific verb and resource: 'Estimate one weighted Pauli-sum observable.' That cleanly separates it from the sampler/simulator siblings, which sample bitstrings rather than expectation values. It stops short of naming a sibling directly, but the estimator-vs-sampler distinction is clear from the wording.
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 through the dry_run sentence ('False submits hardware work; default previews only'), which tells the agent how to preview safely. It never states when to choose this over quantum_run_sampler or quantum_simulate, and gives no exclusion conditions or prerequisite guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quantum_run_samplerA
Sample a circuit, measuring all qubits. Default dry_run previews only. False submits one quota-consuming job and returns its ID immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| shots | No | ||
| circuit | Yes | ||
| dry_run | No | ||
| instance | No | ||
| backend_name | Yes | ||
| max_execution_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-readonly, non-idempotent, open-world, non-destructive, so the safety profile is covered. The description adds real value on top: quota consumption, asynchronous return of a job ID rather than results, and that dry_run is a preview-only mode by default.
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?
Three short sentences with zero waste, front-loading the action, then the safe default, then the consequence of overriding it. Every sentence earns its place.
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 highest-stakes decision (dry_run vs. submit) and the async job-ID return are covered, and an output schema exists so return values need no explanation. But for a 6-parameter quantum submission tool with no schema descriptions, missing shots/backend/max_execution_seconds semantics and no sibling differentiation leave notable 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 description coverage is 0%, so the description must carry the burden, and it only fully explains dry_run's semantics and default. Shots, backend_name, instance, max_execution_seconds, and the circuit structure receive no explanation anywhere, leaving cost and targeting behavior undocumented.
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?
States a specific verb and resource ("Sample a circuit") plus the measurement scope ("measuring all qubits"). It does not, however, differentiate itself from the closely named siblings quantum_simulate and quantum_preview, so an agent must infer the boundary.
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?
"Default dry_run previews only. False submits one quota-consuming job" gives a clear decision rule with a cost consequence, which is exactly the guidance an agent needs before invoking. It stops short of naming the alternatives (quantum_preview, quantum_simulate) or explaining when each is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quantum_simulateARead-onlyIdempotent
Simulate up to 20 qubits locally without IBM authentication or charges. Measure every qubit at end.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| shots | No | ||
| circuit | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavior: a 20-qubit practical ceiling (tighter than the schema's 256 maximum) and that all qubits are measured at the end. It says nothing about shots/seed effects on results, but the key operational limits are disclosed.
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 short sentences with no filler; the capability bound and the auth/cost constraint come first, with the measurement behavior trailing. Nothing could be cut without losing 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?
An output schema exists, so return-value explanation is not needed, and the annotations cover the safety profile. The 20-qubit bound is the crucial missing piece the schema cannot express (its max is 256), and the description supplies it; only the seed/shots semantics remain lightly covered.
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 would need to carry parameter meaning. It does hint at num_qubits ("up to 20 qubits") and at the terminal measurement behavior, but neither seed nor shots is mentioned, and the circuit/gate structure is left entirely to the schema's enum and nested 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?
"Simulate up to 20 qubits locally" gives a specific verb and resource plus a hard capability bound, and "without IBM authentication or charges" implicitly separates it from the quantum_run_sampler / quantum_run_estimator siblings that presumably hit IBM backends. An agent can pick this tool without opening any sibling schema.
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 phrase "without IBM authentication or charges" establishes a clear selection context: use this when you want local, free, auth-free execution. It stops short of naming the alternative (quantum_run_sampler) and stating when that one is required, so the routing signal is strong but not explicit.
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.
10 tool updates
v0.1.0- First observed
quantum_backends - First observed
quantum_cancel_job - First observed
quantum_configuration - First observed
quantum_instances - First observed
quantum_job - First observed
quantum_jobs - First observed
quantum_preview - First observed
quantum_run_estimator - First observed
quantum_run_sampler - First observed
quantum_simulate
TDQS
Scored across 10 tools
Most tools target distinct stages of the quantum workflow (config, discovery, preview, submit, monitor), but the pair quantum_job (read one job) and quantum_jobs (list jobs) differ only by a trailing 's', which is a real misselection hazard. quantum_preview also overlaps conceptually with the dry-run defaults of quantum_run_sampler/quantum_run_estimator, though descriptions distinguish them.
All names share a consistent quantum_ snake_case prefix, giving a predictable namespace. However, the set mixes noun-only names (quantum_configuration, quantum_backends, quantum_instances) with verb_noun names (quantum_cancel_job, quantum_run_sampler) and relies on singular/plural to distinguish get vs list.
Ten tools is well within the ideal range and each maps to a genuine step: credentials, instance/backend discovery, local simulation, transpile preview, sampler and estimator submission, job listing, job read, and cancellation. No tool feels redundant or vestigial.
The surface covers the full submit-preview-monitor-cancel lifecycle plus local simulation and discovery, which is strong coverage for a quantum backend client. Minor gaps remain: no session/batch management, no job deletion or log retrieval, and no tool to validate or build circuits before preview.
Maintenance
Related MCP Connectors
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
MCP-first toolbox for agents: KV storage, auth, queue, and utility tools. Free in early access.
Discover and call AI agents via MCP. Supports A2A agents and platform agents with async tasks.
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Azure AI Agent Service by automatically discovering agents and creating MCP tools for querying and managing agent workflows.1MIT
- FlicenseNot gradedqualityDmaintenanceEnables file system operations, web scraping, and AI-powered search through MCP tools for use by LLM agents.1-
- FlicenseAqualityDmaintenanceExposes two MCP tools (discover and execute) that enable agents to query an OpenAPI schema via natural language and execute matched API operations.2-
- AlicenseAqualityDmaintenanceExposes Azure AI Foundry agents, workflows, and AI Search vector-database capabilities as MCP tools, enabling natural language interaction with agents, semantic search, and index management.102MIT