返回市场
化学MCP轻量版

化学MCP轻量版

作者:cassiusoat2 星标更新:2025-06-23

项目介绍

ChemMCP - 化学分子计算平台

ChemMCP 是基于模型上下文协议(MCP)的一系列化学分子计算工具集合,提供了19种专门的化学分子处理工具。

🚀 快速开始

环境要求

  • Python 3.11+(推荐 Python 3.11 或 3.12)
  • Conda 环境管理器

安装步骤

  1. 创建一个 conda 环境:
conda create -n chemmcp python=3.11
conda activate chemmcp
  1. 安装依赖:
pip install -r requirements.txt
  1. 安装 ChemMCP:
pip install -e .

安装选项

ChemMCP 提供灵活的安装选项,允许您根据需求选择:

选项 1:基本安装(推荐)

# 安装核心依赖,支持17个工具
pip install -r requirements.txt

支持的工具:除了 MoleculeCaptionerMoleculeGenerator 以外的所有工具

选项 2:完全安装(包括AI工具)

# 方法 A: 使用可选依赖组
pip install -e ".[ai]"

# 方法 B: 手动安装AI依赖
pip install -r requirements.txt
pip install transformers>=4.20.0 torch>=1.9.0

支持的工具:全部19个工具,包括AI驱动的分子描述和生成能力

选项 3:开发环境

# 安装所有依赖和开发工具
pip install -e ".[all,dev]"

配置环境变量

根据使用的工具设置相应的 API 密钥:

# 网络搜索工具所需(必需)
export TAVILY_API_KEY="your_tavily_api_key"

# LLM 工具所需(必需)
export LLM_MODEL_NAME="openai/gpt-4o"
export OPENAI_API_KEY="your_openai_api_key"

# ChemSpace 工具所需(可选,仅在 PubChem 查找失败时作为后备)
export CHEMSPACE_API_KEY="your_chemspace_api_key"

🔧 工具列表

1. WebSearch - 网络搜索

功能:执行网络搜索以获取与化学相关的信息
输入:搜索查询字符串
输出:搜索结果及相关链接

2. MoleculeWeight - 分子量计算

功能:计算分子的分子量
输入:SMILES 分子结构字符串
输出:分子量值

3. MoleculeAtomCount - 原子计数

功能:统计分子中各种原子的数量
输入:SMILES 分子结构字符串
输出:每种原子类型的数量统计

4. MoleculeSimilarity - 分子相似性

功能:计算两个分子之间的 Tanimoto 相似性
输入:两个 SMILES 分子结构字符串
输出:相似性得分(0-1)

5. FunctionalGroups - 功能团识别

功能:识别分子中存在的功能团
输入:SMILES 分子结构字符串
输出:检测到的功能团列表

6. SmilesCanonalization - SMILES 标准化

功能:将 SMILES 字符串转换为标准化形式
输入:SMILES 分子结构字符串
输出:标准化的 SMILES 字符串

7. Iupac2Smiles - IUPAC 名称转 SMILES

功能:将 IUPAC 化学名称转换为 SMILES 格式
输入:IUPAC 化学名称
输出:对应的 SMILES 字符串

8. Smiles2Iupac - SMILES 转 IUPAC 名称

功能:将 SMILES 格式转换为 IUPAC 化学名称
输入:SMILES 分子结构字符串
输出:对应的 IUPAC 化学名称

9. Smiles2Formula - SMILES 转换公式

功能:将 SMILES 格式转换为分子式
输入:SMILES 分子结构字符串
输出:分子式(如 C2H6O)

10. Name2Smiles - 通用名称转 SMILES

功能:将化学物质的通用名称转换为 SMILES 格式
输入:化学物质名称
输出:对应的 SMILES 字符串

11. Selfies2Smiles - SELFIES 转 SMILES

功能:将 SELPIES 格式转换为 SMILES 格式
输入:SELEES 字符串
输出:对应的 SMILES 字符串

12. Smiles2Selfies - SMILES 转 SELFIES

功能:将 SMILES 格式转换为 SELEES 格式
输入:SMILES 分子结构字符串
输出:对应的 SELEES 字符串

13. Smiles2Cas - SMILES 转 CAS 号

功能:将 SMILES 格式转换为 CAS 注册号
输入:SMILES 分子结构字符串
输出:对应的 CAS 注册号

