Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MCP server exposing Qiskit 2.3.1 quantum computing functionality
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"qiskit": {
"command": "uvx",
"args": [
"mcp-qiskit"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add qiskit -- uvx mcp-qiskitวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"qiskit": {
"command": "uvx",
"args": [
"mcp-qiskit"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"qiskit": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-qiskit"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub daedalus ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 7 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, FactLot
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า 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.
Cited CRE facts and deterministic calculators for agents: rent, CAM, debt sizing, IRR, parcel IDs.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
MCP server exposing Qiskit 2.3.1 quantum computing functionality through the Model Context Protocol. Enables LLMs to create, manipulate, and execute quantum circuits via standardized MCP tools and resources.
mcp-name: io.github.daedalus/mcp-qiskit
This project provides a Model Context Protocol (MCP) server that exposes Qiskit quantum computing functionality to Large Language Models (LLMs). It allows AI assistants to:
pip install mcp-qiskit[qiskit]
The [qiskit] extra installs the required Qiskit dependencies. Other extras available:
# Install with development dependencies
pip install mcp-qiskit[dev,test]
pip install mcp-qiskit[mcp]
git clone https://github.com/daedalus/mcp-qiskit.git
cd mcp-qiskit pip install -e ".[all]"
from mcp_qiskit import create_quantum_circuit, add_gate, add_gates, add_measurement, run_circuit
circuit = create_quantum_circuit(2, 2)
circuit = add_gate(circuit, "h", [0])
circuit = add_gate(circuit, "cx", [0, 1])
circuit = add_gates(circuit, [ {"gate": "h", "qubits": [0]}, {"gate": "cx", "qubits": [0, 1]}, ])
circuit = add_measurement(circuit, [0, 1])
result = run_circuit(circuit, "aer_simulator", shots=1024) print(f"Measurement results: {result['counts']}")
Add to your claude_desktop_config.json:
{
"mcpServers": { "mcp-qiskit": { "command": "mcp-qiskit", "env": {} } } }
Add to your Cursor settings under MCP Servers:
{
"mcpServers": { "mcp-qiskit": { "command": "mcp-qiskit", "args": [] } } }
# Run as stdio server
mcp-qiskit
python -m mcp_qiskit
Creates an empty quantum circuit with specified number of qubits and classical bits.
Parameters:
num_qubits (int): Number of quantum bitsnum_classical_bits (int): Number of classical bits for measurementsReturns: Dictionary representing the circuit
Example:
circuit = create_quantum_circuit_tool(num_qubits=3, num_classical_bits=3)
Adds a quantum gate to a circuit. This tool maintains circuit state between calls.
Parameters:
circuit (dict, optional): The circuit to modify. If None, creates a new 8-qubit circuit with 8 classical bits automatically.gate_name (str): Name of the gate (e.g., "h", "x", "cx", "rx")qubits (list[int]): List of qubit indices to apply the gate to. Can be a single qubit (e.g., [0]) or multiple qubits (e.g., [0, 1, 2, 3]). When multiple qubits are specified for a single-qubit gate, the gate is applied to each qubit.params (list[float], optional): Parameters for parameterized gatesSupported Gates:
h, x, y, z, s, t, sdg, tdg, i, idrx, ry, rz, u1, u2, u3, pcx, cy, cz, swapmcx, mct, mcp, ccx, toffoli, c3x, c3sx, c4xrxx, ryy, rzz, ch, cswap, cu, crx, cry, crzState Maintenance Pattern: Always pass the circuit returned by the previous call to maintain state:
# Option 1: Pass circuit explicitly
circuit = add_gate_tool(circuit=None, gate_name="h", qubits=[0]) # Creates new circuit circuit = add_gate_tool(circuit=circuit, gate_name="x", qubits=[1]) # Appends
circuit = add_gate_tool(None, "h", [0]) circuit = add_gate_tool(circuit, "cx", [0, 1]) circuit = add_gate_tool(circuit, "rx", [0], [0.5])
Apply Single-Quantum Gate to Multiple Qubits: When applying single-qubit gates (like h, x, y, z, etc.) to multiple qubits at once, use a list of qubit indices:
# Apply H gate to qubits 0, 1, 2, 3 simultaneously
circuit = add_gate_tool(circuit, "h", [0, 1, 2, 3])
circuit = add_gate_tool(circuit, "x", [4, 5, 6, 7])
Adds multiple quantum gates to a circuit in a single call. This tool maintains circuit state between calls and reduces the number of tool calls needed.
Parameters:
circuit (dict, optional): The circuit to modify. If None, creates a new 8-qubit circuit with 8 classical bits automatically.gates (list[dict]): List of gate specifications, each containing:gate (str): Name of the gate (e.g., "h", "x", "cx", "rx")qubits (list[int]): Qubit indices to apply the gate toparams (list[float], optional): Parameters for parameterized gatesExample:
# Add multiple gates in one call (reduces tool calls)
gates = [ {"gate": "h", "qubits": [0]}, {"gate": "cx", "qubits": [0, 1]}, {"gate": "x", "qubits": [2]}, ] circuit = add_gates_tool(circuit=None, gates=gates)
circuit = add_gates_tool(None, [{"gate": "h", "qubits": [0, 1]}]) circuit = add_gates_tool(circuit, [{"gate": "rz", "qubits": [0], "params": [0.5]}])
Adds measurement operations to qubits. This tool maintains circuit state between calls.
Parameters:
circuit (dict, optional): The circuit to modify. If None, creates a new 8-qubit circuit with 8 classical bits automatically.qubits (list[int]): Qubit indices to measureclbits (list[int], optional): Classical bit indices to store resultsExample:
# Maintain state between calls
circuit = add_measurement_tool(circuit=None, qubits=[0, 1]) # Creates new circuit circuit = add_measurement_tool(circuit=circuit, qubits=[2]) # Appends measurement
circuit = add_measurement_tool(None, [0, 1]) # Measure q0->c0, q1->c1 circuit = add_measurement_tool(circuit, [0, 1], [1, 0]) # Measure q0->c1, q1->c0
Returns the depth (number of layers) of the circuit.
Parameters:
circuit (dict): The circuit to analyzeReturns: Integer representing circuit depth
Lists all available quantum gates in Qiskit.
Returns: List of gate name strings
Gets detailed information about a quantum gate.
Parameters:
gate_name (str): Name of the gateReturns: Dictionary with gate properties:
name: Gate namenum_qubits: Number of qubits the gate operates onnum_parameters: Number of parameters (0 for fixed gates)params: List of parameter valuesRenders a circuit in various formats.
Parameters:
circuit (dict): The circuit to drawoutput_format (str): Output format - "ascii", "text", "mpl", "latex"Returns: String representation of the circuit
Example Output (ASCII):
┌───┐
q_0: ┤ H ├──■── └───┘┌─┴─┐ q_1: ────┤ X ├ └───┘ c: 2/═══════╪═══ 0 1
Lists available quantum backends.
Parameters:
filters (dict, optional): Filter criteria (e.g., {"status": "ONLINE"})Returns: List of backend information dictionaries
Gets status information for a backend.
Parameters:
backend_name (str): Name of the backendReturns: Dictionary with:
name: Backend namestatus: Status (ONLINE/OFFLINE)num_qubits: Number of qubitsGets detailed configuration for a backend.
Parameters:
backend_name (str): Name of the backendReturns: Dictionary with:
name: Backend namenum_qubits: Number of qubitscoupling_map: Qubit connectivity (if applicable)basis_gates: List of available basis gatesmax_shots: Maximum allowed shotsExecutes a single quantum circuit.
Parameters:
circuit (dict): Circuit to executebackend_name (str, optional): Backend name (default: "aer_simulator")shots (int, optional): Number of measurement shots (default: 1024)seed (int, optional): Random seed for reproducibilityReturns: Dictionary with:
status: "COMPLETED" or error messagebackend: Backend usedshots: Number of shotscounts: Measurement outcome counts (if shots > 0)statevector: Statevector (if shots=None)time_taken: Execution time in secondsExample:
result = run_circuit_tool(circuit, "aer_simulator", shots=1000, seed=42)
Executes multiple circuits in a batch.
Parameters:
circuits (list[dict]): List of circuits to executebackend_name (str, optional): Backend nameshots (int, optional): Number of shotsseed (int, optional): Random seedReturns: List of result dictionaries
Example:
circuits = [circuit1, circuit2, circuit3]
results = run_circuits_tool(circuits, shots=100)
Transpiles a circuit for optimization or specific backend.
Parameters:
circuit (dict): Circuit to transpileoptimization_level (int, optional): 0-3 (default: 1)basis_gates (list[str], optional): Target basis gatesReturns: Transpiled circuit dictionary
Example:
transpiled = transpile_circuit_tool(circuit, optimization_level=2)
Provides a list of available quantum backends. Updated dynamically based on available providers.
Provides a list of all available quantum gates in Qiskit.
# Create 2-qubit circuit
circuit = create_quantum_circuit(2, 2)
circuit = add_gate(circuit, "h", [0]) circuit = add_gate(circuit, "cx", [0, 1]) circuit = add_measurement(circuit, [0, 1])
result = run_circuit(circuit, "aer_simulator", shots=1000) print(result["counts"]) # Approximately {"00": 500, "11": 500}
ตัดมาแค่ช่วงต้น อ่านต่อใน repo