Implementación del servidor MCP
Nombre: Esteban Nicolas ID de estudiante: A20593170
I. Capacidades MCP implementadas
1 Recursos de datos 1.1 Listado de archivos HDF5
Enumera archivos HDF5 simulados en una estructura de directorio
Parámetros:
path_pattern(patrón de ruta de archivo opcional)
2 Herramientas 2.1 Envío de trabajos de Slurm
Simula el envío de un trabajo a un programador Slurm
Parámetros:
script_path(obligatorio),cores(opcional, valor predeterminado=1)
2.2 Informes de núcleos de CPU
Informa el número de núcleos de CPU disponibles en el sistema
No se requieren parámetros
2.3 Visualización CSV
Traza dos columnas de un archivo CSV (el valor predeterminado son las dos primeras columnas)
Parámetros:
csv_path(obligatorio),column x,column y(ambas opcionales)
II. Instrucciones de configuración
Crear entorno virtual
uv venv -p python3.10 .venv\Scripts\activate # En Unix: source .venv/bin/activate
Instalar dependencias
sincronización UV bloqueo UV
Configuración del entorno: El proyecto utiliza pyproject.toml para la gestión de dependencias. Las dependencias clave incluyen:
API rápida
Uvicornio
Pydantic
Pandas
Matplotlib
Pytest
Pytest-ascyncio
Ejecución del servidor MCP
Iniciar el servidor cd src uvicorn server:app --reload
El servidor estará disponible en:
Punto final de la API: http://localhost:8000/mcp Comprobación del estado: http://localhost:8000/health
III Pruebas
Ejecutar todas las pruebas:
pruebas de pytest/Ejecutar archivo de prueba específico:
pruebas de pytest/test_capabilities_plot_vis.py pruebas de pytest/test_capabilities_hdf5.py pruebas de pytest/test_capabilities_cpu_core.py pruebas de pytest/test_capabilities_slurm.py pruebas de pytest/test_mcp_handler.py
Solicitudes de ejemplo 2.1 Lista de recursos disponibles
curl -X POST http://localhost:8000/mcp
-H "Tipo de contenido: aplicación/json"
-d '{"jsonrpc":"2.0","método":"mcp/listResources","id":1}'
2.2 Lista de archivos HDF5
curl -X POST http://localhost:8000/mcp
-H "Tipo de contenido: aplicación/json"
-d '{"jsonrpc":"2.0","método":"mcp/callTool","parámetros":{"herramienta":"lista_de_archivos_hdf5","patrón_de_ruta":"/data/sim_run_123"},"id":2}'
2.3 Enviar trabajo de Slurm
curl -X POST http://localhost:8000/mcp
-H "Tipo de contenido: aplicación/json"
-d '{"jsonrpc":"2.0","método":"mcp/callTool","parámetros":{"herramienta":"slurm_job_submission","ruta_de_script":"/jobs/analysis.sh","núcleos":4},"id":3}'
2.4 Trazar columnas CSV
curl -X POST http://localhost:8000/mcp
-H "Tipo de contenido: aplicación/json"
-d '{"jsonrpc":"2.0","método":"mcp/callTool","parámetros":{"herramienta":"plot_vis_columns","csv_path":"data.csv","columna x":"tiempo","columna y":"temperatura"},"id":4}'
IV Notas de implementación
Implementaciones simuladas:
-El listado de archivos HDF5 utiliza una estructura de directorio simulada -El envío de trabajos de Slurm genera identificadores de trabajos simulados -Los informes de núcleos de CPU utilizan os.cpu_count()
Visualización CSV:
-Crea gráficos en un directorio plots_results -El valor predeterminado son las dos primeras columnas si no se especifica ninguna -Devuelve la ruta al archivo PNG generado
Manejo de errores:
-Respuestas de error JSON-RPC 2.0 adecuadas -Validación de entrada para todos los parámetros -Manejo elegante de archivos faltantes/rutas no válidas
This server cannot be installed
Related Resources
Related MCP Servers
- -security-license-qualityA server implementing Model Coupling Protocol for HDF5 file operations, Slurm job management, hardware monitoring, and data compression.Last updated -MIT License
- -security-license-qualityA JSON-RPC 2.0 compliant server that enables interaction with HDF5 data files and Slurm job scheduling through standardized API endpoints.Last updated -
- -security-license-qualityA lightweight FastAPI server that allows remote execution of shell commands on Windows, with real-time output streaming and security features like API key authentication and rate limiting.Last updated -1MIT License
- -securityAlicense-qualityA FastMCP-based server that provides data analysis tools for processing, analyzing, and visualizing data with an intuitive Streamlit web interface.Last updated -2MIT License