项目简介
这是一个基于 Model Context Protocol (MCP) 构建的应用后端服务器,专门用于处理化学分子信息。它通过提供标准化的工具和资源,使大型语言模型 (LLM) 客户端能够轻松地进行分子结构可视化、查询分子属性以及访问常用分子数据库,从而增强 LLM 在化学领域的应用能力。
主要功能点
- 分子可视化: 根据用户提供的 SMILES 字符串或预设的常用分子名称,生成并返回分子的 2D 结构图像。
- 分子属性查询: 计算并提供分子的多种属性,包括分子式、分子量、原子/键数量、环数量,以及利平斯基规则(Lipinski's Rule of Five)相关的属性(氢键供体/受体、可旋转键、LogP)。
- 常用分子数据库: 内置一个包含常见分子的数据库,允许客户端按名称查找或列出所有可用分子及其对应的 SMILES 字符串。
- MCP 标准通信: 通过 MCP 协议与兼容的 LLM 客户端进行通信,确保安全和可扩展性。
安装步骤
- 准备环境: 确保你的系统安装了 Python 3.10 或更高版本。
- 安装依赖: 该项目依赖于 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
- 推荐使用 uv:
- 激活虚拟环境: 确保你已激活刚刚创建并安装了依赖的 Python 虚拟环境。
- 获取代码: 克隆或下载该项目的代码到本地。
服务器配置 (供 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与计算