EnzymML MCP服务器
一个MCP(模型上下文协议)服务器,提供通过EnzymML Suite桌面应用程序与EnzymeML文档交互的全面工具。该服务器使AI助手和其他MCP兼容客户端能够读取、修改、搜索和可视化以EnzymML格式存储的生化数据。
概述
EnzymML是一种标准化的数据格式,用于表示计算生物学和生物化学中的酶反应和实验数据。此MCP服务器充当AI助手和EnzymML Suite桌面应用程序之间的桥梁,允许您以编程方式与EnzymMl文档交互,搜索外部数据库中的生化实体,并生成实验测量的可视化结果。
服务器与本地计算机上运行的EnzymML Suite应用程序通信,并为文档操作、数据库搜索和数据可视化提供了一套丰富的工具。所有数据都使用TOON(树面向对象表示法)格式进行交换,该格式提供了一种结构化和高效的方法来表示复杂的生化数据。
特性
文献阅读与探索
- 文件概述:生成EnzymML文档结构和关系的高级概述,这对于在执行编辑之前了解不同组件是如何连接的至关重要
- 完整文档阅读:阅读完整的EnzymML文档结构,不包括最佳性能的测量值
- 测量数据访问:具体获取详细的实验测量数据,包括时间序列、浓度和测量值
文档修改
- 智能文档扩展:通过自动验证和一致性检查将新数据合并到现有的EnzymML文档中。支持添加新项目和对ID标识的现有项目进行手术编辑
- 选择性元件移除:从文档中删除特定元素,包括完整的对象(容器、蛋白质、小分子、反应、参数、复合物)或反应中的部分删除(反应物、产物、改性剂)
外部数据库集成
- UniProt搜索:在UniProt知识库中搜索支持布尔运算符(AND、OR、NOT)和基于字段的过滤(登录、EC编号、生物体、蛋白质名称、序列等)的蛋白质
- PubChem搜索:使用布尔运算符和基于字段的过滤(名称、公式、InChI、InChIKey、SMILES、质量等)在PubChem数据库中搜索小分子。对于小分子搜索,首选ChEBI
- ChEBI搜索:当PubChem结果不足时,在ChEBI数据库中搜索小分子
可视化
- 测量绘图:从EnzymML文档生成SVG测量图。可以按测量ID绘制所有测量值或指定子集,以MultiImageResponse格式返回图像
先决条件
在使用此MCP服务器之前,请确保已安装以下内容:
- 锈Rust编程语言和Cargo包管理器(建议使用1.70或更高版本)。从以下位置安装 rustup.rs
- EnzymML套件:必须在本地计算机上安装并运行EnzymML Suite桌面应用程序。服务器与Suite应用程序通信以访问EnzymML文档
- MCP客户端:连接到此服务器的MCP兼容客户端应用程序(如Cursor、Claude Desktop或其他MCP实现)
构建服务器
要从源代码构建EnzymML MCP服务器,请执行以下步骤:
- 克隆仓库 (如果你还没有):
git clone
cd enzymeml-mcp- 构建项目 使用货物:
cargo build --release这将编译服务器并在以下位置创建可执行文件 target/release/enzymeml-mcp.
- 用于开发构建 (编译速度更快,二进制文件更大):
cargo build开发建筑位于 target/debug/enzymeml-mcp.
运行服务器
EnzymML MCP服务器使用stdio(标准输入/输出)传输与MCP客户端通信。该服务器设计为由MCP兼容客户端启动,并通过stdin/stdout上的JSON-RPC消息进行通信。
手动测试
要手动测试服务器,可以直接运行它:
cargo run --release但是,请注意,服务器需要stdin上的JSON-RPC消息,如果没有正确的MCP客户端连接,将不会产生有用的输出。
示例配置(光标)
对于Cursor,您可以在MCP设置文件中配置服务器:
{
"mcpServers": {
"enzymeml": {
"command": "/path/to/enzymeml-mcp/target/release/enzymeml-mcp",
"args": []
}
}
}示例配置(克劳德桌面)
对于Claude Desktop,添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"enzymeml": {
"command": "/path/to/enzymeml-mcp/target/release/enzymeml-mcp",
"args": []
}
}
}重要:替换 /path/to/enzymeml-mcp 使用编译二进制文件的实际路径。
可用工具
服务器公开了以下用于与EnzymML文档交互的工具:
list_documents
列出Suite应用程序中可用的所有EnzymML文档,以TOON格式返回。在处理多个文档时,有助于发现哪些文档可用。
enzymeml_document_overview
以TOON格式生成EnzymML文档结构和关系的高级概述。在执行编辑之前或需要了解组件的连接方式时,了解文档结构至关重要。
read_enzymeml_document
从Suite桌面应用程序读取完整的EnzymML文档结构,不包括性能测量。以TOON格式返回数据。使用 read_measurements 如果你特别需要测量数据。
read_measurements
具体而言,从EnzymML文档中获取测量数据,包括时间序列、浓度和测量值。以TOON格式返回详细的实验数据。
extend_enzymeml_document
智能地将新数据合并到现有的EnzymML文档中。支持添加新项目和对现有项目(由ID标识)进行手术编辑。执行自动验证和一致性检查。在提交更改之前,始终要求确认。
remove_from_enzymeml_document
有选择地从EnzymML文档中删除元素。支持完全去除物体(血管、蛋白质、小分子、反应、参数、复合物)和部分去除反应中的物体(反应物、产物、改性剂)。需要了解来自的现有ID enzymeml_document_overview.
search_uniprot
在UniProt知识库中搜索蛋白质。支持布尔运算符(AND、OR、NOT)和基于字段的过滤。可过滤的字段包括登录号、EC号、生物体名称、蛋白质名称和序列。
search_pubchem
在PubChem数据库中搜索小分子。支持布尔运算符和基于字段的过滤(名称、公式、InChI、InChIKey、SMILES、质量等)。对于小分子搜索,首选ChEBI。
search_chebi
在ChEBI数据库中搜索小分子。支持布尔运算符和基于字段的过滤。当PubChem结果不足时使用。
plot_measurements
从EnzymML文档生成SVG测量图。可以按测量ID绘制所有测量值或指定子集。返回MultiImageResponse格式的图像列表。
使用工作流程
通过此MCP服务器处理EnzymeML文档时,请遵循以下推荐的工作流程:
- 从说明开始:呼叫
how_to_use_the_enzymeml_suite了解可用的工具及其使用模式 - 列出可用文件:使用
list_documents查看可用的文档(如果处理多个文档) - 获取文档概述:总是打电话
enzymeml_document_overview在执行任何修改以了解文档结构和发现现有ID之前 - 搜索外部数据库:在添加新的蛋白质或小分子之前,请搜索UniProt、PubChem或ChEBI,用标准化的元数据丰富您的数据
- 读取文档数据:使用
read_enzymeml_document或read_measurements根据需要访问特定数据 - 修改文档:使用
extend_enzymeml_document用于添加和编辑,或remove_from_enzymeml_document对于移除。修改前始终验证ID是否存在 - 可视化数据:使用
plot_measurements生成实验测量的可视化
依赖项
此项目依赖于以下关键依赖关系:
- rmcp:Rust的模型上下文协议实现
- 酵素:用于处理EnzymmeML文档的Rust库(来自EnzymeML组织)
- 东京:Rust的异步运行时
- 卡通格式:TOON格式编码和解码
- reqwest:用于外部数据库API调用的HTTP客户端
- 羽毛笔:用于生成SVG可视化的绘图库
看 Cargo.toml 查看完整的依赖关系列表及其版本。
