MCP server for quantum resource estimation using Microsoft QDK
Project description
Quantum Resource Estimator MCP Server
An MCP (Model Context Protocol) server that makes quantum resource estimation accessible through natural language. Built on Microsoft's QDK resource estimator.
What It Does
Estimates physical quantum resources (qubit count, runtime) needed to run quantum algorithms on fault-tolerant hardware. Helps researchers answer questions like:
- "How many qubits does it take to break RSA-2048 with Shor's algorithm?"
- "How does a superconducting qubit hardware compare to trapped-ion for this chemistry simulation?"
- "What's the tradeoff between qubit count and runtime for my algorithm?"
Tools
| Tool | Description |
|---|---|
estimate_resources |
Run a single resource estimation with defaults or custom params |
compare_configurations |
Side-by-side comparison across hardware architectures |
generate_frontier |
Pareto frontier: qubit-count vs. runtime tradeoff |
list_qubit_models |
Reference data for all 6 predefined qubit models |
list_qec_schemes |
Reference data for QEC schemes (surface_code, floquet_code) |
list_algorithm_templates |
Predefined algorithms with logical resource counts |
explain_parameters |
Domain-specific guidance (cryptography, chemistry, optimization) |
custom_qubit_model_estimate |
Estimation with fully custom qubit parameters |
Installation
Requires Python 3.10+ and uv. The qsharp package bundles its own native runtime — no .NET SDK install needed.
git clone https://github.com/DeDuckProject/quantum-resource-estimator-mcp
cd quantum-resource-estimator-mcp
uv sync
Usage
Run the server
uv run qre-mcp
Configure in Claude Desktop
The recommended approach uses uv run --directory so no manual venv activation is needed.
macOS — ~/Library/Application Support/Claude/claude_desktop_config.json
Windows — %APPDATA%\Claude\claude_desktop_config.json
Linux — ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"quantum-resource-estimator": {
"command": "/path/to/uv",
"args": [
"run",
"--directory",
"/path/to/quantum-resource-estimator-mcp",
"qre-mcp"
]
}
}
}
Replace /path/to/uv with the output of which uv and /path/to/quantum-resource-estimator-mcp with the absolute path to the cloned repo.
Configure in Claude Code
claude mcp add quantum-resource-estimator -- /path/to/uv run --directory /path/to/quantum-resource-estimator-mcp qre-mcp
Inspect with MCP dev tools
uv run mcp dev src/qre_mcp/server.py
Algorithm Input Methods
- Template (easiest):
algorithm_template="shor_2048"— uses predefined logical counts from published research - Logical counts:
logical_counts='{"numQubits": 100, "tCount": 200}'— provide your own circuit counts - Q# code:
qsharp_code="..."— provide Q# source with a parameterless entry point
Example Queries
Via an LLM with this MCP server connected:
"Estimate the resources to break RSA-2048 on superconducting hardware"
"Compare all qubit technologies for the FeMo-cofactor chemistry simulation"
"Show me the qubit vs runtime tradeoff for Shor's algorithm on trapped-ion hardware"
"I have a circuit with 500 logical qubits and 10 million T gates — how many physical qubits do I need?"
Predefined Algorithm Templates
| ID | Algorithm | Category |
|---|---|---|
shor_2048 |
Shor's factoring (RSA-2048) | Cryptography |
grover_aes128 |
Grover search (AES-128) | Cryptography |
chemistry_femo |
FeMo-cofactor simulation | Chemistry |
qpe_generic |
Quantum phase estimation | General |
Logs
The server runs over stdio (MCP protocol), so stdout/stderr are not available for human-readable output. Logs are written to a file you can follow in a separate terminal:
tail -F ~/.local/share/qre-mcp/qre-mcp.log
-F (capital F) handles log rotation — the file is capped at 5 MB with up to 3 backups.
To use a custom log path, set the QRE_MCP_LOG environment variable before starting the server.
Running Tests
uv run pytest
Tests cover validators, result formatting, reference data, and parameter building. Integration tests (requiring qsharp) are skipped if the package is not available.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quantum_resource_estimator_mcp-0.1.0.tar.gz.
File metadata
- Download URL: quantum_resource_estimator_mcp-0.1.0.tar.gz
- Upload date:
- Size: 86.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d246e01cf4ed2def970595237557dbc3668f75e5b8860c107661e76e54319cfa
|
|
| MD5 |
567133c198ecbabb583501739f2af9eb
|
|
| BLAKE2b-256 |
fc65c6939b17445e37932f6d0cc3d7073af91a1483f862f585f58e5afe8c802a
|
File details
Details for the file quantum_resource_estimator_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: quantum_resource_estimator_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 32.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ce046f07022b249d7fffbcd2c56fd814d7201d663d8ab6064a7b79524bb4eb6
|
|
| MD5 |
65d006bd97f38dae38ea8ab1a706e5b6
|
|
| BLAKE2b-256 |
e7769f9742ebd341985dc0773baa6a2a540652aa6b2e159d145dfbaa6403ef0c
|