使用说明
项目简介
PubChem MCP Server 是一个 Python 实现的 MCP 服务器,旨在为 AI 模型提供访问 PubChem 数据库中化学化合物信息的能力。它通过标准的 MCP 接口,使得 AI 模型可以轻松查询化合物的属性、2D 结构和 3D 分子坐标等信息。
主要功能点
- 化合物信息查询: 通过化合物名称或 PubChem CID 查询化合物的基本信息,包括 IUPAC 名称、分子式、分子量、SMILES、InChI 和 InChIKey。
- 多种数据格式支持: 支持 JSON (默认)、CSV 和 XYZ (3D 结构) 等多种输出格式,方便不同应用场景的数据处理。
- 结构文件下载: 可以下载化合物的结构文件,支持 SDF、MOL 和 SMI 等常见格式。
- 内置缓存: 为了提高性能,服务器内置了缓存系统,缓存 API 响应和 3D 结构数据,减少重复请求。
- API 重试机制: 具备自动重试机制,增强了 API 访问的稳定性。
- 3D 结构处理: 如果 PubChem 提供的 3D 结构不可用,服务器可以尝试回退生成 3D 结构(可选,需要 RDKit 库)。
安装步骤
-
克隆仓库:
git clone https://github.com/PhelanShao/pubchem-mcp-server.git cd pubchem-mcp-server/python_version -
安装 Python 包:
pip install -e .如果需要增强的 3D 结构处理功能,并安装了 RDKit 库,可以使用以下命令安装:
pip install -e ".[rdkit]"
服务器配置
要将此服务器与 Claude 或其他 MCP 客户端一起使用,请将以下配置添加到您的 MCP 客户端配置文件中。请注意,以下配置为 JSON 格式,您只需复制粘贴到您的 MCP 客户端配置中即可,无需修改代码。
{ "mcpServers": { "pubchem": { "command": "python3", "args": ["/path/to/pubchem-mcp-server/python_version/mcp_server.py"], "env": { "PYTHONUNBUFFERED": "1" }, "disabled": false, "autoApprove": [ "get_pubchem_data", "download_structure" ] } } }
配置参数说明:
- '"pubchem"': 服务器名称,在 MCP 客户端中用于引用此服务器。
- '"command": "python3"': 启动服务器的命令,这里假设您的环境中 'python3' 命令指向 Python 3 解释器。
- '"args": ["/path/to/pubchem-mcp-server/python_version/mcp_server.py"]': 启动命令的参数,指向 'mcp_server.py' 脚本的绝对路径。请将 '/path/to/pubchem-mcp-server/python_version/mcp_server.py' 替换为您实际的 'mcp_server.py' 文件的路径。
- '"env": {"PYTHONUNBUFFERED": "1"}': 设置环境变量,'PYTHONUNBUFFERED=1' 用于禁用 Python 的输出缓冲,确保 MCP 客户端能及时接收到服务器的输出。
- '"disabled": false': 设置为 'false' 表示启用此服务器。
- '"autoApprove": ["get_pubchem_data", "download_structure"]': 自动批准的工具列表。当 LLM 尝试调用 'get_pubchem_data' 或 'download_structure' 工具时,无需用户手动批准。
基本使用方法
配置完成后,您的 MCP 客户端应该能够检测到名为 'pubchem' 的 MCP 服务器。您可以使用以下工具与服务器交互:
-
'get_pubchem_data' 工具: 用于检索化合物的结构和属性数据。
参数:
- 'query' (必填): 化合物名称或 PubChem CID。
- 'format' (可选): 输出格式,可选值包括 '"JSON"' (默认), '"CSV"', 或 '"XYZ"'。
- 'include_3d' (可选): 是否包含 3D 结构信息 (仅当 'format' 为 '"XYZ"' 时有效)。
使用示例 (JSON 格式):
<use_mcp_tool> <server_name>pubchem</server_name> <tool_name>get_pubchem_data</tool_name> <arguments> { "query": "aspirin", "format": "JSON" } </arguments> </use_mcp_tool>使用示例 (XYZ 格式,包含 3D 结构):
<use_mcp_tool> <server_name>pubchem</server_name> <tool_name>get_pubchem_data</tool_name> <arguments> { "query": "aspirin", "format": "XYZ", "include_3d": true } </arguments> </use_mcp_tool> -
'download_structure' 工具: 用于下载化合物的结构文件。
参数:
- 'cid' (必填): PubChem CID。
- 'format' (可选): 文件格式,可选值包括 '"sdf"' (默认), '"mol"', 或 '"smi"'。
- 'filename' (可选): 自定义文件名。
使用示例 (下载 SDF 文件):
<use_mcp_tool> <server_name>pubchem</server_name> <tool_name>download_structure</tool_name> <arguments> { "cid": "2244", "format": "sdf" } </arguments> </use_mcp_tool>
注意:
- 确保您的 Python 环境满足 requirements 中列出的依赖,特别是 'requests' 库。如果需要 3D 结构相关功能,建议安装 'rdkit' 库。
- 服务器启动后,会生成日志文件在 '~/.pubchem-mcp/' 目录下,用于问题排查。
信息
分类
数据库与文件