Skip to main content
Glama

pybme-mcp

Python 3.10+ License: MIT

Un servidor de Model Context Protocol (MCP) que envuelve a pyBME, permitiendo a los agentes LLM realizar análisis geoestadísticos de Entropía Máxima Bayesiana mediante intención en lenguaje natural en lugar de código.

Qué hace

El servidor expone 7 herramientas, 6 recursos y 4 prompts que forman un flujo de trabajo de razonamiento de incertidumbre:

ingest_external_scenario_evidence → inspect_modeling_context
       → fit_uncertainty_model → run_uncertainty_update
       → explain_uncertainty_drivers
       → compare_operator_approaches
       → design_next_observation_or_scenario

Herramientas

Herramienta

Propósito

ingest_external_scenario_evidence

Importar observaciones duras/blandas y topología de red

inspect_modeling_context

Detectar el tipo de problema y recomendar familias de modelos

fit_uncertainty_model

Ajustar modelos de covarianza espacial o de red con validación cruzada

run_uncertainty_update

Ejecutar predicción BME en objetivos de estimación

explain_uncertainty_drivers

Identificar qué impulsa la incertidumbre en ubicaciones específicas

compare_operator_approaches

Comparar operadores euclidianos vs. de grafo vs. basados en la física

design_next_observation_or_scenario

Clasificar ubicaciones de sensores candidatos por reducción de varianza

Familias de modelos soportadas

  • spatial — Covarianza euclidiana (exponencial, gaussiana, esférica, …)

  • space_time — Covarianza espacio-temporal separable

  • graph_laplacian — Kernel de difusión de grafo en topología de red

  • physics_informed_network — Covarianza de red físicamente consistente

  • spectral_hodge — Descomposición espectral de Hodge para redes de flujo

Related MCP server: groundstation

Instalación

Instale pyBME primero (aún no disponible en PyPI):

pip install git+https://github.com/wiesnerfriedman/pybme.git

Luego instale el servidor MCP:

pip install git+https://github.com/wiesnerfriedman/pybme-mcp.git

O desde un clon local:

git clone https://github.com/wiesnerfriedman/pybme-mcp.git
cd pybme-mcp
pip install -e ".[dev]"

Configuración

Claude Desktop

Añada a claude_desktop_config.json:

{
  "mcpServers": {
    "pybme": {
      "command": "pybme-mcp"
    }
  }
}

VS Code (Copilot)

Añada a .vscode/mcp.json:

{
  "servers": {
    "pybme": {
      "type": "stdio",
      "command": "pybme-mcp"
    }
  }
}

Uso

Una vez configurado, pregunte a su agente cosas como:

  • "Ajusta un modelo de incertidumbre a mis observaciones de PM2.5"

  • "Ejecuta una actualización BME consciente de la red en esta red de aguas pluviales"

  • "Compara operadores euclidianos frente a operadores de Laplaciano de grafo"

  • "¿Dónde debería colocar el siguiente sensor para reducir la incertidumbre al máximo?"

Consulte examples/mcp_agent_demo.ipynb para ver un tutorial paso a paso de toda la cadena de herramientas.

Desarrollo

git clone https://github.com/wiesnerfriedman/pybme-mcp.git
cd pybme-mcp
pip install -e ".[dev]"
pytest

Estructura

pybme-mcp/
├── docs/
│   ├── pybme-openswmm-integration.md
│   └── v1-mcp-spec.md
├── examples/
│   └── mcp_agent_demo.ipynb
├── pyproject.toml
├── src/pybme_mcp/
│   ├── __init__.py
│   ├── __main__.py
│   ├── registry.py
│   ├── schemas.py
│   ├── serialisation.py
│   ├── server.py
│   └── services/
│       ├── catalog.py
│       ├── comparison.py
│       ├── context.py
│       ├── explanation.py
│       ├── fitting.py
│       ├── hodge.py
│       ├── ingest.py
│       ├── scenario_design.py
│       └── update.py
└── tests/
    ├── conftest.py
    ├── test_ingest.py
    └── test_integration.py

Licencia

MIT

Related MCP Connectors

Related MCP Servers