Usar OGR Slip2D con un agente de IA
OGR Slip2D incluye un servidor oficial del Model Context Protocol, desarrollado en el mismo repositorio que el motor de cálculo. Con él, un agente puede abrir el programa, construir un modelo y calcularlo, y después revisar los resultados dovela a dovela o mirar una imagen de ellos. Todo se ejecuta en tu ordenador y, si OGR Slip2D está abierto, puedes seguir cada paso en su ventana.
OGR Slip2D es uno de los primeros programas geotécnicos con servidor MCP oficial. Hasta donde sabemos (octubre de 2026), es además el primer programa de estabilidad de taludes de código abierto que lo incluye. Lo puede usar cualquier cliente MCP, y con un modelo local no sale nada de tu ordenador.
Servidor desde OGR Slip2D 0.1.195 · puente con la ventana desde la 0.1.207
Las operaciones del programa como herramientas MCP
El Model Context Protocol es un estándar abierto para conectar las aplicaciones basadas en modelos de lenguaje con otros programas. OGR Slip2D publica sus operaciones como herramientas MCP que puede usar cualquier cliente compatible, y el criterio de ingeniería sigue siendo tuyo.
Un modelo completo en una sola llamada
La geometría, los materiales, la región que ocupa cada uno y el nivel freático se pueden definir a partir de una descripción o tomar de un plano DXF. Cualquier cambio se puede deshacer en un solo paso.
El mismo motor que el programa de escritorio
Equilibrio límite con cualquiera de los nueve métodos y las siete búsquedas, agua subterránea por elementos finitos, análisis probabilístico, retroanálisis y optimización. Los cálculos se ejecutan como tareas en segundo plano, y cualquiera de ellas se puede cancelar.
Números e imágenes
Superficies críticas con sus dovelas, las consultas de la ventana de interpretación, códigos de error y campos de agua subterránea. El agente también puede pedir un PNG del modelo, o del área de dibujo tal como se ve en pantalla, y mirarlo.
Un agente modela y calcula un talud de 16 m
El talud de la portada se construyó en esta conversación. El agente hizo cinco llamadas, la primera a server_info, y las cifras de sus respuestas salen de OGR Slip2D.
model_defineconstruyó el talud de 16 m: tres materiales, dos contactos y un nivel freático asignado a los tres.analysis_configurefijó los métodos, la búsqueda por rejilla, 30 dovelas y la dirección de rotura.- En una tarea en segundo plano,
analysis_runcalculó 1 859 círculos con cada método. results_getdevolvió las superficies críticas con sus tablas de dovelas.
Instalar el servidor y conectar un cliente
Necesitas Python 3.11 o posterior y un cliente MCP. El servidor forma parte del paquete de OGR Slip2D, así que no hay que descargarlo aparte. En los ejemplos, sustituye C:\path\to\projects por la carpeta donde guardas tus modelos .ogr.
-
Instala OGR Slip2D con el extra MCP
El extra
[mcp]añade el SDK oficial de MCP para Python (licencia MIT), que necesita el servidor pero no el programa de escritorio.git clone https://github.com/samuelsl27/OGR-Slip2D.git cd OGR-Slip2D python -m venv .venv .venv\Scripts\activate # macOS / Linux: source .venv/bin/activate pip install -e ".[mcp]" ogr-slip2d-mcp --versionSi
ogr-slip2d-mcpno está en elPATHdel cliente, indica la ruta completa del ejecutable o ejecutapython -m ogr_mcp, que arranca el mismo servidor. -
Registra el servidor en tu cliente
Edita
claude_desktop_config.json, que está en%APPDATA%\Claude\en Windows y en~/Library/Application Support/Claude/en macOS; la versión de Microsoft Store lo guarda en%LOCALAPPDATA%\Packages\Claude_<id>\LocalCache\Roaming\Claude\. Después, reinicia Claude.{ "mcpServers": { "ogr-slip2d": { "command": "ogr-slip2d-mcp", "args": ["--workdir", "C:\\path\\to\\projects"] } } }Si Claude no encuentra el comando, escribe en
commandla ruta completa deogr-slip2d-mcp.exe(dentro de la carpetaScriptsde tu entorno virtual).Un solo comando registra el servidor en Claude Code:
claude mcp add ogr-slip2d -- ogr-slip2d-mcp --workdir "C:\path\to\projects"Claude Code pide confirmación antes de cada llamada a una herramienta. Mantenla activada para
python_exec(ver Seguridad).LM Studio lee los servidores MCP de sus modelos locales en
%USERPROFILE%\.lmstudio\mcp.jsonen Windows, o en~/.lmstudio/mcp.jsonen macOS y Linux:{ "mcpServers": { "ogr-slip2d": { "command": "ogr-slip2d-mcp", "args": ["--profile", "compact", "--workdir", "C:\\path\\to\\projects"] } } }Con modelos pequeños, usa
--profile compact. Este perfil publica 14 herramientas en lugar de 74:model_defineconstruye la geometría en una sola llamada ypython_execcubre el resto. Un modelo pequeño se pierde entre muchas herramientas, y la descripción de cada una ocupa contexto en todas las peticiones.Ollama sirve modelos, pero no habla MCP: de eso se encarga el cliente que usa el modelo. Con mcp-client-for-ollama, o con cualquier cliente MCP que acepte el formato
mcpServers, la entrada es la misma que en LM Studio:{ "mcpServers": { "ogr-slip2d": { "command": "ogr-slip2d-mcp", "args": ["--profile", "compact", "--workdir", "C:\\path\\to\\projects"] } } }Open WebUI solo se conecta a servidores MCP por HTTP (Streamable HTTP, Open WebUI 0.6.31 o posterior). Arranca el servidor con un token:
ogr-slip2d-mcp --transport http --port 8765 --token-file token.txt --workdir "C:\path\to\projects"Después, en Open WebUI, ve a Settings → Admin → Integrations → External Tool Servers → + Add Connection y elige el tipo MCP (Streamable HTTP), la URL
http://127.0.0.1:8765/mcpy la autenticación Bearer, con el token como clave.Sin
--token-fileniOGR_MCP_TOKEN, el servidor genera un token y lo muestra al arrancar. Si Open WebUI se ejecuta en Docker, usahttp://host.docker.internal:8765/mcpy arranca el servidor con--host 0.0.0.0y un token explícito; con ese host y sin token, el servidor no arranca.Lee esto primeroChatGPT solo se conecta a servidores HTTPS públicos, mediante OAuth. Si expones el servidor a Internet, expones también
python_execy, con él, tu equipo, así que hazlo solo cuando lo necesites y cierra el túnel al terminar.1. Arranca el servidor en la interfaz local (loopback) con un token de al menos 32 caracteres y la dirección pública de tu túnel:
ogr-slip2d-mcp --transport http --port 8765 --token-file token.txt --public-url https://YOUR-TUNNEL.example --workdir "C:\path\to\projects"2. Pon delante de
http://127.0.0.1:8765un túnel que termine la conexión HTTPS. Por ejemplo,cloudflared tunnel --url http://127.0.0.1:8765te da la dirección para--public-url(reinicia el servidor con ella).3. En ChatGPT, activa el modo desarrollador y crea un conector con la dirección
https://YOUR-TUNNEL.example/mcpy autenticación OAuth.4. ChatGPT te lleva a la página
/approvedel servidor, donde compruebas que el cliente es el que esperas y escribes el token detoken.txt. El servidor hace de su propio servidor de autorización OAuth 2.1 (PKCE, registro dinámico). Los tokens de acceso duran una hora y solo se guardan en memoria.Con el Agents SDK de OpenAI para Python, el servidor se usa como servidor MCP por stdio:
from agents import Agent, Runner from agents.mcp import MCPServerStdio async with MCPServerStdio( params={"command": "ogr-slip2d-mcp", "args": ["--workdir", r"C:\path\to\projects"]}, client_session_timeout_seconds=60, # an analysis can take a while ) as ogr: agent = Agent(name="geotechnics", mcp_servers=[ogr], instructions="Analyse slopes with OGR Slip2D.") result = await Runner.run(agent, "Build and analyse the slope ...")Fija
client_session_timeout_secondsde forma explícita. El SDK espera por defecto unos pocos segundos, mientras queanalysis_runespera hasta 30 s (su valor por defecto) antes de devolver una tarea cuyo estado se consulta conjob_get.Los clientes que integran herramientas mediante OpenAPI (por ejemplo, BionicGPT) pueden usar mcpo, que convierte un servidor MCP en un servicio OpenAPI. Instálalo en un entorno aparte, con la versión 1.x del SDK de MCP, que es para la que está hecho:
python -m venv mcpo-env mcpo-env\Scripts\pip install mcpo "mcp<2" mcpo-env\Scripts\mcpo --port 8000 --api-key "your-key" -- ogr-slip2d-mcp --workdir "C:\path\to\projects"La especificación queda entonces en
http://localhost:8000/openapi.jsony la documentación interactiva, en/docs.model_renderdevuelve la imagen como URI de datos; pasasave_pathsi además quieres el PNG en disco. -
Comprueba la conexión
Pide al agente que llame a
server_info. La respuesta incluye la versión, las unidades (SI) y las herramientas publicadas, e indica si la próxima llamada irá a una ventana abierta de OGR Slip2D o a un modelo propio del servidor.{"server": "ogr-slip2d", "units": "SI: m, kN, kPa, kN/m3, degrees", "profile": "full", "attached_to_window": {"window_open": true, "next_call_goes_to": "the open window"}, "program_coverage": {"mapped": 116, "pending": 0}, "licence": "AGPL-3.0-or-later", …}
El agente trabaja en tu ventana
Si OGR Slip2D está abierto, lo que pidas al agente se hace en esa ventana, uses el cliente que uses y abras primero el programa o el cliente. El programa activa su puente para agentes al arrancar, así que no hace falta configurar nada más.
- Cada cambio del agente es un paso de Edit → Undo, y el área de dibujo se actualiza después de cada uno.
- Un cálculo lanzado por el agente aparece en el panel de resultados y en el área de dibujo, igual que cuando pulsas Compute.
project_newyproject_openno se ejecutan si hay cambios sin guardar, de modo que el agente no puede descartar tu trabajo.- El puente solo escucha en 127.0.0.1, con un token aleatorio nuevo cada vez que arranca. Puedes desactivarlo en Tools → Agent bridge (MCP) o arrancar el programa con
--no-agent-bridge.
74 herramientas que cubren 116 acciones de menú
El servidor da acceso a todas las acciones de modelado y análisis de los menús del programa. Solo quedan fuera las que afectan únicamente a la vista (zoom, desplazamiento, impresión). Para modelos locales pequeños, el perfil compact publica 14 de las 74 herramientas.
| Grupo | Qué abarca | Ejemplos |
|---|---|---|
| Proyecto | Crear, abrir, guardar, describir y validar modelos | project_new · project_summary · project_validate |
| Modelo | El modelo completo en una llamada; contornos, materiales y regiones; modificar el contorno o cambiar el ángulo del talud; limpieza de la geometría | model_define · boundary_edit · slope_angle_change |
| Cargas | Cargas distribuidas y lineales, carga sísmica pseudoestática, acelerogramas | load_set · seismic_set |
| Soportes | Tipos de soporte, soportes individuales y patrones de soportes | support_type_set · support_pattern_add |
| Búsqueda | Agua en la grieta de tracción, objetos de foco, superficies definidas por el usuario | focus_set · user_surface_add |
| Agua subterránea | Propiedades hidráulicas, malla, condiciones de contorno, etapas transitorias, rejillas de presión, cálculo, lectura del campo de agua, barrido de desembalse | mesh_generate · groundwater_run |
| Estadística | Variables aleatorias, análisis probabilísticos y de sensibilidad, retroanálisis, optimización | statistics_run · back_analysis_run |
| Análisis | Ajustes, cálculos en segundo plano, tareas, resultados, consultas de la ventana de interpretación, cálculo de una superficie concreta | analysis_run · results_query · surface_evaluate |
| Archivos | Importación y exportación de DXF, informe en PDF, importación de propiedades de otro modelo | dxf_import · report_generate |
| Vista y Python | PNG del modelo o del área de dibujo tal como se ve, historial de deshacer, Python para todo lo demás | model_render · project_history · python_exec |
Seguridad y acceso por red
El servidor publica siempre python_exec, que ejecuta Python con los permisos de tu usuario y cubre lo que todavía no tiene herramienta propia. Quien pueda comunicarse con el servidor puede ejecutar código en tu equipo, así que, por defecto, solo tienes acceso tú.
- stdio (Claude, LM Studio, el Agents SDK): el servidor se ejecuta como proceso hijo del cliente y no abre ningún puerto. El riesgo que queda es la inyección de instrucciones (prompt injection), así que mantén activada la confirmación del cliente antes de cada llamada a una herramienta.
- HTTP: siempre hace falta un token, también en 127.0.0.1, y se compara en tiempo constante. Las cabeceras Host y Origin se comprueban para evitar el DNS rebinding. Sin token no hay acceso por red.
- Internet (
--public-url): OAuth 2.1 con PKCE, aprobación con límite de frecuencia y tokens que solo se guardan en memoria. El servidor nunca abre un túnel por su cuenta. - Sin telemetría: el servidor no hace llamadas de red propias.
Ejemplos de peticiones
Dale al agente los datos de ingeniería (geometría, resistencias, agua) y pídele las comprobaciones que harías tú. Todas las unidades son del SI.
«Abre dam.dxf, dime qué capas importarías como contorno externo y como contornos de material, e impórtalas.»
«Calcula el talud por Bishop, Spencer y Morgenstern-Price con búsqueda por rejilla y dime si los tres dan el mismo círculo crítico.»
«Genera la malla de la presa, pon el nivel del embalse a 17 m, calcula la filtración en régimen permanente y usa esas presiones intersticiales en el talud de aguas abajo.»
«Trata c′ y φ′ de la arcilla como variables normales, con coeficientes de variación del 15 % y del 8 % y una correlación de −0.5, y dame la probabilidad de rotura.»
«¿Qué fuerza horizontal de soporte hace falta a la cota 4 m para que el factor de seguridad crítico llegue a 1.3?»
«Guarda el modelo, exporta las superficies críticas a DXF y genera el informe en PDF del último análisis.»
Preguntas frecuentes
¿Mi modelo sale de mi ordenador?
El servidor no hace ninguna llamada de red. Al proveedor del modelo le llega lo que le envía tu cliente, como en cualquier otra conversación. Con un modelo local (LM Studio, Ollama), no sale nada de tu equipo.
¿Qué modelos pueden usarlo?
Cualquier cliente que hable MCP. Los modelos grandes en la nube manejan bien el perfil completo de 74 herramientas; con modelos locales pequeños, arranca el servidor con --profile compact.
¿Puede el agente estropear mi modelo?
Cada cambio se puede deshacer. Un script ejecutado con python_exec cuenta como un solo paso y se revierte si falla, y el agente no puede abrir ni crear un modelo si hay cambios sin guardar. Los ajustes que el cálculo no usaría se rechazan, con el motivo, en lugar de guardarse.
¿La respuesta del agente es un resultado de ingeniería?
Las cifras salen del mismo motor que las del programa de escritorio y necesitan las mismas comprobaciones: cálculos independientes, la sensibilidad del resultado a los datos de entrada y el criterio de ingeniería. La responsabilidad de un proyecto es del ingeniero que lo firma, tanto si el modelo lo ha construido él como si lo ha hecho un agente.