
这是一个通过对话界面提供多范式仿真能力的Model Context Protocol服务器。该服务器支持通过SimPy进行离散事件仿真,并通过PySD进行系统动力学建模以及与PySD兼容的JSON模式。
Text2Sim MCP Server使大型语言模型能够通过自然语言接口创建、验证和执行仿真模型。服务器处理JSON结构化的仿真配置,并返回带有全面分析结果的执行结果。
Text2Sim MCP Server是由The Cato Bot Company Limited开发的一个开源项目。我们相信透明且商业支持的开源开发,这有利于用户和贡献者的同时也支持可持续的项目增长。社区贡献可以通过标准的拉取请求程序接受。
uv 包管理器uvcurl -LsSf https://astral.sh/uv/install.sh | sh
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
了解更多:astral-sh/uv
git clone https://github.com/IamCatoBot/text2sim-MCP-server.git
cd text2sim-MCP-server
uv sync
Claude > 设置 > 开发者 > 编辑配置 > 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"字段中。
Text2Sim MCP Server v2.6.0 特别具有完全重构的模块化架构,提高了可维护性、可测试性和可扩展性:
mcp_server/
├── __init__.py # 包导出和版本信息
├── server.py # 主服务器入口点
├── registry.py # 工具集中注册
├── shared/ # 公共实用工具
│ ├── error_handlers.py # 标准化错误处理
│ ├── response_builders.py # 响应格式化实用工具
│ └── integration_layer.py # SD集成及回退
└── tools/ # 领域特定工具模块
├── des_tools.py # DES仿真工具
├── sd_tools.py # SD仿真工具
├── model_mgmt_tools.py # 模型生命周期管理
├── validation_tools.py # 验证和帮助工具
└── template_tools.py # 模板管理工具
服务器通过Model Context Protocol公开了16个工具,分布在5个类别中:
simulate_des - 执行离散事件仿真模型
simulate_sd - 执行系统动力学模型
run_multiple_simulations - 执行多次仿真复制
validate_model - 验证仿真模型配置
help_validation - 获取验证指导
get_schema_help - 访问全面的方案文档
save_model - 存储模型及其元数据
load_model - 检索存储的模型
export_model - 将模型导出为JSON
list_templates - 浏览可用的模型模板
load_template - 检索特定模板
save_template - 将模型保存为可重用模板
delete_template - 删除用户模板
get_sd_model_info - 分析系统动力学模型
convert_vensim_to_sd_json - 将Vensim模型转换为PySD JSON
delete_model - 安全模型删除
Text2Sim MCP Server 使用正式的JSON模式验证(草案2020-12)来确保仿真模型的正确性,并提供结构化的错误报告。服务器支持两种不同的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)"
}
}
}
有关DES JSON格式的详细文档,请参阅 schemas/DES/README.md。
服务器使用与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"
}
]
}]
}
}
PySD格式支持两种数学表达式方法:
Birth_Rate - Death_Rate”)有关PySD JSON格式的详细文档,请参阅 docs/PYSD_JSON_SCHEMA_INTEGRATION.md、docs/PYSD_AST_STRUCTURES_GUIDE.md 和 schemas/SD/README.md。
Text2Sim 结构为模块化组件:
额外的技术文档如下:
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 Server 是一个正在积极开发中的项目。尽管我们力求准确和稳定,请注意以下事项:
我们很高兴您能使用Text2Sim,并希望您觉得它有价值。您的反馈对它的开发至关重要。
通过标准的fork-and-pull-request程序接受贡献。错误报告和功能建议可以通过项目问题追踪器提交。
重大变更应在实施前讨论。该项目处于积极开发中,架构决策可能会发生变化。
本项目根据MIT许可证授权。详情见LICENSE文件。
对于学术用途,请引用:
Maniatis, N. (2025). Text2Sim MCP Server (v2.6.0). https://github.com/IamCatoBot/text2sim-MCP-server 版权所有 The Cato Bot Company Limited 和贡献者。根据MIT许可授权。