Skip to main content
Glama

Funky Junction

Quantum Hardware Optimization Platform

A comprehensive MCP server ecosystem for quantum circuit design using Qiskit Metal and electromagnetic simulation via Octave/OpenEMS.

Built by

Team Members: Sarah Dweik, Sebastien Boussard, Paul Goldschmidt, & Gabriel Dupuis

šŸš€ Features

  • šŸ”§ Quantum Circuit Design: Complete design workflow with Qiskit Metal

  • ⚔ EM Simulation: Full-wave electromagnetic analysis using Octave/OpenEMS

  • šŸ”„ Optimization Loops: Automated parameter optimization with convergence detection

  • šŸ“š Learning Resources: Python examples and research paper access

  • šŸ¤– Dual MCP Architecture: 25+ specialized tools across two integrated servers

šŸ›  Installation

Prerequisites

  • Python 3.8+, Octave 4.0+, OpenEMS, Git

Quick Install

# Clone repository git clone https://github.com/PaulGoldschmidt/qsim-mcp.git cd qsim-mcp # Install Python dependencies pip install -r requirements.txt # Install system dependencies (Ubuntu/Debian) sudo apt update && sudo apt install octave openems # Verify installation python -c "import qiskit_metal; print('āœ“ Qiskit Metal ready')" octave --version && openEMS --version

šŸš€ Quick Start

Start Both MCP Servers:

# Terminal 1 - Qiskit Metal Server cd src/qiskit-metal-mcp && python quantum_hardware_mcp_server.py # Terminal 2 - Octave OpenEMS Server cd src/octave-mcp && python octave_openems_server.py

Basic Optimization Workflow:

# 1. Design Phase create_design() set_design_variables(cpw_width='10um', cpw_gap='6um') create_transmons(q1_pos_x='-2.5mm', q2_pos_x='2.5mm') export_design_to_gds('./quantum_design.gds') # 2. Simulation Phase create_cpw_octave_simulation(name='opt_v1', width=10.0, gap=6.0) run_octave_simulation('opt_v1') # 3. Analysis & Iteration analyze_octave_impedance('opt_v1') # Adjust parameters if needed and repeat # 4. Export Results export_octave_results('opt_v1', export_format='touchstone')

šŸ“ Project Structure

qsim-mcp/ ā”œā”€ā”€ src/ │ ā”œā”€ā”€ qiskit-metal-mcp/ # Quantum circuit design server │ │ ā”œā”€ā”€ quantum_hardware_mcp_server.py │ │ └── requirements.txt │ ā”œā”€ā”€ octave-mcp/ # EM simulation server │ │ ā”œā”€ā”€ octave_openems_server.py │ │ └── requirements.txt │ └── resources/ # Examples and papers ā”œā”€ā”€ requirements.txt # Combined dependencies └── README.md

šŸ”§ Available Tools

Qiskit Metal Design Tools

  • create_design() - Initialize quantum circuit design

  • set_design_variables() - Configure CPW parameters (cpw_width, cpw_gap)

  • create_transmons() - Add transmon qubits with positioning

  • add_coupler() - Create spiral inductors (n_turns, spacing)

  • connect_components() - Route CPW transmission lines

  • export_design_to_gds() - Export for fabrication

  • visualize_gds_with_klayout() - Professional visualization

Octave/OpenEMS Simulation Tools

  • create_cpw_octave_simulation() - Set up EM simulation

  • run_octave_simulation() - Execute full-wave analysis

  • extract_octave_s_parameters() - Analyze S11, S21 parameters

  • analyze_octave_impedance() - Verify 50Ī© characteristic impedance

  • export_octave_results() - Export to Touchstone, CSV, JSON

  • list_octave_simulations() - View completed simulations

šŸ”„ Optimization Workflow

  1. Set Targets: Define optimization goals (impedance, Q-factor, coupling)

  2. Design: Create/modify quantum circuit components in Qiskit Metal

  3. Simulate: Run electromagnetic analysis with synchronized parameters

  4. Analyze: Compare results against targets

  5. Iterate: Adjust parameters until convergence

  6. Export: Generate GDS files and simulation reports

āš™ļø Configuration

MCP Client Setup:

{ "mcpServers": { "qiskit-metal": { "command": "python3", "args": ["src/qiskit-metal-mcp/quantum_hardware_mcp_server.py"] }, "octave-openems": { "command": "python3", "args": ["src/octave-mcp/octave_openems_server.py"] } } }

šŸ”§ Troubleshooting

System Requirements Issues:

# Install missing dependencies sudo apt install octave openems # Ubuntu/Debian brew install octave # macOS # Check installations check_octave_openems_status() check_status()

Common Solutions:

  • Simulation timeout: Increase timeout in config.json

  • Memory issues: Use clear_octave_data("all")

  • Permission errors: Check file paths and write permissions

šŸ’” Example: Complete Optimization

# Target: 50Ī© ±5% characteristic impedance targets = {'impedance': 50.0, 'tolerance': 2.5} for iteration in range(1, 6): # Design with current parameters set_design_variables(cpw_width=f'{current_width}um', cpw_gap=f'{current_gap}um') # Simulate create_cpw_octave_simulation(name=f'iter_{iteration}', width=current_width, gap=current_gap) run_octave_simulation(f'iter_{iteration}') # Analyze and check convergence results = analyze_octave_impedance(f'iter_{iteration}') if within_tolerance(results, targets): print(f"āœ… Converged in {iteration} iterations!") break # Adjust parameters for next iteration current_width, current_gap = optimize_parameters(results, targets) # Export final design export_design_to_gds('./optimized_quantum_chip.gds') export_octave_results(f'iter_{iteration}', 'touchstone')

šŸ“„ License

MIT License - see LICENSE file for details.

šŸ¤ Contributing

Contributions welcome! Create an issue or submit a pull request.

Built with ā¤ļø by Team Silicon Architects for the quantum computing community

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

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/PaulGoldschmidt/qsim-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server