PubChem MCP Server

PubChem MCP Server

🧪 通过一个简单的 MCP 界面,使 AI 助手能够搜索和访问化学化合物信息。

JackKuo666

研究与数据
访问服务器

README

PubChem MCP 服务器

smithery badge

🧪 使 AI 助手能够通过简单的 MCP 接口搜索和访问化合物信息。

PubChem MCP 服务器通过模型上下文协议 (MCP) 提供 AI 助手和 PubChem 化学数据库之间的桥梁。它允许 AI 模型以编程方式搜索化合物并访问其详细信息。

🤝 贡献 • 📝 报告 Bug

✨ 核心功能

  • 🔎 化合物搜索:按名称、SMILES 或 CID 查询 PubChem 化合物 ✅
  • 🧪 化学结构:访问分子结构和标识符 ✅
  • 📊 属性数据:检索详细的化学和物理属性 ✅
  • 🔬 高级搜索:结合多个参数进行精确查询 ✅
  • 🧬 分子可视化:生成和显示分子结构 📝
  • 📈 属性分析:比较多个化合物的属性 📝
  • 🗃️ 本地存储:保存常用化合物以便更快地访问 📝
  • 📝 化学提示:用于化学分析的专用提示 📝

🚀 快速开始

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装 PubChem Server:

Claude

npx -y @smithery/cli@latest install @JackKuo666/pubchem-mcp-server --client claude --config "{}"

Cursor

将以下内容粘贴到 Settings → Cursor Settings → MCP → Add new server:

  • Mac/Linux
npx -y @smithery/cli@latest run @JackKuo666/pubchem-mcp-server --client cursor --config "{}" 

Windsurf

npx -y @smithery/cli@latest install @JackKuo666/pubchem-mcp-server --client windsurf --config "{}"

CLine

npx -y @smithery/cli@latest install @JackKuo666/pubchem-mcp-server --client cline --config "{}"

手动安装

使用 uv 安装:

uv tool install pubchem-mcp-server

用于开发:

# 克隆并设置开发环境
git clone https://github.com/JackKuo666/PubChem-MCP-Server.git
cd PubChem-MCP-Server

# 创建并激活虚拟环境
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt

📊 用法

启动 MCP 服务器:

python pubchem_server.py

服务器运行后,您可以在 AI 助手或应用程序中使用提供的 MCP 工具。 以下是一些如何使用这些工具的示例:

示例 1:按名称搜索化合物

result = await mcp.use_tool("search_pubchem_by_name", {
    "name": "aspirin",
    "max_results": 3
})
print(result)

示例 2:按 SMILES 符号搜索化合物

result = await mcp.use_tool("search_pubchem_by_smiles", {
    "smiles": "CC(=O)OC1=CC=CC=C1C(=O)O",  # 阿司匹林的 SMILES
    "max_results": 2
})
print(result)

示例 3:获取特定化合物的详细信息

result = await mcp.use_tool("get_pubchem_compound_by_cid", {
    "cid": 2244  # 阿司匹林的 CID
})
print(result)

示例 4:使用多个参数执行高级搜索

result = await mcp.use_tool("search_pubchem_advanced", {
    "name": "caffeine",
    "formula": "C8H10N4O2",
    "max_results": 2
})
print(result)

这些示例演示了如何使用 PubChem MCP 服务器提供的四个主要工具。 根据您的具体用例调整参数。

🛠 MCP 工具

PubChem MCP 服务器提供以下工具:

search_pubchem_by_name

使用化合物名称在 PubChem 上搜索化合物。

参数:

  • name (str):化合物的名称
  • max_results (int, optional):要返回的最大结果数(默认值:5)

返回: 包含化合物信息的字典列表

search_pubchem_by_smiles

使用 SMILES 字符串在 PubChem 上搜索化合物。

参数:

  • smiles (str):化合物的 SMILES 符号
  • max_results (int, optional):要返回的最大结果数(默认值:5)

