Model Coupling Platform Server

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

  1. Crear entorno virtual

uv venv -p python3.10 .venv\Scripts\activate # En Unix: source .venv/bin/activate

  1. Instalar dependencias

sincronización UV bloqueo UV

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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()

  1. 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

  1. 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

GITHUB: https://github.com/EstebanIIT/cs550\_MCP.git

-
security - not tested
-
license - not tested
-
quality - not tested

Una implementación de servidor JSON-RPC 2.0 basada en FastAPI que permite a los usuarios trabajar con archivos HDF5, enviar trabajos Slurm, recuperar información de la CPU y visualizar datos CSV a través de puntos finales de API estandarizados.

ID: yuv3dl5por