# CUDA Quantum MCP Server - API Reference Complete API documentation for the CUDA Quantum Model Context Protocol server. ## Table of Contents - [Overview](#overview) - [Quantum Circuit Tools](#quantum-circuit-tools) - [Quantum Execution Tools](#quantum-execution-tools) - [Hardware Backend Tools](#hardware-backend-tools) - [Error Handling](#error-handling) - [Examples](#examples) ## Overview The CUDA Quantum MCP Server provides quantum computing capabilities through standardized MCP tools. Each tool accepts JSON input and returns structured results. ### Tool Response Format All tools return responses in the MCP standard format: ```typescript interface MCPToolResult { content: Array<{ type: 'text' | 'image' | 'resource'; text?: string; data?: string; uri?: string; }>; isError?: boolean; } ``` ## Quantum Circuit Tools ### create_quantum_kernel Create a new quantum kernel (circuit) with specified qubits and parameters. **Input Schema:** ```json { "name": "string (required)", "num_qubits": "integer 1-32 (required)", "parameters": "array (optional)", "description": "string (optional)" } ``` **Parameters Array Schema:** ```json { "name": "string", "type": "int|float|complex|list[int]|list[float]|list[complex]", "default": "any (optional)" } ``` **Example:** ```json { "name": "my_circuit", "num_qubits": 4, "parameters": [ {"name": "theta", "type": "float", "default": 0.0}, {"name": "angles", "type": "list[float]"} ], "description": "My quantum circuit" } ``` **Response:** ``` Successfully created quantum kernel 'my_circuit' with 4 qubits. ``` --- ### apply_quantum_gate Apply a quantum gate to specified qubits in a quantum kernel. **Input Schema:** ```json { "kernel_name": "string (required)", "gate_name": "string (required)", "qubits": "array[integer] (required)", "parameters": "array[number] (optional)", "controls": "array[integer] (optional)", "adjoint": "boolean (optional, default: false)" } ``` **Supported Gates:** - **Single-qubit**: `h`, `x`, `y`, `z`, `s`, `t` - **Parameterized**: `rx`, `ry`, `rz` (require parameters) - **Two-qubit**: `cx`, `cy`, `cz`, `swap` - **Multi-qubit**: `ccx`, `cswap` **Example:** ```json { "kernel_name": "my_circuit", "gate_name": "rx", "qubits": [0], "parameters": [1.5708], "adjoint": false } ``` **Controlled Gate Example:** ```json { "kernel_name": "my_circuit", "gate_name": "x", "qubits": [1], "controls": [0] } ``` **Response:** ``` Successfully applied rx gate to qubits [0] in kernel 'my_circuit'. ``` --- ### create_common_circuit Create commonly used quantum circuits with predefined structures. **Input Schema:** ```json { "circuit_type": "bell_pair|ghz_state|quantum_fourier_transform|grover_oracle|hadamard_test", "name": "string (required)", "num_qubits": "integer (optional, depends on circuit)", "parameters": "object (optional)" } ``` **Circuit Types:** - `bell_pair`: Creates |00⟩ + |11⟩ state (2 qubits) - `ghz_state`: Creates |000...⟩ + |111...⟩ state (n qubits) - `quantum_fourier_transform`: QFT implementation - `grover_oracle`: Grover's oracle template - `hadamard_test`: Hadamard test circuit **Example:** ```json { "circuit_type": "ghz_state", "name": "ghz_4", "num_qubits": 4 } ``` **Response:** ``` Successfully created ghz_state circuit named 'ghz_4' with 4 qubits. ``` --- ### list_quantum_kernels List all available quantum kernels and their metadata. **Input Schema:** ```json { "detailed": "boolean (optional, default: false)" } ``` **Example:** ```json { "detailed": true } ``` **Response:** ``` Available quantum kernels (2): • my_circuit - Qubits: 4 - Parameters: 2 - Operations: 3 • ghz_4 - Qubits: 4 - Parameters: 0 - Operations: 4 ``` --- ### visualize_circuit Generate a text-based visualization of a quantum circuit. **Input Schema:** ```json { "kernel_name": "string (required)", "format": "text|qasm|json (optional, default: text)" } ``` **Example:** ```json { "kernel_name": "my_circuit", "format": "text" } ``` **Response:** ``` Quantum Circuit: my_circuit Qubits: 4 Operations: 1. RX(1.5708) → qubits[0] 2. H → qubits[1] 3. X → qubits[2] (ctrl: 0) 4. CNOT → qubits[1,3] ``` ## Quantum Execution Tools ### sample_quantum_circuit Execute quantum circuit and sample measurement results. **Input Schema:** ```json { "kernel_name": "string (required)", "shots": "integer 1-100000 (optional, default: 1000)", "parameters": "object (optional)", "target": "string (optional)" } ``` **Example:** ```json { "kernel_name": "bell_pair", "shots": 5000, "parameters": {"theta": 1.57}, "target": "qpp-gpu" } ``` **Response:** ``` Sampling Results for 'bell_pair': Shots: 5000 Results: |00⟩: 2487 (49.74%) |11⟩: 2513 (50.26%) Entropy: 0.999 bits ``` --- ### observe_hamiltonian Compute the expectation value of a Hamiltonian using a quantum circuit. **Input Schema:** ```json { "kernel_name": "string (required)", "hamiltonian_terms": "array (required)", "shots": "integer (optional, default: 1000)", "parameters": "object (optional)" } ``` **Hamiltonian Terms Schema:** ```json { "paulis": "array of ['I','X','Y','Z']", "qubits": "array[integer]", "coefficient": { "real": "number", "imag": "number" } } ``` **Example:** ```json { "kernel_name": "my_ansatz", "hamiltonian_terms": [ { "paulis": ["Z", "Z"], "qubits": [0, 1], "coefficient": {"real": 1.0, "imag": 0.0} }, { "paulis": ["X", "X"], "qubits": [0, 1], "coefficient": {"real": 0.5, "imag": 0.0} } ], "shots": 10000 } ``` **Response:** ``` Hamiltonian Expectation Value for 'my_ansatz': Expectation Value: -0.234567 Variance: 0.012345 Standard Deviation: 0.111111 Shots: 10000 Hamiltonian Terms: Term 1: 1.0 × (Z_0 ⊗ Z_1) Term 2: 0.5 × (X_0 ⊗ X_1) ``` --- ### get_quantum_state Retrieve the quantum state vector from a quantum circuit. **Input Schema:** ```json { "kernel_name": "string (required)", "parameters": "object (optional)", "format": "amplitudes|probabilities|both (optional, default: amplitudes)" } ``` **Example:** ```json { "kernel_name": "bell_pair", "format": "both" } ``` **Response:** ``` Quantum State for 'bell_pair': State Vector Dimension: 4 Probability Amplitudes: |00⟩: 50.0000% |11⟩: 50.0000% Complex Amplitudes: |00⟩: 0.707107 + 0.000000i |11⟩: 0.707107 + 0.000000i State Properties: Purity: 1.000000 Entanglement: Entangled ``` --- ### run_quantum_algorithm Execute quantum algorithms with custom return values. **Input Schema:** ```json { "kernel_name": "string (required)", "shots": "integer (optional, default: 1000)", "parameters": "object (optional)" } ``` **Example:** ```json { "kernel_name": "grover_algorithm", "shots": 1000, "parameters": {"target_state": "101"} } ``` --- ### variational_optimization Perform variational quantum optimization using gradient-based methods. **Input Schema:** ```json { "kernel_name": "string (required)", "hamiltonian_terms": "array (required)", "initial_parameters": "array[number] (required)", "optimizer": "cobyla|l-bfgs-b|gradient-descent (optional, default: cobyla)", "max_iterations": "integer 1-1000 (optional, default: 100)" } ``` **Example:** ```json { "kernel_name": "vqe_ansatz", "hamiltonian_terms": [/* Hamiltonian definition */], "initial_parameters": [0.1, 0.2, 0.3], "optimizer": "cobyla", "max_iterations": 50 } ``` ## Hardware Backend Tools ### set_quantum_target Configure quantum execution target (simulator or hardware backend). **Input Schema:** ```json { "target": "string (required)", "configuration": "object (optional)" } ``` **Available Targets:** - **Simulators**: `qpp-cpu`, `qpp-gpu`, `density-matrix-cpu`, `tensor-network` - **Hardware**: `ionq`, `quantinuum`, `quantum_machines`, `infleqtion`, `iqm`, `oqc`, `pasqal` **Configuration Options:** ```json { "shots": "integer", "optimization_level": "integer 0-3", "api_key": "string", "url": "string", "device": "string", "noise_model": "string", "error_mitigation": "boolean" } ``` **Example:** ```json { "target": "qpp-gpu", "configuration": { "shots": 10000, "optimization_level": 2 } } ``` **Response:** ``` Successfully set quantum target to: qpp-gpu Description: GPU State Vector Simulator (cuQuantum) Configuration: shots: 10000 optimization_level: 2 ``` --- ### list_quantum_backends List all available quantum backends and their capabilities. **Input Schema:** ```json { "category": "all|simulators|hardware (optional, default: all)", "detailed": "boolean (optional, default: false)" } ``` **Example:** ```json { "category": "simulators", "detailed": true } ``` **Response:** ``` Available Quantum Backends: 🖥️ Simulators: • qpp-cpu: CPU State Vector Simulator - Local execution - GPU support: No - Max qubits: 32 • qpp-gpu: GPU State Vector Simulator (cuQuantum) - Local execution - GPU support: Yes - Max qubits: 32 🔬 Hardware Providers: • ionq: IonQ Quantum Processors - Remote execution - Authentication required ``` --- ### get_platform_info Get information about the current quantum platform and available resources. **Example:** ```json {} ``` **Response:** ``` Quantum Platform Information: Platform Name: default Number of QPUs: 1 Is Simulator: true Is Remote: false System Information: Node.js Version: v18.17.0 Platform: linux Architecture: x64 CUDA Visible Devices: 0 ``` --- ### test_backend_connectivity Test connectivity to quantum hardware providers. **Input Schema:** ```json { "backend": "string (required)", "credentials": "object (optional)" } ``` **Credentials Schema:** ```json { "api_key": "string", "url": "string", "username": "string", "password": "string" } ``` **Example:** ```json { "backend": "qpp-gpu", "credentials": {} } ``` **Response:** ``` Testing connectivity to qpp-gpu... ✅ qpp-gpu is available (local simulator) ✅ CUDA device available: 0 ``` --- ### configure_gpu_acceleration Configure GPU acceleration for quantum simulations. **Input Schema:** ```json { "enable": "boolean (required)", "device_id": "integer (optional)", "memory_limit": "number (optional)", "target": "qpp-gpu|density-matrix-gpu (optional, default: qpp-gpu)" } ``` **Example:** ```json { "enable": true, "device_id": 0, "memory_limit": 8.0, "target": "qpp-gpu" } ``` **Response:** ``` GPU Acceleration Configuration: ✅ Enabling GPU acceleration Target: qpp-gpu GPU Device ID: 0 Memory Limit: 8.0 GB ✅ Successfully configured GPU target Note: Ensure NVIDIA drivers and CUDA toolkit are installed. ``` ## Error Handling All tools return standardized error responses when failures occur: ```json { "content": [ { "type": "text", "text": "Error message describing what went wrong" } ], "isError": true } ``` ### Common Error Types 1. **Validation Errors**: Invalid input parameters 2. **Python Bridge Errors**: CUDA Quantum not available or timeout 3. **Execution Errors**: Quantum circuit execution failures 4. **Backend Errors**: Hardware provider connectivity issues ### Error Recovery - **Timeout Errors**: Increase timeout in configuration - **GPU Errors**: Check CUDA installation and device availability - **API Errors**: Verify credentials and network connectivity - **Memory Errors**: Reduce circuit size or enable GPU ## Examples ### Complete Quantum Algorithm Example ```json // 1. Create parameterized ansatz { "tool": "create_quantum_kernel", "input": { "name": "vqe_h2", "num_qubits": 4, "parameters": [ {"name": "theta1", "type": "float"}, {"name": "theta2", "type": "float"} ] } } // 2. Build ansatz circuit { "tool": "apply_quantum_gate", "input": { "kernel_name": "vqe_h2", "gate_name": "ry", "qubits": [0], "parameters": ["theta1"] } } // 3. Set GPU target { "tool": "set_quantum_target", "input": { "target": "qpp-gpu" } } // 4. Compute expectation value { "tool": "observe_hamiltonian", "input": { "kernel_name": "vqe_h2", "hamiltonian_terms": [ { "paulis": ["Z", "Z", "I", "I"], "qubits": [0, 1, 2, 3], "coefficient": {"real": -1.0523732, "imag": 0.0} } ], "parameters": {"theta1": 0.5, "theta2": 1.2} } } ``` This API reference provides comprehensive documentation for all available tools and their usage patterns in the CUDA Quantum MCP Server.