Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Real quantum circuit simulator, VQE, molecular Hamiltonians, QM/MM forces, and MD via 21 tools.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
DENSE_EVOLUTION_KERNEL_URLYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"dense-evolution": {
"command": "uvx",
"args": [
"dense-evolution",
"mcp"
],
"env": {
"DENSE_EVOLUTION_KERNEL_URL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add dense-evolution --env DENSE_EVOLUTION_KERNEL_URL=your-value -- uvx dense-evolution mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"dense-evolution": {
"command": "uvx",
"args": [
"dense-evolution",
"mcp"
],
"env": {
"DENSE_EVOLUTION_KERNEL_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"dense-evolution": {
"type": "stdio",
"command": "uvx",
"args": [
"dense-evolution",
"mcp"
],
"env": {
"DENSE_EVOLUTION_KERNEL_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
DENSE_EVOLUTION_KERNEL_URL envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account tatopenn-cell, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (8.1.52) reached the registry 3 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, FlyDocs
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Spec-driven development workflow: your agent works issues, sessions and the status lifecycle.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
A high-performance quantum simulation toolkit Statevector/MPS engines with compilation, noise, VQE, QEC, chemistry, and agent-native tooling.
Download the Dense Evolution Dashboard (Streamlit)
Windows (.bat) · macOS / Linux (.sh)
Run up to 28 qubits in about 3 seconds, without crashing. Dense Evolution JIT-compiles statevector circuits through JAX XLA, automatically chunks and — past even that RAM ceiling — spills to disk when memory fills up, so a real simulation stays alive instead of OOM-ing.
📖 [Full documentation, API reference, and worked examples →](https://tatopenn-cell.github.io/Dense-Evolution/)
A local Streamlit dashboard and web-based Composer editor are also included — see Composer & MCP Server below.
pip install dense-evolution # JAX is a core dependency, installed by default
pip install dense-evolution[full]
pip install dense-evolution[qiskit] pip install dense-evolution[pennylane]
pip install dense-evolution[hf]
pip install dense-evolution[composer]
pip install dense-evolution[mcp]
git clone https://github.com/tatopenn-cell/Dense-Evolution.git cd Dense-Evolution && pip install -e .[full]
⚠️ macOS + dense-evolution[qiskit] users
Qiskit's own QuantumCircuit.__init__ is known to segfault the whole process on macOS/arm64 (an upstream Qiskit bug, not something Dense-Evolution can fix from its side — see release v8.1.43 for the full reproduction). dense_evolution/interop.py now warns (RuntimeWarning, once per process) the first time you touch the Qiskit bridge on sys.platform == 'darwin', but it does not block — some Qiskit/macOS combinations may work fine. If you hit a crash, pip install dense-evolution[pennylane] gives the same circuit-interop functionality without constructing any Qiskit object.
Google Colab (3 lines):
!git clone https://github.com/tatopenn-cell/Dense-Evolution.git
%cd Dense-Evolution !pip install -e .
from dense_evolution import DenseSVSimulator, QASMParser
qasm = """ OPENQASM 2.0; include "qelib1.inc"; qreg q[3]; rx(pi/3) q[0]; ry(pi/4) q[1]; h q[2]; barrier q; cx q[0], q[1]; cx q[1], q[2]; rz(pi/6) q[2]; """
parser = QASMParser() circuit = parser.parse(qasm)
sim = DenseSVSimulator(n_qubits=3) sim.run_circuit_jit(circuit.to_tuples())
probs = sim.get_probabilities() sv = sim.get_statevector()
Noise:
import numpy as np
from dense_evolution import DenseSVSimulator, QASMParser, NoiseModel
qasm = 'OPENQASM 2.0; include "qelib1.inc"; qreg q[2]; h q[0]; cx q[0],q[1];' circuit = QASMParser().parse(qasm)
sim = DenseSVSimulator(n_qubits=2) sim.run_circuit_jit(circuit.to_tuples())
noisy_sv = NoiseModel.apply_to_sv(np.asarray(sim.sv), n=2, model='depolarizing', p=0.05, rng=np.random.default_rng(0)) np.abs(noisy_sv) ** 2
VQE:
import jax
import jax.numpy as jnp from dense_evolution import QASMParser, circuit_to_energy_fn
qasm = 'OPENQASM 2.0; include "qelib1.inc"; qreg q[1]; ry(0.0) q[0];' circuit = QASMParser().parse(qasm) energy_fn, n_params = circuit_to_energy_fn(circuit, n_qubits=1) h = jnp.array([[1.0, 0.0], [0.0, -1.0]], dtype=jnp.complex128) # Pauli Z
theta = jnp.array([0.1]) grad_fn = jax.value_and_grad(energy_fn, argnums=0, has_aux=True) for _ in range(40): (energy, sv), grad = grad_fn(theta, h) theta = theta - 0.5 * grad
Mitigation (ZNE):
import dense_evolution as de
e1, e2, e3 = 1.234, 0.876, 0.611 # values at 1x, 2x, 3x noise de.zero_noise_extrapolation([e1, e2, e3], [1.0, 2.0, 3.0])
Dashboard (local, Streamlit):
pip install "dense-evolution[dashboard]" # JAX already included by default
streamlit run tools/dashboard/app.py
Anti-OOM for large circuits:
from dense_evolution import Chunk, QASMParser
qasm = 'OPENQASM 2.0; include "qelib1.inc"; qreg q[27]; h q[0:27];' circuit = QASMParser().parse(qasm)
sim = Chunk(27) sim.run_chunk(circuit.to_tuples(), chunk_size_gates=500)
circuit_to_energy_fn is the same JAX-differentiable engine real molecular VQE runs on — real Hartree-Fock Hamiltonians, UCCSD/hardware-efficient ansätze, Adam optimization. Autodiff.pip install dense-evolution ships libcint compiled for each system: the full two-electron tensor of ethanol in 6-31G* in 0.32 s. Open-shell molecules with UHF and ROHF (run_uhf, run_cuhf). native_hf.|0>, |1>, |±> or |±i>, with its probability. Postselection.Measured on Windows, CPU only, 8 GB RAM — PennyLane's default.qubit allocates the full statevector; Dense Evolution's Chunk holds constant ~2 GB regardless of qubit count.
| Qubits | Hilbert Space | PennyLane | Dense Evolution | Chunk Geometry |
|---|---|---|---|---|
| 26 | 67,108,864 | ✅ 1,074 MB | ✅ 2,050 MB | 1× (2²⁷) |
| 28 | 268,435,456 | ❌ OOM | ✅ 2,050 MB | 2× (2²⁷) |
| 32 | 4,294,967,296 | ❌ OOM | ✅ 2,048 MB | 32× (2²⁷) |
On Google Colab (12 GB RAM), n=28 runs in ~3s end-to-end (JIT-compiled, num_chunks=2) — the multi-chunk path is fast, not just OOM-safe. Past the real RAM ceiling (Chunk alone raises MemoryPressureError cleanly rather than crashing the process), allow_disk_overflow=True falls back to a slower disk-backed path instead of failing — correctness-first, not benchmarked for speed yet. Full measured t
Only the beginning is shown; read the rest in the repo