Quantum Code Validator
Un servidor para validar código de bibliotecas de computación cuántica, con soporte para PennyLane.
Documentación
Quantum Code Validator
Un servidor de Model Context Protocol (MCP) para validar código de bibliotecas de computación cuántica. Actualmente es compatible con PennyLane, con planes de ampliar el soporte a otras bibliotecas de computación cuántica en el futuro.
Descripción general
Quantum Code Validator es una herramienta que ayuda a los desarrolladores a garantizar que su código de computación cuántica sea válido y siga los patrones de uso correctos para diversas bibliotecas cuánticas. Proporciona validación estática del código cuántico contra la documentación oficial y ofrece capacidades de consulta de documentación de referencia.
Características
- Validación estática de código: Valida código cuántico mediante:
- Verificación de la sintaxis del código usando el módulo
astde Python - Verificación de la compilación del código usando
py_compile - Comparación del uso de métodos de bibliotecas cuánticas contra la documentación oficial
- Verificación de la sintaxis del código usando el módulo
- Consulta de documentación de referencia: Recupera documentación de métodos para versiones específicas de bibliotecas cuánticas
- Validación específica por versión: Admite la validación contra versiones específicas de bibliotecas cuánticas
- Arquitectura extensible: Diseñado para admitir múltiples bibliotecas de computación cuántica
Soporte actual
- PennyLane: Soporte completo para validación estática y consulta de documentación de referencia
- Versiones compatibles: v0.35.0 - v0.41.1
Soporte planificado
Las siguientes bibliotecas de computación cuántica están planificadas para soporte futuro:
- Qulacs
- Qiskit
- Cirq
- cuQuantum
- Y más...
Uso
El servidor proporciona dos herramientas principales:
-
validate_quantum_method_by_static:# Example usage result = validate_quantum_method_by_static( code="your_quantum_code_here", version="v0.41.1" # Optional ) -
request_quantum_method_reference:# Example usage docs = request_quantum_method_reference( method_name="qml.CNOT", # Method name without arguments version="v0.41.1" # Optional )
Instalación
1. Instalar con uv
git clone https://github.com/yourusername/quantum-code-validator.git
cd quantum-code-validator
-
Crear y activar un entorno virtual:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate -
Instalar uv (si aún no está instalado):
curl -LsSf https://astral.sh/uv/install.sh | sh -
Instalar las dependencias usando uv:
uv sync -
Ejecutar el servidor:
uv run src/server.py
Configuración del servidor MCP
1. Servidor MCP local mediante uv
1.1 Cargar y analizar el código fuente de PennyLane
Cargar información básica del código fuente de PennyLane y guardarla como archivos JSON por versión. La versión de PennyLane será la instalada en el entorno de ejecución, por lo que debe cambiarse usando el comando uv según sea necesario.
uv run scripts/parse_pennylane_api.py ./refdocs/pennylane/raw/v0.41.1.json
1.2 Formatear el código fuente en documento
A continuación, usaremos un LLM para formatear la información básica extraída en el Paso 1 en información documental a la que se pueda acceder en MCP. Especifique las versiones de PennyLane que se convertirán en documentos como una lista separada por comas. Tenga en cuenta que este proceso utiliza un LLM, por lo que debe establecerse la variable de entorno "OPENAI_API_KEY", y hay un costo de aproximadamente $2.50 por versión. Los resultados del formateo se guardarán en "./refdocs/pennylane/formatted".
uv run scripts/format_docs_by_llm.py v0.41.0,v0.41.1
1.3 Configurar el servidor MCP localmente
Finalmente, configurando el archivo mcp.json según la plataforma e iniciando el servidor MCP, la herramienta queda disponible para su uso con la herramienta objetivo. Como referencia, se proporciona un enlace a la documentación sobre cómo configurarlo para Claude Desktop.
{
"mcpServers": {
"quantum-code-validator": {
"command": "uv",
"args": [
"--directory",
"/your/mcp/server/directory/quantum-code-validator",
"run",
"server.py",
"--transport",
"stdio"
]
}
}
}
Licencia
Este proyecto está licenciado bajo la Licencia MIT; consulte el archivo LICENSE para más detalles.