项目简介

这是一个基于 Model Context Protocol (MCP) 构建的应用后端服务器,专门用于处理化学分子信息。它通过提供标准化的工具和资源,使大型语言模型 (LLM) 客户端能够轻松地进行分子结构可视化、查询分子属性以及访问常用分子数据库,从而增强 LLM 在化学领域的应用能力。

主要功能点

  • 分子可视化: 根据用户提供的 SMILES 字符串或预设的常用分子名称,生成并返回分子的 2D 结构图像。
  • 分子属性查询: 计算并提供分子的多种属性,包括分子式、分子量、原子/键数量、环数量,以及利平斯基规则(Lipinski's Rule of Five)相关的属性(氢键供体/受体、可旋转键、LogP)。
  • 常用分子数据库: 内置一个包含常见分子的数据库,允许客户端按名称查找或列出所有可用分子及其对应的 SMILES 字符串。
  • MCP 标准通信: 通过 MCP 协议与兼容的 LLM 客户端进行通信,确保安全和可扩展性。

安装步骤

  1. 准备环境: 确保你的系统安装了 Python 3.10 或更高版本。
  2. 安装依赖: 该项目依赖于 RDKit (化学信息学库)、MCP Python SDK 和 Pillow (图像处理库)。你可以使用 uv 或 pip 来安装:
    • 推荐使用 uv:
      uv venv
      source .venv/bin/activate
      uv pip install -r requirements.txt
    • 使用 pip:
      python -m venv venv
      source venv/bin/activate
      pip install -r requirements.txt
    ('requirements.txt' 文件通常包含 'mcp[cli]'、'rdkit' 和 'pillow' 等)。
  3. 激活虚拟环境: 确保你已激活刚刚创建并安装了依赖的 Python 虚拟环境。
  4. 获取代码: 克隆或下载该项目的代码到本地。

服务器配置 (供 MCP 客户端使用)

要让 MCP 客户端(例如 Claude Desktop)连接并使用此服务器,你需要在客户端的配置文件中添加此服务器的信息。配置通常是一个 JSON 对象,指定如何启动服务器进程。以下是根据该仓库信息生成的配置示例:

{
  // 服务器名称,用于在客户端界面中显示和标识此服务
  "Molecule Visualizer": {
    // 启动服务器的可执行命令。这里使用 uv 命令来运行特定环境下的脚本
    "command": "uv", 
    // 传递给 command 的参数列表。这些参数指示 uv 运行带有指定依赖的 mcp cli,并执行服务器脚本。
    "args": [
      "run",         // uv 的运行命令
      "--with",      // 指定依赖库
      "mcp[cli]",
      "--with",
      "pillow",
      "--with",
      "rdkit",
      "mcp",         // 运行 mcp 命令行工具
      "run",         // mcp cli 的运行服务器命令
      // 服务器脚本 molecule_server.py 的绝对路径。请将此路径替换为你实际存放文件的位置。
      "/ABSOLUTE-PATH-TO-MOLECULE-SERVER/molecule_server.py" 
    ]
    // 可选:如果服务器需要特定的环境变量,可以在这里添加 "env": {"VAR_NAME": "value"}
  }
}

重要提示: 请将 '"/ABSOLUTE-PATH-TO-MOLECULE-SERVER/"' 替换为你实际克隆或下载的仓库在你文件系统中的绝对路径。这个 JSON 片段需要添加到 MCP 客户端的相应配置文件中(例如 Claude Desktop 的 'claude_desktop_config.json' 文件内的 'mcpServers' 对象下)。

基本使用方法

配置完成后并启动 MCP 客户端,客户端通常会自动检测并连接到配置的 MCP 服务器。之后,你就可以通过客户端界面与 LLM 交互,并请求它调用此服务器提供的功能。例如,你可以用自然语言向 LLM 提问:“请给我绘制一下咖啡因的结构图”,或者“请告诉我阿司匹林的分子属性”。如果 LLM 集成了 MCP 工具调用能力,它应该能够识别你的意图,并调用对应的 MCP 工具(如 'visualize_molecule' 或 'get_molecule_properties')来完成任务,并将结果(如图像或文本描述)返回给你。具体的使用体验取决于你使用的 MCP 客户端。

信息

分类

AI与计算