返回市场
文本到相似-MCP服务器

文本到相似-MCP服务器

作者:IamCatoBot11 星标更新:2025-10-06

项目介绍

标题图片

Text2Sim MCP Server

适用于大型语言模型集成的多范式仿真引擎

这是一个通过对话界面提供多范式仿真能力的Model Context Protocol服务器。该服务器支持通过SimPy进行离散事件仿真,并通过PySD进行系统动力学建模以及与PySD兼容的JSON模式。

概述

Text2Sim MCP Server使大型语言模型能够通过自然语言接口创建、验证和执行仿真模型。服务器处理JSON结构化的仿真配置,并返回带有全面分析结果的执行结果。

支持的仿真范式

  • 离散事件仿真(DES):使用SimPy引擎进行过程导向建模
  • 系统动力学(SD):使用PySD和与PySD兼容的JSON模式进行库存和流量建模

Text2Sim MCP Server (演示)


关于

Text2Sim MCP Server是由The Cato Bot Company Limited开发的一个开源项目。我们相信透明且商业支持的开源开发,这有利于用户和贡献者的同时也支持可持续的项目增长。社区贡献可以通过标准的拉取请求程序接受。


安装

前置条件

安装 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"

了解更多:astral-sh/uv


快速开始

克隆仓库

git clone https://github.com/IamCatoBot/text2sim-MCP-server.git
cd text2sim-MCP-server

安装依赖项

uv sync

与 Claude Desktop 集成

  1. 打开:

Claude > 设置 > 开发者 > 编辑配置 > claude_desktop_config.json

  1. 添加以下块:
{
  "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" 字段中。


功能

大型语言模型集成

  • 自然语言到仿真模型转换
  • 多轮对话支持迭代模型开发
  • 使用JSON Schema 2020-12进行配置可靠性验证
  • 提供上下文错误消息及纠正指导
  • 跨对话会话的模型持久性

离散事件仿真能力

  • 具有可配置优先级和属性的多个实体类型
  • 使用FIFO、优先级和抢占调度的资源管理
  • 实体行为建模,包括放弃和重新排队
  • 资源故障和修复周期模拟
  • 可配置的指标收集和报告

系统动力学能力

  • 与PySD兼容的JSON模式
  • 库存、流量和辅助变量建模
  • 通过抽象语法树结构支持数学表达式
  • 可配置参数的时间序列仿真
  • 与PySD Python库生态系统集成

分析和验证

  • 等待时间、利用率和吞吐量等仿真指标
  • 包括暖机期和置信区间的统计分析
  • 多模式验证,包括部分、严格和结构性检查
  • 方案特定的错误报告和纠正指导

模型管理

  • 带元数据跟踪的模型存储和检索
  • JSON导出功能用于模型共享和备份
  • 自动检测DES和SD模型类型的方案
  • 带冲突解决的版本管理

文档系统

  • 带示例的上下文感知方案文档
  • 多个详细级别(简要、标准、详细)
  • 领域特定的建模模式和工作流程
  • 通过MCP工具访问的集成帮助系统

安全性

  • 基于正则表达式的分布解析,不执行代码
  • 对正式JSON模式的输入验证
  • 不暴露内部状态的安全错误处理

架构

模块化设计

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    # 模板管理工具

关键改进

  • 关注分离:每个领域都有自己的专注模块
  • 标准化错误处理:一致的错误响应带行动指南
  • 增强集成:强大的SD集成及优雅的回退
  • 专业标准:全面文档和类型提示
  • 可扩展性:易于添加新的仿真范式或工具

API 参考

MCP 工具概述

服务器通过Model Context Protocol公开了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兼容的抽象模型格式
  • 处理模型翻译和格式验证
  • 与PySD的Vensim翻译功能集成

增强工具(新于v2.6.0)

delete_model - 安全模型删除

  • 删除已保存的模型需要确认
  • 删除前提供模型元数据
  • 包括撤销建议和安全功能

JSON 模式

Text2Sim MCP Server 使用正式的JSON模式验证(草案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、优先级、抢占)的系统资源
  • 处理规则:配置顺序处理步骤,包括服务时间分布和条件路由
  • 行为规则:支持放弃、重新排队、资源故障和复杂的路由逻辑

资源类型

  • FIFO:先进先出排队(SimPy Resource)
  • 优先级:基于优先级的排队(SimPy PriorityResource)
  • 抢占:抢占优先级排队(SimPy PreemptiveResource)

有关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.mddocs/PYSD_AST_STRUCTURES_GUIDE.mdschemas/SD/README.md


架构

Text2Sim 结构为模块化组件:

  • MCP 服务器 – 通过MCP处理自然语言请求。
  • 离散事件仿真(DES)模块
    • 仿真模型 – 核心 SimPy 引擎执行流程。
    • 实体类 – 表示流经系统的单元。
    • 处理步骤 – 封装每个处理阶段的逻辑。
    • 指标收集器 – 收集等待时间和吞吐量等统计数据。
    • 安全分布解析器 – 安全地解析概率分布。
  • 系统动力学(SD)模块
    • PySD 集成 – 使用与PySD兼容的抽象模型JSON格式执行模型。
    • 模式验证 – 验证模型是否符合 abstract_model_v2.json 模式。
    • 单模式架构 – 直接 PySD 工作流程兼容,无需格式转换。

文档

额外的技术文档如下:

  • 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 是一个正在积极开发中的项目。尽管我们力求准确和稳定,请注意以下事项:

  • 正在进行的工作:软件持续进化。功能可能会更改,您可能会遇到错误或不完整功能。我们欢迎错误报告和贡献以帮助我们改进!
  • 大型语言模型驱动的工具:此服务器旨在与大型语言模型(LLMs)一起使用。仿真模型的质量和结果的准确性高度依赖于LLM的能力。
  • 验证您的结果:始终批判性地审查和验证任何仿真模型及其输出。结果应作为指导而不是替代专业验证。

我们很高兴您能使用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许可授权。