使用说明

项目简介

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 库)。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/PhelanShao/pubchem-mcp-server.git
    cd pubchem-mcp-server/python_version
  2. 安装 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 服务器。您可以使用以下工具与服务器交互:

  1. '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>
  2. '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/' 目录下,用于问题排查。

信息

分类

数据库与文件