ChemMCP 是基于模型上下文协议(MCP)的一系列化学分子计算工具集合,提供了19种专门的化学分子处理工具。
conda create -n chemmcp python=3.11
conda activate chemmcp
pip install -r requirements.txt
pip install -e .
ChemMCP 提供灵活的安装选项,允许您根据需求选择:
# 安装核心依赖,支持17个工具
pip install -r requirements.txt
支持的工具:除了 MoleculeCaptioner 和 MoleculeGenerator 以外的所有工具
# 方法 A: 使用可选依赖组
pip install -e ".[ai]"
# 方法 B: 手动安装AI依赖
pip install -r requirements.txt
pip install transformers>=4.20.0 torch>=1.9.0
支持的工具:全部19个工具,包括AI驱动的分子描述和生成能力
# 安装所有依赖和开发工具
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"
功能:执行网络搜索以获取与化学相关的信息
输入:搜索查询字符串
输出:搜索结果及相关链接
功能:计算分子的分子量
输入:SMILES 分子结构字符串
输出:分子量值
功能:统计分子中各种原子的数量
输入:SMILES 分子结构字符串
输出:每种原子类型的数量统计
功能:计算两个分子之间的 Tanimoto 相似性
输入:两个 SMILES 分子结构字符串
输出:相似性得分(0-1)
功能:识别分子中存在的功能团
输入:SMILES 分子结构字符串
输出:检测到的功能团列表
功能:将 SMILES 字符串转换为标准化形式
输入:SMILES 分子结构字符串
输出:标准化的 SMILES 字符串
功能:将 IUPAC 化学名称转换为 SMILES 格式
输入:IUPAC 化学名称
输出:对应的 SMILES 字符串
功能:将 SMILES 格式转换为 IUPAC 化学名称
输入:SMILES 分子结构字符串
输出:对应的 IUPAC 化学名称
功能:将 SMILES 格式转换为分子式
输入:SMILES 分子结构字符串
输出:分子式(如 C2H6O)
功能:将化学物质的通用名称转换为 SMILES 格式
输入:化学物质名称
输出:对应的 SMILES 字符串
功能:将 SELPIES 格式转换为 SMILES 格式
输入:SELEES 字符串
输出:对应的 SMILES 字符串
功能:将 SMILES 格式转换为 SELEES 格式
输入:SMILES 分子结构字符串
输出:对应的 SELEES 字符串
功能:将 SMILES 格式转换为 CAS 注册号
输入:SMILES 分子结构字符串
输出:对应的 CAS 注册号
功能:验证 SMILES 字符串的语法正确性
输入:SMILES 分子结构字符串
输出:验证结果(有效/无效)
功能:验证反应 SMILES 字符串的语法正确性
输入:反应 SMILES 字符串
输出:验证结果(有效/无效)
功能:生成分子的二维结构图
输入:SMILES 分子结构字符串
输出:分子结构图像
功能:使用 AI 生成分子的文本描述
输入:SMILES 分子结构字符串
输出:详细的分子文本描述
功能:根据描述使用 AI 生成分子结构
输入:分子描述文本
输出:对应的 SMILES 分子结构
功能:分子的化学修饰和衍生化
输入: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 客户端配置文件中添加以下配置:
{
"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
}
}
}
}
注意:
# 激活您的 conda 环境
conda activate chemmcp
# 查看 Python 路径
which python
# 复制输出的路径并替换上面配置中的路径
Iupac2Smiles 工具在 PubChem 中查找失败时,才会使用 ChemSpace 作为备用数据库本项目采用 MIT 许可证。详情请参阅 LICENSE 文档。
注意:使用某些工具需要相应的 API 密钥。请确保在使用前正确设置了环境变量。