Text2Sim MCP 服务器
*用于大型语言模型集成的多范式模拟引擎*
一个模型上下文协议服务器,通过交互式接口提供多范式模拟能力。该服务器支持通过SimPy进行离散事件模拟,以及通过PySD和PySD兼容的JSON模式进行系统动力学建模。
概述
Text2Sim MCP服务器使大型语言模型能够通过自然语言接口创建、验证和执行仿真模型。该服务器处理JSON结构的仿真配置,并返回包含全面分析的执行结果。
支持的仿真范式
- 离散事件模拟(DES)使用SimPy引擎的面向过程建模
- 系统动力学(SD)使用PySD和PySD兼容的JSON模式进行存量-流量建模
")
______________________________________________________________________
关于
Text2Sim MCP服务器是一个由(某团队/组织)开发的开源项目 凯托机器人有限公司我们信奉透明、由商业支持的开源开发模式,这种模式既惠及用户,也惠及贡献者,同时支持项目的可持续发展。社区贡献通过标准的拉取请求(pull request)程序被接纳。
______________________________________________________________________
安装
先决条件
- python 3.12 或更高
uv包管理器
安装 uv
在 macOS 和 Linux 上:
curl -LsSf https://astral.sh/uv/install.sh | sh在Windows(PowerShell)上:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"了解更多: 星体/紫外线
______________________________________________________________________
快速入门
克隆仓库
git clone https://github.com/IamCatoBot/text2sim-MCP-server.git
cd text2sim-MCP-server安装依赖项
uv sync与Claude桌面版的集成
- 开放:
Claude > Settings > Developer > Edit Config > claude_desktop_config.json
- 添加以下代码块:
{
"mcpServers": {
"Text2Sim MCP Server": {
"command": "uv",
"args": [
"--directory",
"PATH_TO_TEXT2SIM_MCP_SERVER",
"run",
"python",
"-m",
"mcp_server"
],
"env": {}
}
}
}注: 替换PATH_TO_TEXT2SIM_MCP_SERVER(请将)替换为您的克隆仓库的实际路径。如果uv命令未找到,请运行which uv(Unix) 或者Get-Command uv(PowerShell) 并使用完整路径在"command"字段。
______________________________________________________________________
特点/功能
大型语言模型(LLM)集成
- 自然语言到仿真模型的转换
- 支持多轮对话的迭代模型开发
- 2020-12版JSON Schema配置可靠性验证
- 带有纠正指导的情境错误信息
- 跨对话会话的模型持久性
离散事件模拟能力
- 具有可配置优先级和属性的多种实体类型
- 使用先进先出(FIFO)、优先级和抢占式调度的资源管理
- 实体行为建模,包括拒绝服务和退出服务
- 资源故障与修复周期模拟
- 可配置的指标收集与报告
系统动力学能力
- 与PySD兼容的JSON模式
- 库存、流量和辅助变量建模
- 通过抽象语法树结构支持数学表达式
- 具有可配置参数的时间序列模拟
- 与PySD Python库生态系统集成
分析与验证
- 模拟指标,包括等待时间、利用率和吞吐量
- 带有预热期和置信区间的统计分析
- 多模式验证,包括部分检查、严格检查和结构检查
- 针对特定模式的错误报告及修正指南
模型管理
- 带元数据追踪的模型存储与检索
- 模型共享和备份的JSON导出功能
- DES和SD模型类型的自动模式检测
- 带冲突解决功能的版本管理
文档系统
- 带示例的上下文感知模式文档
- 多个细节级别(简要、标准、详细)
- 特定领域的建模模式和工作流程
- 通过MCP工具访问的集成帮助系统
安全
- 基于正则表达式的分布解析,无需代码执行
- 根据正式的JSON模式进行输入验证
- 安全错误处理,不暴露内部状态
______________________________________________________________________
建筑
模块化设计
Text2Sim MCP Server v2.6.0 版本采用全新重构的模块化架构,提高了可维护性、可测试性和可扩展性:
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关键改进
- 关注点分离(或译为:职责分离)每个领域都有其专门的模块
- 标准化错误处理提供一致的错误响应,并附带可操作的指导建议
- 增强整合强大的SD(软件定义/标准定义等,具体含义需根据上下文确定)集成,具备优雅的回退机制
- 专业标准全面的文档和类型提示
- 可扩展性易于添加新的模拟范式或工具
______________________________________________________________________
API 参考文档
MCP 工具概述
服务器暴露(或提供) 16种工具 跨越;遍及 5个类别 通过模型上下文协议:
核心模拟工具
simulate_des - 执行离散事件模拟模型
- 接受包含实体类型、资源和处理规则的JSON配置
- 返回包含指标和统计分析的模拟结果
simulate_sd - 执行系统动力学模型
- 接受与PySD兼容的抽象模型JSON格式
- 返回时间序列数据和模型执行元数据
run_multiple_simulations - 执行多次模拟重复
- 运行多个独立的模拟实验,并进行统计分析
- 返回置信区间、变异性度量和可靠性评分
- 支持基于种子的随机数控制,以确保结果可重复
验证和辅助工具
validate_model - 验证仿真模型配置
- 支持DES和SD模型验证,具备自动检测功能
- 提供详细的错误报告及修正建议
- 多种验证模式:部分验证、严格验证和结构验证
help_validation - 获取验证指导
- 显示所有可用的验证工具以及何时使用每个工具
- 为验证错误提供故障排除指南
- 包括模式类型检测和验证模式说明
get_schema_help - 访问全面的模式文档
- 返回带有示例的模式部分结构化文档
- 支持嵌套的节路径(例如,“processing_rules.steps”)
- 多个细节级别:简要、标准和详细
- 特定领域的示例和工作流程指导
模型管理工具
save_model - 存储带有元数据的模型
- 自动命名并检测域名
- 元数据追踪,包括验证状态和标签
- 带冲突解决功能的版本管理
load_model - 检索存储的模型
- 列出所有已保存的模型,并提供过滤选项
- 通过名称或标识符加载特定模型
- 与最后加载状态追踪的集成
export_model - 将模型导出为JSON格式
- 针对不同使用场景的多种输出格式
- 适用于会话共享的即用型模板
- 大型语言模型(LLM)上下文管理中的令牌数量估算
模板和发现工具
list_templates - 浏览可用的模型模板
- 列出DES和SD模型的预构建模板
- 按模式类型、领域或复杂度级别进行筛选
- 包括模板描述和用例
load_template - 提取特定模板
- 按名称或模板ID加载模板配置
- 返回可直接使用的模型配置
- 支持DES和SD两种模板格式
save_template - 将模型保存为可重用的模板
- 将验证过的模型存储为模板以供将来使用
- 使用元数据自动命名模板
- 模板共享与组织功能
delete_template - 删除用户模板
- 需确认后安全删除
- 保护内置模板免受意外删除
- 提供备份建议
系统动力学专用工具
get_sd_model_info - 分析系统动力学模型
- 提供SD模型结构的详细分析,无需模拟
- 返回复杂性指标和变量信息
- 验证抽象模型格式并报告结构分析
convert_vensim_to_sd_json - 将Vensim模型转换为PySD JSON格式
- 将Vensim的.mdl文件转换为PySD兼容的abstractModel格式
- 处理模型翻译和格式验证
- 与PySD的Vensim转换功能集成
增强工具(v2.6.0 新增)
delete_model - 安全删除模型
- 移除需要确认的已保存模型
- 在删除前提供模型元数据
- 包含撤销建议和安全功能
JSON 模式(或JSON架构)
Text2Sim MCP服务器采用正式的JSON Schema验证(2020-12草案)来确保仿真模型的正确性,并提供结构化的错误报告。该服务器支持两种针对各自仿真范式优化的独立JSON格式。
离散事件模拟JSON格式
服务器使用一种与SimPy兼容的JSON模式来表示离散事件模拟模型。这种格式提供了声明式配置,可直接映射到SimPy的原生功能。
基本结构
{
"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)"
}
}
}关键组件
- 实体类型定义具有不同概率、值、优先级和自定义属性的实体类别
- 资源指定具有容量限制和排队规则(先进先出、优先级、抢占式)的系统资源
- 处理规则配置具有服务时间分布和条件路由的顺序处理步骤
- 行为规则支持犹豫、背弃、资源故障以及复杂的路由逻辑
资源类型
- FIFO(先进先出)先进先出排队(SimPy 资源)
- 优先权基于优先级的排队(SimPy PriorityResource)
- 抢先的;优先的抢占式优先级排队(SimPy 抢占式资源)
要查看DES JSON格式的详细文档,请参阅 schemas/DES/README.md.
系统动力学JSON格式
服务器使用与PySD兼容的JSON模式进行系统动力学模拟。这种格式与PySD Python库生态系统直接兼容。
基本结构
{
"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"
}
]
}]
}
}组件类型
- 库存随时间累积流量的变量
- 流动;流畅影响股票价值的变量
- 辅助的由其他变量计算得出的变量
抽象语法树(AST)结构
PySD格式支持两种数学表达式的方法:
- 简单引用基于字符串的表达式(例如。,
"Birth_Rate - Death_Rate") - 算术结构具有明确运算符和参数的显式数学结构
有关PySD JSON格式的详细文档,请参阅 docs/PYSD_JSON_SCHEMA_INTEGRATION.md, docs/PYSD_AST_STRUCTURES_GUIDE.md,以及 schemas/SD/README.md.
______________________________________________________________________
建筑
Text2Sim由模块化组件构成:
- MCP服务器 – 通过MCP处理自然语言请求。
- 离散事件模拟(DES)模块
- 模拟模型 – 核心 SimPy(注:SimPy是一个用于模拟的Python库,直接翻译为“模拟Py”可能不够准确,但在此保持原样以体现其专有名词的特性) 执行流程的引擎。 - 实体类 – 表示流经系统的单位。 - 处理步骤 – 为每个处理阶段封装逻辑。 - 指标收集器 – 收集诸如等待时间和吞吐量等统计数据。 - 安全分发解析器 – 安全地解析概率分布。
- 系统动力学(SD)模块
- PySD 集成 – 使用与PySD兼容的abstractModel JSON格式执行模型。 - 模式验证 – 根据abstract_model_v2.json模式验证模型。 - 单一架构(或单模式架构) – 直接 PySD(Python系统动力学) 无需格式转换的工作流程兼容性。
文档
可提供额外的技术文档:
docs/PYSD_JSON_SCHEMA_INTEGRATION.md- PySD JSON格式规范docs/PYSD_AST_STRUCTURES_GUIDE.md- AST(抽象语法树)结构模式和最佳实践schemas/SD/README.md- 系统动力学架构文档schemas/DES/README.md- 离散事件模拟架构文件SINGLE_SCHEMA_ARCHITECTURE.md- 架构概述和设计决策
______________________________________________________________________
安全考虑事项
- 不
eval()使用\
基于正则表达式的解析可防止任意代码执行。
- 输入验证\
在执行之前,会对分布类型、参数和模型配置进行验证。
- 强大的错误处理\
错误报告清晰明了,不会泄露内部状态。
______________________________________________________________________
免责声明
Text2Sim MCP 服务器 这是一个正在积极开发中的项目。虽然我们力求准确性和稳定性,但请注意以下事项:
- 进行中的工作/未完成的工作 该软件在不断更新迭代。功能可能会有所变动,您可能会遇到漏洞或功能不完善的情况。我们欢迎您报告漏洞并做出贡献,以帮助我们改进!
- 基于大型语言模型(LLM)的工具: 这台服务器旨在与大型语言模型(LLMs)配合使用。模拟模型的质量和结果的准确性在很大程度上取决于大型语言模型的能力。
- 验证您的结果: 始终对任何模拟模型及其输出结果进行批判性审查和验证。结果应作为参考指南,而不能替代专业的验证。
我们很高兴您能使用Text2Sim,并希望您能觉得它非常有价值。您的反馈对其发展至关重要。
______________________________________________________________________
做出贡献
贡献可以通过标准的分支和拉取请求流程来提交。错误报告和功能建议可以通过项目问题跟踪系统提交。
在实施前应对重大变更进行讨论。该项目正在积极开发中,架构决策可能会有所变化。
______________________________________________________________________
许可证
这个项目采用以下许可协议 麻省理工学院许可证. 查看 许可证 文件中详细说明。
______________________________________________________________________
引用
用于学术用途时,请引用为:
马尼亚蒂斯,N.(2025). Text2Sim MCP服务器(版本2.6.0). https://github.com/IamCatoBot/text2sim-MCP-server 版权所有 © The Cato Bot Company Limited 及其贡献者。遵循 MIT 许可证。
______________________________________________________________________