14. MoleculeSmilesCheck - SMILES 验证

功能:验证 SMILES 字符串的语法正确性
输入:SMILES 分子结构字符串
输出:验证结果(有效/无效)

15. ReactionSmilesCheck - 反应 SMILES 验证

功能:验证反应 SMILES 字符串的语法正确性
输入:反应 SMILES 字符串
输出:验证结果(有效/无效)

16. MoleculeVisualizer - 分子可视化

功能:生成分子的二维结构图
输入:SMILES 分子结构字符串
输出:分子结构图像

17. MoleculeExaminer - 分子描述生成

功能:使用 AI 生成分子的文本描述
输入:SMILES 分子结构字符串
输出:详细的分子文本描述

18. MoleculeGenerator - 分子生成

功能:根据描述使用 AI 生成分子结构
输入:分子描述文本
输出:对应的 SMILES 分子结构

19. MoleculeModifier - 分子修饰

功能:分子的化学修饰和衍生化
输入:SMILES 分子结构字符串
输出:修改后的分子结构选项

📖 使用示例

# 启动 MCP 服务器,使用特定工具
python -m chemmcp --tools WebSearch MoleculeWeight MoleculeAtomCount

# 或使用所有工具
python -m chemmcp --tools WebSearch MoleculeWeight MoleculeAtomCount MoleculeSimilarity FunctionalGroups SmilesCanonicalization Iupac2Smiles Smiles2Iupac Smiles2Formula Name2Smiles Selfies2Smiles Smiles2Selfies Smiles2Cas MoleculeSmilesCheck ReactionSmilesCheck MoleculeVisualizer MoleculeCaptioner MoleculeGenerator MoleculeModifier

🔧 MCP 配置

在您的 MCP 客户端配置文件中添加以下配置:

{
  "mcpServers": {
    "ChemMCP": {
      "command": "/opt/miniconda3/envs/chemmcp/bin/python",  // 如何找到路径: conda activate chemmcp && which python
      "args": [
        "-m", "chemmcp", 
        "--tools", 
        "WebSearch", 
        "MoleculeWeight",
        "MoleculeAtomCount",
        "MoleculeSimilarity", 
        "FunctionalGroups",
        "SmilesCanonicalization",
        "Iupac2Smiles",
        "Smiles2Iupac",
        "Smiles2Formula",
        "Name2Smiles",
        "Selfies2Smiles",
        "Smiles2Selfies",
        "Smiles2Cas",
        "MoleculeSmilesCheck",
        "ReactionSmilesCheck",
        "MoleculeVisualizer",
        "MoleculeCaptioner",
        "MoleculeGenerator", 
        "MoleculeModifier"
      ],
      "toolCallTimeoutMillis": 300000,
      "env": {
        "TAVILY_API_KEY": "your_tavily_api_key_here",
        "LLM_MODEL_NAME": "openai/gpt-4o",
        "OPENAI_API_KEY": "your_openai_api_key_here",
        "CHEMSPACE_API_KEY": "your_chemspace_api_key_here",  // 可选:仅在需要额外数据库查找时使用
        "PATH": "/opt/miniconda3/envs/chemmcp/bin:/usr/local/bin:/usr/bin:/bin"  // 如何找到路径: conda activate chemmcp && echo $PATH
      }
    }
  }
}

注意

  • 如何找到正确的 Python 路径
    # 激活您的 conda 环境
    conda activate chemmcp
    # 查看 Python 路径
    which python
    # 复制输出的路径并替换上面配置中的路径
    
  • 请用实际的 API 密钥替换上述密钥
  • CHEMSPACE_API_KEY 是可选的:仅当 Iupac2Smiles 工具在 PubChem 中查找失败时,才会使用 ChemSpace 作为备用数据库
  • 确保您的 Python 环境版本是 3.11 或更高版本

🛠️ 依赖项

  • RDKit:分子处理和计算的核心库
  • PubChemPy:PubChem 数据库接口
  • SELFIES:自引用分子的嵌入字符串表示
  • rdchiral:手性分子处理
  • synspace:分子空间的探索和修改
  • tavily-python:网络搜索 API
  • litellm:统一的 LLM API 接口
  • requests:HTTP 请求库

📄 许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文档。


注意:使用某些工具需要相应的 API 密钥。请确保在使用前正确设置了环境变量。