ChemMCP
A collection of 19 professional tools for chemical molecular processing based on the Model Context Protocol (MCP).
ChemMCP - 化学分子计算平台
ChemMCP是一个基于模型上下文协议(MCP)的化学分子计算工具集合,提供19个专业的化学分子处理工具。
🚀 快速开始
环境要求
- Python 3.11+ (推荐Python 3.11或3.12)
- Conda 环境管理器
安装步骤
- 创建conda环境:
conda create -n chemmcp python=3.11
conda activate chemmcp
- 安装依赖:
pip install -r requirements.txt
- 安装ChemMCP:
pip install -e .
安装选项
ChemMCP提供灵活的安装选项,您可以根据需要选择:
选项1: 基础安装(推荐)
# 安装核心依赖,支持17个工具
pip install -r requirements.txt
支持的工具: 除MoleculeCaptioner
和MoleculeGenerator
外的所有工具
选项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. SmilesCanonicalization - 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
功能: 将SELFIES格式转换为SMILES格式 输入: SELFIES字符串 输出: 对应的SMILES字符串
12. Smiles2Selfies - SMILES转SELFIES
功能: 将SMILES格式转换为SELFIES格式 输入: SMILES分子结构字符串 输出: 对应的SELFIES字符串
13. Smiles2Cas - SMILES转CAS号
功能: 将SMILES格式转换为CAS登记号 输入: SMILES分子结构字符串 输出: 对应的CAS登记号
14. MoleculeSmilesCheck - SMILES验证
功能: 验证SMILES字符串的语法正确性 输入: SMILES分子结构字符串 输出: 验证结果(有效/无效)
15. ReactionSmilesCheck - 反应SMILES验证
功能: 验证反应SMILES字符串的语法正确性 输入: 反应SMILES字符串 输出: 验证结果(有效/无效)
16. MoleculeVisualizer - 分子可视化
功能: 生成分子的2D结构图 输入: SMILES分子结构字符串 输出: 分子结构图像
17. MoleculeCaptioner - 分子描述生成
功能: 使用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密钥。请确保在使用前正确设置环境变量。
Related Servers
MCPfinder
A Node.js server for AI agents to discover, install, and manage new capabilities on demand via the MCP protocol.
Frame0 MCP Server
Create and modify wireframes in the Frame0 app through natural language prompts.
Google Jules MCP
Automate Google Jules, the AI coding assistant, for tasks like code reviews, repository management, and AI-powered development workflows.
CURSOR25X
An interactive task loop server for Cursor IDE, designed to perform task-based operations for modern web application development.
MCP My Mac
Exposes local Mac system information through a simple API for AI assistants.
Symbolic Algebra MCP Server
Perform symbolic mathematics and computer algebra using the SymPy library.
WebDev MCP
Provides a collection of useful web development tools.
fal.ai Recraft v3
Advanced text-to-image generation using the fal.ai Recraft v3 API.
UnrealMCP Plugin
An unofficial Unreal Engine plugin that acts as an MCP server, allowing AI tools to remotely control the engine.
MCP Script Runner
Execute developer-defined bash scripts in a Dockerized environment for coding agents.