内容
# SimBiology MCP 服务器
[](https://pypi.org/project/simbiology-mcp/)
[](https://pypi.org/project/simbiology-mcp/)
[](https://github.com/Sepanta-Yalameha/SIMBIOLOGY-MCP/actions/workflows/test.yml?query=branch%3Amain)
[](LICENSE)
[](https://www.mathworks.com/products/matlab.html)
[](#requirements)
## 概述
SimBiology MCP 服务器是 MATLAB SimBiology 的模型上下文协议(MCP)接口,实现了从 AI 代理和外部工具对生物建模和模拟工作流的程序化控制。
它通过 MATLAB 引擎为 Python 搭建了大型语言模型系统与 MATLAB 的 SimBiology 工具箱之间的桥梁,实现了计算生物学模型的自动创建、修改和执行。
---
## 目的
SimBiology 是用于建模生化系统和药代动力学系统的强大环境,但它主要由 MATLAB 驱动且交互性强。
该 MCP 服务器提供了一个结构化的程序化层:
- 将 SimBiology 功能公开为 MCP 工具
- 实现模型的自动构建和模拟
- 支持系统生物学中基于代理的工作流
- 消除了手动 MATLAB 交互的需要
- 支持构建 PK/PD 模型、修改反应和参数、模拟时间过程、导出结果以及从 PubMed 和 iGEM 拉取支持上下文等工作流
---
## 安装
选择一种方式安装 Python 包,然后完成以下公共设置步骤。
### 1. 手动仓库检查
当您想要本地获取完整的源代码树时使用,包括仓库技能文件和测试。
```shell
git clone https://github.com/Sepanta-Yalameha/SIMBIOLOGY-MCP.git
cd SIMBIOLOGY-MCP
python -m venv .venv
```
激活虚拟环境:
```powershell
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
```
```shell
# macOS 或 Linux
source .venv/bin/activate
```
```shell
python -m pip install -e .
```
### 2. 推荐:`uv tool install`
当您想要一个干净的安装而无需克隆仓库时使用。
```powershell
uv tool install simbiology-mcp
```
### 3. 普通 `pip`
如果您不想使用 `uv tool install`,请使用此方法。
```powershell
python -m pip install simbiology-mcp
```
## 完成设置
最简单的方法是交互式设置。它安装 MATLAB 引擎,配置 MCP 客户端,并提供安装匹配的技能:
```powershell
simbiology-mcp setup
```
对于完全交互式设置,请按照提示选择 MATLAB 安装、客户端、配置范围和技能目标。
对于无头或仅限引擎的设置,请从本地 MATLAB 安装中安装 MATLAB 引擎:
```powershell
simbiology-mcp setup --skip-configure
```
如果找到多个 MATLAB 安装,请交互式选择一个或传递索引:
```powershell
simbiology-mcp setup --matlab-index 0 --skip-configure
```
配置 MCP 客户端:
```powershell
simbiology-mcp configure --client cursor
simbiology-mcp configure --client codex --project
simbiology-mcp configure --list-clients
```
配置助手支持 Claude Code、Cursor、Codex、Windsurf、GitHub Copilot CLI 和 Visual Studio Code/GitHub Copilot。用户范围是默认范围;使用 `--project` 获取项目本地配置。现有的匹配条目保持不变;使用 `--force` 替换不同的现有条目。
单独安装合成生物学建模技能:
```powershell
simbiology-mcp get-skill --client codex
```
使用 `--client`、`--project`、`--user` 或 `--install-path` 直接选择目标。运行 `simbiology-mcp get-skill` 时不带标志以获取交互式选择器。
添加 `--no-skill` 以省略技能安装。
---
## 需求
- MATLAB R2024a 或更高版本
- 已安装 SimBiology 工具箱
- Python 3.12 或更高版本
- MATLAB 支持的 Windows、macOS 或 Linux 环境
- MCP 兼容的客户端;配置助手支持 Claude Code、Cursor、Codex、Windsurf、GitHub Copilot CLI 和 Visual Studio Code/GitHub Copilot
---
## 用法
一旦设置已为选定的代理配置了 MCP 服务器,请启动或重启该代理的客户端会话。客户端在连接到服务器时会启动服务器;您无需手动运行 `start`。
### 手动配置和服务器启动
仅当您的客户端不受 `configure` 支持时使用手动配置:
将您的 MCP 客户端指向已安装的服务器可执行文件。使用绝对路径,以便客户端不依赖于您的 shell 的 `PATH`:
```json
{
"mcpServers": {
"simbiology": {
"command": "C:/absolute/path/to/simbiology-mcp.exe",
"args": ["start"]
}
}
}
```
或者,从激活的仓库环境中直接运行服务器:
```powershell
python -m simbiology_mcp start
```
MATLAB 引擎在需要它的第一个工具调用时延迟启动,因此客户端启动保持快速。
### 外部 API 密钥
PubMed 无需密钥即可工作,但有速率限制。要提高限制,请复制 `.env.example` 到 `.env` 并设置 `NCBI_API_KEY`。
---
## 工具
服务器公开了以下 MCP 工具:
| 工具名称 | 描述 | 输入 | 输出 |
| --- | --- | --- | --- |
| `load_project`、`create_project`、`save_project` | 加载、创建和持久化 SimBiology 项目。 | 项目路径、模型名称、保存目标。 | 确认以及项目/模型元数据。 |
| `create_model`、`rename_model`、`remove_model`、`list_models` | 管理加载项目中的模型。 | 模型名称或重命名目标。 | 确认或模型名称列表。 |
| `create_compartment`、`modify_compartment`、`remove_compartment`、`list_compartments` | 管理隔室。 | 名称以及隔室属性,如容量和单位。 | 确认或隔室数据。 |
| `create_species`、`modify_species`、`remove_species`、`list_species` | 管理物种。 | 名称以及物种属性,如初始数量和单位。 | 确认或物种数据。 |
| `create_reaction`、`modify_reaction`、`remove_reaction`、`list_reactions` | 管理反应和速率表达式。 | 反应物、产物、可逆性、速率定律字段。 | 确认或反应数据。 |
| `create_parameter`、`modify_parameter`、`remove_parameter`、`list_parameters` | 管理模型参数。 | 名称、值、单位和范围。 | 确认或参数数据。 |
| `get_simulation_settings`、`configure_simulation`、`simulate_model` | 检查、配置和运行模拟。 | 求解器/设置字段,可选 `species`、`doses`、`variants` 和输出限制。 | 当前设置或模拟结果行。 |
| `create_dose`、`modify_dose`、`remove_dose`、`list_doses` | 管理重复和计划剂量。 | 剂量类型、目标、时间、量/速率字段。剂量量使用量/质量单位;剂量速率使用量/时间或质量/时间单位。 | 确认或剂量数据。 |
| `create_variant`、`modify_variant`、`remove_variant`、`list_variants` | 管理命名模型覆盖。 | 变体名称和完整内容条目。 | 确认或变体数据。 |
| `export_graph`、`export_csv` | 将 `simulate_model` 使用的相同运行导出到 PNG 或 CSV。 | 可选路径以及可选 `species`、`doses` 和 `variants`。 | 文件元数据或内联 CSV 文本。 |
| `list_series`、`steady_state`、`series_min`、`series_max` | 在不重新运行 MATLAB 的情况下分析导出的 CSV 数据。 | CSV 路径和目标系列名称。 | 系列名称或计算值。 |
| `pubmed_search`、`pubmed_summary`、`pubmed_article` | 从 PubMed 拉取文献上下文。 | 查询、PubMed ID 和摘要选项。 | 搜索结果、文章详情或摘要。 |
| `igem_part`、`igem_search`、`igem_search_best` | 从 iGEM 注册表中查找部件。 | 确切标识符或自由文本查询。 | 部件记录或排名匹配。 |
---
## 项目布局
```text
simbiology_mcp/
├── core/ SimBiology 会话、每个模型的读取和命令生成器
├── engine/ 单例 MATLAB 引擎包装器和错误类型
├── tools/ MCP 工具定义和共享注册表
├── external/ PubMed 和 iGEM API 包装器
├── interfaces/ FastMCP 服务器线路
├── scripts/ CLI 助手,如 setup、configure 和 get-skill
└── skills/ 打包技能 markdown
examples/ 可运行的演示(例如 demo_simulation.py)
tests/ 单元测试加上 MATLAB/live 集成测试
```
## 作者
- [Yojith Sai Biradavolu](https://github.com/yojith)
- [Sepanta Yalameha](https://github.com/Sepanta-Yalameha)
通过项目的 [GitHub 仓库](https://github.com/Sepanta-Yalameha/SIMBIOLOGY-MCP) 欢迎贡献、问题和功能请求。
---
## 开发
运行密封测试套件(无需 MATLAB 或网络):
```powershell
py -m pytest -m "not matlab and not live"
```
`matlab` 测试需要一个工作的 MATLAB 引擎安装。`live` 测试访问外部 API,仅在 `--run-live` 下运行。