返回: 包含化合物信息的字典列表

get_pubchem_compound_by_cid

使用 PubChem CID 获取有关化合物的详细信息。

参数:

  • cid (int):PubChem 化合物 ID (CID)

返回: 包含化合物信息的字典

search_pubchem_advanced

在 PubChem 上执行化合物的高级搜索。

参数:

  • name (str, optional):化合物的名称
  • smiles (str, optional):化合物的 SMILES 符号
  • formula (str, optional):分子式
  • cid (int, optional):PubChem 化合物 ID
  • max_results (int, optional):要返回的最大结果数(默认值:5)

返回: 包含化合物信息的字典列表

与 Claude Desktop 一起使用

将此配置添加到您的 claude_desktop_config.json

(Mac OS)

{
  "mcpServers": {
    "pubchem": {
      "command": "python",
      "args": ["-m", "pubchem-mcp-server"]
      }
  }
}

(Windows 版本):

{
  "mcpServers": {
    "pubchem": {
      "command": "C:\\Users\\YOUR_USERNAME\\AppData\\Local\\Programs\\Python\\Python311\\python.exe",
      "args": [
        "-m",
        "pubchem-mcp-server"
      ]
    }
  }
}

与 Cline 一起使用

{
  "mcpServers": {
    "pubchem": {
      "command": "bash",
      "args": [
        "-c",
        "source /home/YOUR/PATH/mcp-hub/PubChem-MCP-Server/.venv/bin/activate && python /home/YOUR/PATH/mcp-hub/PubChem-MCP-Server/pubchem_server.py"
      ],
      "env": {},
      "disabled": false,
      "autoApprove": []
    }
  }
}

重新启动 Claude Desktop 后,以下功能将可用:

搜索化合物

您可以要求 Claude 使用如下查询搜索化合物:

你能帮我在 PubChem 上搜索关于阿司匹林的信息吗?

搜索将返回有关匹配化合物的基本信息,包括:

• 化合物名称

• CID(PubChem 化合物 ID)

• 分子式

• 分子量

获取化合物详细信息

获得 CID 后,您可以要求提供更多详细信息:

你能给我展示 CID 为 2244 的化合物的详细信息吗?

这将返回:

• IUPAC 名称

• 分子式

• 分子量

• SMILES 符号

• InChI 和 InChIKey

• 物理和化学性质

• 同义词

📝 TODO

visualize_compound

生成并显示化合物的 2D 或 3D 可视化。

compare_compounds

比较多个化合物的属性和结构。

save_compound

在本地保存化合物以便更快地访问。

list_saved_compounds

列出所有已保存的化合物。

📝 化学提示

服务器将提供专门的提示来帮助分析化合物:

化合物分析提示

一个全面的化合物分析工作流程,只需要一个化合物 ID:

result = await call_prompt("deep-compound-analysis", {
    "compound_id": "2244"
})

此提示将包括:

  • 使用可用工具的详细说明
  • 用于化合物分析的系统工作流程
  • 涵盖以下内容的综合分析结构:
    • 化学结构和性质
    • 药理学性质
    • 生物活性
    • 应用和用途
    • 安全和毒性信息
    • 相关化合物

📁 项目结构

  • pubchem_server.py:使用 FastMCP 的主要 MCP 服务器实现
  • pubchem_search.py:包含用于搜索 PubChem 的示例代码

🔧 依赖项

  • Python 3.10+
  • FastMCP
  • asyncio
  • logging
  • pubchempy(用于 PubChem API 访问)
  • pandas(用于数据处理)

您可以使用以下命令安装所需的依赖项:

pip install mcp pubchempy pandas

🤝 贡献

欢迎贡献! 请随时提交 Pull Request。

📄 许可证

该项目已获得 MIT 许可证的许可。

⚠️ 免责声明

此工具仅用于研究目的。 请尊重 PubChem 的服务条款并负责任地使用此工具。

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python