MCP 为化学 AI 工作流带来的功能
模型上下文协议(Model Context Protocol,MCP)规定了 AI 应用如何与另一个程序交换上下文并调用该程序提供的能力。在化学领域,该程序可能提供化学信息学库、检索蛋白质注释、搜索文献或访问实验室记录。MCP 是接口,而不是其背后的科学方法、数据库或模型。
它的实际价值在于职责分离。助手可以请求有文档说明的操作,而不是只依赖生成文本;科学库或上游 API 执行底层工作。研究人员随后可以分别检查参数、返回的证据和解释。
当对话需要最新记录或可重复计算时,这种方式很有用。如果直接查询 API 或现有分析脚本已经能满足任务,其优势就不那么明显。标准化访问并不能让不恰当的计算在科学上变得合理,也不能单凭标准化就保证多工具生成的叙述可靠。
区分宿主、客户端、服务器和科学工具
官方 MCP 架构概述区分了 AI 应用、其连接,以及提供能力的程序。
| 层级 | 作用 | 化学领域评估问题 |
|---|---|---|
| 宿主 | 协调一个或多个 MCP 客户端的 AI 应用 | 助手可以访问哪些工具?哪些操作需要批准? |
| 客户端 | 与特定服务器通信的组件 | 此连接是否支持所需的协议和传输方式? |
| 服务器 | 提供工具、资源或提示的程序 | 实际可用的操作和输入模式是什么? |
| 工具 | 服务器提供的可调用操作 | 这是检索、计算、下载,还是会产生重要后果的操作? |
| 科学后端 | 执行底层工作的库、数据库 API 或配置好的服务 | 哪些假设、依赖项和来源信息决定了结果? |
实用的规划链条是 宿主 → 客户端 → MCP 服务器 → 科学后端 → 返回的证据 → 助手解释。标明每个组件的运行位置,以及数据跨越网络边界的位置。
服务器可以提供可执行的工具、上下文资源和可复用的提示。这些是不同的接口:工作流提示本身不能证明其中要求的每项操作都会执行。当前架构将 STDIO 描述为本地进程通信方式,将 Streamable HTTP 描述为远程通信方式。该概述并不能证明较早的化学项目实现了当前协议版本。
LLM 请求如何变成科学操作
宿主通过工具发现(包括 tools/list)获取可用工具的描述和输入模式。模型可以提出工具名称和结构化参数;应用通过客户端使用 tools/call 路由请求,然后将结果作为对话上下文提供。
例如,RCSB MCP 将 get_pdb_entry 记录为一个带有 pdb_id 参数的工具。于是,查询条目信息可以转化为结构化检索,而不是依赖记忆生成缺乏依据的摘要。仍需检查结果:助手的说明与返回的 JSON 是彼此独立的输出。
评估时,可在此流程中加入决策关卡:验证参数、检查授权、只执行获准操作、检查完整性和错误,最后再进行摘要。这些是建议的工作流控制措施,并非 MCP 自动提供的保证。
应将工具响应和检索到的段落视为数据。不能仅仅因为其中的文字提出了相关要求,就据此授权使用新凭据、进行无关下载或发布内容。
MCP、API、智能体和 Skills 是不同层次
API 为服务提供程序化接口。MCP 封装器可以将该 API 放在可发现的工具之后,但不会取代其访问要求或数据条款。托管的 MCP 端点是一项运营中的服务;下载服务器源代码并不能复现该服务的配置或保证。
智能体是决定采取哪些步骤以及何时停止的系统。提供工具的服务器不一定就是自主研究者。NovoMCP 另外描述了编排功能,而若干数据库服务器主要提供检索接口。
Agent Skill 按照 Agent Skills 概述,将程序性说明打包在 SKILL.md 中,并可选择附带脚本和参考资料。一个拟议的 Skill 可以告诉智能体如何检查化学证据并调用 MCP 工具。加载这些说明并不会安装 RDKit、提供 API 凭据,也不会让可选模拟服务变得可用。不同宿主对 Skills 的支持也不相同。
更广泛的层次比较请参阅 MCP、Skills、智能体和 API;本指南侧重于理解和评估 MCP 连接。
九种 MCP 实现:任务与边界
应根据操作和科学领域选择,而不是只看项目名称中是否出现“MCP”。下列内容描述的是来源中记载的能力,不代表经过测试的组合,也不构成上游数据库的背书。
| 类别与实现 | 有文档说明的输入和输出 | 重要边界 |
|---|---|---|
| 化学信息学:RDKit MCP Server (TandemAI) | 提供 RDKit 函数;包括工具列表、由 OpenAI 驱动的 CLI 客户端和评估套件 | 全面覆盖 RDKit 是目标,而非已证明的覆盖范围;应检查实际工具清单 |
| 分子显示:ChemCP | render_molecule 接收 SMILES;RDKit.js 在嵌入式界面中生成二维图和描述符 |
交互式查看需要 MCP Apps 支持和 CDN 访问;尚未确认存在独立的名称解析服务 |
| 蛋白质注释:UniProt MCP (cyanheads) | 查询或标识符可返回注释、映射、分类学、蛋白质组元数据和序列 | 映射可能需要轮询任务;大型条目可能需要按区段进一步查询 |
| 蛋白质结构:RCSB MCP (cnyambura) | PDB 标识符和端点查询可返回元数据;下载会返回状态和本地路径 | 生物体搜索提供的是操作说明,而非已检索的匹配项;下载会写入文件 |
| 文献:PubMed MCP (cyanheads) | 查询和文章标识符可返回元数据、摘要、可用的全文和参考文献 | 全文可能不可用或被截断;标识符转换覆盖 PMC 收录的文章 |
| 材料:Materials Project MCP (benedictdebrah) | 元素选择、属性筛选条件或材料 ID 通过 mp_api 返回结构和材料属性数据 |
需要 Materials Project API key;应检查单条记录和工具输出 |
| ELN 记录:Benchling MCP (longevity-genie) | 搜索文本以及项目或文件夹筛选条件可检索条目、序列、项目和实体 | 需要工作区凭据;文档未说明记录编辑或仪器控制功能 |
| 跨类别初筛:PocketScout MCP | 目标标识符和结合残基支持已知位点、配体历史、保守性、变体和文献评估 | 报告的是已知位点证据,而不是新口袋预测;原始数据与 interpretation 应保持可区分 |
| 计算编排:NovoMCP | 基于 SMILES 的描述文件和已配置封装器支持通过 MCP 和 REST 开展更广泛的计算工作流 | ADMET 和其他计算能力取决于服务;裸安装只提供部分功能 |
这些类别涵盖化学信息学、文献研究、材料发现、科学数据检索和实验室数据工作流。访问 ELN 不等同于实体实验室自动化。在扩展工具链之前,请使用科学任务明确研究目标。
连接前定义输入/输出约定
从一项规模小、可独立核验的任务开始。记录以下内容:
- **输入:**准确的标识符、分子表示、筛选条件以及可接受的歧义范围。
- **输出:**必需字段、相关单位、来源标识符和完整性指标。
- **证据:**用于比较的上游记录或参考计算。
- **边界:**允许的操作,以及禁止的写入、下载或外部提交。
- **失败响应:**证据缺失、含糊或无法访问时应返回什么。
在约定中区分检索、计算和解释。对于分子,应明确如何处理盐、形式电荷和立体化学,而不要让自然语言请求掩盖表示方式的选择。对于蛋白质,应说明物种和蛋白质亚型(isoform)的预期。对于文献,应保留实际执行的查询,并区分摘要与全文。
在记录中保留三种证据状态:有文档说明表示来源描述了某项能力;拟议表示正在规划连接或工作流;在你的评估中观察到表示已记录的运行在你的环境中产生了结果。本文不声称有任何观察到的结果。
拟议示例:公开蛋白质证据档案
**拟议评估,并非已证明的互操作性:**使用 UniProt MCP、RCSB MCP 和 PubMed MCP,为研究人员选定的一个公开蛋白质登录号汇编一份小型档案。
- **确认身份。**向 UniProt 检索提供登录号和预期物种。请求身份、功能、来源信息和相关交叉引用。如果身份与预期物种不符,应停止并请求澄清。
- **检查结构证据。**仅在人为检查后才选择返回的 PDB 交叉引用。通过 RCSB MCP 请求条目和聚合物元数据。初期排除结构下载,以免试验涉及工具发起的文件写入。
- **检查引文。**检索选定 PubMed 标识符的元数据。保留摘要、可用的更正或撤稿链接,以及缺失项目报告。只有在必要时才请求全文,并记录提供方和截断情况。
- **生成有界输出。**返回一张表,包含登录号、物种、PDB 条目、实验方法字段、文章标识符、来源信息和未解决的缺口。将工具返回的事实与助手推断分开。
验收时要问的是:每个字段是否与其来源记录一致,每个缺口是否仍清晰可见,而不是助手是否给出了有说服力的靶点建议。建立此检索约定后,可以单独评估 PocketScout 的已知位点初筛;组合这些组件仍属于拟议方案。
选择服务器并有意处理故障
检查所选宿主、服务器版本、协议支持、传输方式、身份验证、运行环境和后端依赖项。相比不受限制的工具注册表,优先选择一个完成必要任务的工具。化学 MCP 选择指南提供了后续的选择框架。
启动前解决文档之间的冲突。Benchling 的 README 描述了默认 HTTP 启动方式,而其包入口映射到一个 STDIO 函数;应核实选定的启动路径,而不要假定任一行为必然成立。UniProt 的 README 前置条件和包清单规定了不同的 Bun 最低版本;在本地部署前检查所选包的要求。
根据结构化故障状态分支处理。对于正在运行的 UniProt 映射任务,应轮询其任务票据,而不是重新提交任务;另行跟进已完成页面的后续内容。大纲响应后,再获取所需区段。在批处理中保留每个项目的失败信息。遇到速率限制或超时时,应使用有界重试,并报告检索不完整,而不是编造缺失记录。ChemCP 查看器故障可能源于宿主或 CDN 限制,而非分子无效。
隐私、可复现性和科学局限
梳理文件访问、外部目标、命令执行、凭据范围和日志记录。本地服务器仍可能调用外部数据库或模型服务。在不了解处理和保留规则之前,不要将机密结构或未发表的 ELN 记录用于试验。NovoMCP 文档所述的本地默认配置不含身份验证,因此不能想当然地认为它适合暴露到网络。
分别记录工具名称、参数、服务器版本、依赖项版本、来源时间戳、原始输出和解释。保留故障和截断提示。设计证据记录时,请参阅可复现的化学 AI。
科学局限仍取决于具体方法。数据库检索不能证明覆盖完整;描述符不等于实验活性;PocketScout 的局部上下文保守性分析不等同于完整的多序列比对;可选模拟封装器不能验证模拟设置。基于 LLM 的评估裁判可以评估响应,但不能替代科学参考核验。源代码可见也不代表拥有许可权利:NovoMCP 的封装器和编排核心分别适用不同范围的条款,检索到的数据也有自身条款。
扩展工作流之前:
- [ ] 标明宿主、客户端、服务器、后端和网络边界。
- [ ] 定义输入、输出、参考证据和停止规则。
- [ ] 解决启动、传输、运行环境和依赖项的不确定性。
- [ ] 仅授予必需的凭据和权限。
- [ ] 将有界结果与其来源证据进行比较。
- [ ] 保留有文档说明、拟议和观察到的区别。
- [ ] 启用写入或会产生重要后果的操作前,检查其影响和恢复方式。
来源
协议和 Skill 定义依据 MCP 架构文档和 Agent Skills 概述。各实现的能力和局限根据项目文档描述:RDKit MCP Server、ChemCP、UniProt MCP、RCSB MCP、PubMed MCP、Materials Project MCP、Benchling MCP、PocketScout MCP和 NovoMCP。启动和运行环境差异见 Benchling 包元数据和 UniProt 包元数据;NovoMCP 的范围区别见其顶层许可证和核心许可证。