Text2Sim MCP Server
Un motor de simulación multiparadigma para eventos discretos y dinámica de sistemas, que permite simulaciones basadas en lenguaje natural a través de MCP.
Documentación

Servidor MCP Text2Sim
Motor de simulación multiparadigma para integración con LLM
Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona capacidades de simulación multiparadigma a través de interfaces conversacionales. El servidor admite simulación de eventos discretos mediante SimPy y modelado de dinámica de sistemas mediante PySD y un esquema JSON compatible con PySD.
Descripción general
El Servidor MCP Text2Sim permite a los modelos de lenguaje de gran tamaño crear, validar y ejecutar modelos de simulación a través de interfaces de lenguaje natural. El servidor procesa configuraciones de simulación estructuradas en JSON y devuelve resultados de ejecución con análisis exhaustivos.
Paradigmas de simulación admitidos
- Simulación de eventos discretos (DES): Modelado orientado a procesos mediante el motor SimPy
- Dinámica de sistemas (SD): Modelado de flujos y existencias mediante PySD y un esquema JSON compatible con PySD
Acerca de
El Servidor MCP Text2Sim es un proyecto de código abierto desarrollado por The Cato Bot Company Limited. Creemos en el desarrollo de código abierto transparente y respaldado comercialmente que beneficie tanto a usuarios como a contribuyentes, al tiempo que respalda el crecimiento sostenible del proyecto. Las contribuciones de la comunidad se aceptan mediante procedimientos estándar de solicitudes de extracción.
Instalación
Requisitos previos
- Python 3.12 o superior
- Administrador de paquetes
uv
Instalar uv
En macOS y Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
En Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Más información: astral-sh/uv
Inicio rápido
Clonar el repositorio
git clone https://github.com/IamCatoBot/text2sim-MCP-server.git
cd text2sim-MCP-server
Instalar dependencias
uv sync
Integración con Claude Desktop
- Abra:
Claude > Settings > Developer > Edit Config > claude_desktop_config.json
- Agregue el siguiente bloque:
{
"mcpServers": {
"Text2Sim MCP Server": {
"command": "uv",
"args": [
"--directory",
"PATH_TO_TEXT2SIM_MCP_SERVER",
"run",
"python",
"-m",
"mcp_server"
],
"env": {}
}
}
}
Nota: Reemplace
PATH_TO_TEXT2SIM_MCP_SERVERcon la ruta real a su repositorio clonado. Si no se encuentra el comandouv, ejecutewhich uv(Unix) oGet-Command uv(PowerShell) y use la ruta completa en el campo"command".
Características
Integración con LLM
- Conversión de lenguaje natural a modelos de simulación
- Soporte de conversaciones de múltiples turnos para el desarrollo iterativo de modelos
- Validación con JSON Schema 2020-12 para la fiabilidad de la configuración
- Mensajes de error contextuales con orientación correctiva
- Persistencia de modelos entre sesiones de conversación
Capacidades de simulación de eventos discretos
- Múltiples tipos de entidades con prioridades y atributos configurables
- Gestión de recursos con programación FIFO, por prioridad y preventiva
- Modelado de comportamiento de entidades, incluidos balking y reneging
- Simulación de ciclos de fallo y reparación de recursos
- Recopilación y generación de informes de métricas configurables
Capacidades de dinámica de sistemas
- Esquema JSON compatible con PySD
- Modelado de variables de existencias, flujos y auxiliares
- Soporte de expresiones matemáticas mediante estructuras de árbol de sintaxis abstracta
- Simulación de series temporales con parámetros configurables
- Integración con el ecosistema de la biblioteca Python PySD
Análisis y validación
- Métricas de simulación, incluidos tiempos de espera, tasas de utilización y rendimiento
- Análisis estadístico con períodos de calentamiento e intervalos de confianza
- Validación multimodo con comprobación parcial, estricta y estructural
- Informes de errores específicos del esquema y orientación para la corrección
Gestión de modelos
- Almacenamiento y recuperación de modelos con seguimiento de metadatos
- Funcionalidad de exportación JSON para compartir y respaldar modelos
- Detección automática de esquemas para tipos de modelos DES y SD
- Gestión de versiones con resolución de conflictos
Sistema de documentación
- Documentación de esquemas contextual con ejemplos
- Múltiples niveles de detalle (breve, estándar, detallado)
- Patrones y flujos de trabajo de modelado específicos del dominio
- Sistema de ayuda integrado accesible mediante herramientas MCP
Seguridad
- Análisis de distribuciones basado en expresiones regulares sin ejecución de código
- Validación de entradas contra esquemas JSON formales
- Manejo seguro de errores sin exposición del estado interno
Arquitectura
Diseño modular
El Servidor MCP Text2Sim v2.6.0 presenta una arquitectura modular completamente refactorizada que mejora la mantenibilidad, la capacidad de prueba y la extensibilidad:
mcp_server/
├── __init__.py # Package exports and version info
├── server.py # Main server entry point
├── registry.py # Centralized tool registration
├── shared/ # Common utilities
│ ├── error_handlers.py # Standardized error handling
│ ├── response_builders.py # Response formatting utilities
│ └── integration_layer.py # SD integration with fallbacks
└── tools/ # Domain-specific tool modules
├── des_tools.py # DES simulation tools
├── sd_tools.py # SD simulation tools
├── model_mgmt_tools.py # Model lifecycle management
├── validation_tools.py # Validation and help tools
└── template_tools.py # Template management tools
Mejoras clave
- Separación de responsabilidades: Cada dominio tiene su propio módulo enfocado
- Manejo de errores estandarizado: Respuestas de error coherentes con orientación práctica
- Integración mejorada: Integración robusta de SD con respaldos elegantes
- Estándares profesionales: Documentación exhaustiva y anotaciones de tipos
- Extensibilidad: Fácil de agregar nuevos paradigmas o herramientas de simulación
Referencia de la API
Descripción general de las herramientas MCP
El servidor expone 16 herramientas en 5 categorías a través del Protocolo de Contexto de Modelo:
Herramientas principales de simulación
simulate_des - Ejecutar modelos de simulación de eventos discretos
- Acepta configuración JSON con tipos de entidades, recursos y reglas de procesamiento
- Devuelve resultados de simulación con métricas y análisis estadístico
simulate_sd - Ejecutar modelos de dinámica de sistemas
- Acepta formato JSON abstractModel compatible con PySD
- Devuelve datos de series temporales y metadatos de ejecución del modelo
run_multiple_simulations - Ejecutar múltiples réplicas de simulación
- Ejecuta múltiples ejecuciones de simulación independientes con análisis estadístico
- Devuelve intervalos de confianza, medidas de variabilidad y puntuación de fiabilidad
- Admite control de números aleatorios basado en semillas para resultados reproducibles
Herramientas de validación y ayuda
validate_model - Validar configuraciones de modelos de simulación
- Admite la validación de modelos DES y SD con detección automática
- Proporciona informes de error detallados con sugerencias de corrección
- Múltiples modos de validación: parcial, estricto y estructural
help_validation - Obtener orientación sobre validación
- Muestra todas las herramientas de validación disponibles y cuándo usar cada una
- Proporciona orientación para la resolución de problemas de errores de validación
- Incluye explicaciones sobre la detección de tipos de esquema y los modos de validación
get_schema_help - Acceder a documentación exhaustiva del esquema
- Devuelve documentación estructurada para secciones del esquema con ejemplos
- Admite rutas de sección anidadas (p. ej., "processing_rules.steps")
- Múltiples niveles de detalle: breve, estándar y detallado
- Ejemplos específicos del dominio y orientación sobre flujos de trabajo
Herramientas de gestión de modelos
save_model - Almacenar modelos con metadatos
- Nombrado automático con detección de dominio
- Seguimiento de metadatos, incluido el estado de validación y las etiquetas
- Gestión de versiones con resolución de conflictos
load_model - Recuperar modelos almacenados
- Listar todos los modelos guardados con opciones de filtrado
- Cargar modelos específicos por nombre o identificador
- Integración con el seguimiento del último estado cargado
export_model - Exportar modelos a JSON
- Múltiples formatos de salida para diferentes casos de uso
- Plantillas listas para conversación para compartir sesiones
- Estimación del recuento de tokens para la gestión del contexto del LLM
Herramientas de plantillas y descubrimiento
list_templates - Explorar plantillas de modelos disponibles
- Lista plantillas preconstruidas para modelos DES y SD
- Filtrar por tipo de esquema, dominio o nivel de complejidad
- Incluye descripciones de plantillas y casos de uso
load_template - Recuperar plantillas específicas
- Cargar configuraciones de plantillas por nombre o ID de plantilla
- Devuelve configuraciones de modelos listas para usar
- Admite formatos de plantilla DES y SD
save_template - Guardar modelos como plantillas reutilizables
- Almacenar modelos validados como plantillas para uso futuro
- Nombrado automático de plantillas con metadatos
- Capacidades de organización y uso compartido de plantillas
delete_template - Eliminar plantillas de usuario
- Eliminación segura con requisitos de confirmación
- Protege las plantillas integradas contra la eliminación accidental
- Proporciona recomendaciones de respaldo
Herramientas específicas de dinámica de sistemas
get_sd_model_info - Analizar modelos de dinámica de sistemas
- Proporciona un análisis detallado de la estructura del modelo SD sin simulación
- Devuelve métricas de complejidad e información sobre variables
- Valida el formato abstractModel e informa el análisis estructural
convert_vensim_to_sd_json - Convertir modelos de Vensim a JSON de PySD
- Convierte archivos .mdl de Vensim al formato abstractModel compatible con PySD
- Maneja la traducción de modelos y la validación de formatos
- Integración con las capacidades de traducción de Vensim de PySD
Herramientas mejoradas (nuevas en v2.6.0)
delete_model - Eliminación segura de modelos
- Eliminar modelos guardados con requisitos de confirmación
- Proporciona metadatos del modelo antes de la eliminación
- Incluye sugerencias de deshacer y funciones de seguridad
Esquemas JSON
El Servidor MCP Text2Sim utiliza validación formal de esquemas JSON (Borrador 2020-12) para garantizar la corrección de los modelos de simulación y proporcionar informes de errores estructurados. El servidor admite dos formatos JSON distintos optimizados para sus respectivos paradigmas de simulación.
Formato JSON de simulación de eventos discretos
El servidor utiliza un esquema JSON compatible con SimPy para modelos de simulación de eventos discretos. Este formato proporciona una configuración declarativa que se asigna directamente a las capacidades nativas de SimPy.
Estructura básica
{
"run_time": 480,
"entity_types": {
"customer": {
"probability": 1.0,
"value": {"min": 10, "max": 50},
"priority": 5
}
},
"resources": {
"server": {
"capacity": 2,
"resource_type": "fifo"
}
},
"processing_rules": {
"steps": ["server"],
"server": {
"distribution": "uniform(5, 10)"
}
}
}
Componentes clave
- Tipos de entidades: Definen diferentes clases de entidades con probabilidades, valores, prioridades y atributos personalizados
- Recursos: Especifican recursos del sistema con límites de capacidad y disciplinas de cola (FIFO, prioridad, preventiva)
- Reglas de procesamiento: Configuran pasos de procesamiento secuenciales con distribuciones de tiempo de servicio y enrutamiento condicional
- Reglas de comportamiento: Soporte para balking, reneging, fallos de recursos y lógica de enrutamiento compleja
Tipos de recursos
- FIFO: Cola de primero en entrar, primero en salir (Recurso SimPy)
- Prioridad: Cola basada en prioridad (Recurso de prioridad SimPy)
- Preventiva: Cola de prioridad preventiva (Recurso preventivo SimPy)
Para documentación detallada del formato JSON de DES, consulte schemas/DES/README.md.
Formato JSON de dinámica de sistemas
El servidor utiliza un esquema JSON compatible con PySD para simulaciones de dinámica de sistemas. Este formato proporciona compatibilidad directa con el ecosistema de la biblioteca Python PySD.
Estructura básica
{
"abstractModel": {
"originalPath": "model_name.json",
"sections": [{
"name": "__main__",
"type": "main",
"elements": [
{
"name": "Stock_Name",
"components": [{
"type": "Stock",
"ast": {
"syntaxType": "IntegStructure",
"flow": {"syntaxType": "ReferenceStructure", "reference": "Flow_Name"},
"initial": {"syntaxType": "ReferenceStructure", "reference": "1000"}
}
}],
"units": "items"
}
]
}]
}
}
Tipos de componentes
- Existencia: Variables de acumulación que integran flujos a lo largo del tiempo
- Flujo: Variables de tasa que cambian los valores de las existencias
- Auxiliar: Variables calculadas derivadas de otras variables
Estructuras de árbol de sintaxis abstracta (AST)
El formato PySD admite dos enfoques para expresiones matemáticas:
- Referencias simples: Expresiones basadas en cadenas (p. ej.,
"Birth_Rate - Death_Rate") - Estructuras aritméticas: Estructuras matemáticas explícitas con operadores y argumentos definidos
Para documentación detallada del formato JSON de PySD, consulte docs/PYSD_JSON_SCHEMA_INTEGRATION.md, docs/PYSD_AST_STRUCTURES_GUIDE.md y schemas/SD/README.md.
Arquitectura
Text2Sim está estructurado en componentes modulares:
- Servidor MCP – Maneja solicitudes de lenguaje natural mediante MCP.
- Módulo de simulación de eventos discretos (DES)
- Modelo de simulación – Motor central SimPy que ejecuta flujos de procesos.
- Clase de entidad – Representa unidades que fluyen a través del sistema.
- Pasos de proceso – Encapsulan la lógica de cada etapa del proceso.
- Recopilador de métricas – Recopila estadísticas como tiempos de espera y rendimiento.
- Analizador seguro de distribuciones – Analiza distribuciones de probabilidad de forma segura.
- Módulo de dinámica de sistemas (SD)
- Integración con PySD – Ejecuta modelos mediante el formato JSON abstractModel compatible con PySD.
- Validación de esquemas – Valida modelos contra el esquema abstract_model_v2.json.
- Arquitectura de esquema único – Compatibilidad directa con el flujo de trabajo de PySD sin conversión de formato.
Documentación
Documentación técnica adicional disponible:
docs/PYSD_JSON_SCHEMA_INTEGRATION.md- Especificación del formato JSON de PySDdocs/PYSD_AST_STRUCTURES_GUIDE.md- Patrones de estructura AST y mejores prácticasschemas/SD/README.md- Documentación del esquema de dinámica de sistemasschemas/DES/README.md- Archivos de esquema de simulación de eventos discretosSINGLE_SCHEMA_ARCHITECTURE.md- Descripción general de la arquitectura y decisiones de diseño
Consideraciones de seguridad
-
Sin uso de
eval()
El análisis basado en expresiones regulares evita la ejecución de código arbitrario. -
Validación de entrada
Los tipos de distribución, parámetros y configuraciones de modelo se validan antes de la ejecución. -
Manejo robusto de errores
Los errores se informan de manera limpia sin filtrar el estado interno.
Aviso legal
Text2Sim MCP Server es un proyecto en desarrollo activo. Si bien nos esforzamos por la precisión y la estabilidad, tenga en cuenta lo siguiente:
- Trabajo en curso: El software evoluciona continuamente. Las funciones pueden cambiar y es posible que encuentre errores o funcionalidades incompletas. ¡Agradecemos los informes de errores y las contribuciones para ayudarnos a mejorar!
- Herramienta impulsada por LLM: Este servidor está diseñado para usarse con modelos de lenguaje grandes (LLM). La calidad de los modelos de simulación y la precisión de los resultados dependen en gran medida de las capacidades del LLM.
- Verifique sus resultados: Siempre revise y valide críticamente cualquier modelo de simulación y sus resultados. Los resultados deben usarse como guía y no como sustituto de una validación profesional.
Estamos entusiasmados de que use Text2Sim y esperamos que le resulte valioso. Sus comentarios son cruciales para su desarrollo.
Contribuciones
Las contribuciones se aceptan mediante los procedimientos estándar de bifurcación y solicitud de extracción. Los informes de errores y las sugerencias de funciones se pueden enviar a través del rastreador de problemas del proyecto.
Los cambios importantes deben discutirse antes de su implementación. El proyecto está en desarrollo activo y las decisiones arquitectónicas pueden cambiar.
Licencia
Este proyecto está licenciado bajo la Licencia MIT. Consulte el archivo LICENSE para obtener más detalles.
Cita
Para uso académico, cite como:
Maniatis, N. (2025). Text2Sim MCP Server (v2.6.0). https://github.com/IamCatoBot/text2sim-MCP-server Copyright The Cato Bot Company Limited y colaboradores. Licenciado bajo MIT.
