分子检测识别服务

一个基于深度学习的化学结构检测与识别服务,支持从图像和PDF中定位分子结构并转换为SMILES字符串。

  • by JIBSN
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jibsn/moldet-mcp-server

使用说明

MolIt MCP服务器

使用深度学习模型进行化学结构检测和识别的简化MCP服务器。

项目结构

该项目侧重于两个核心功能:

  1. 检测 -使用YOLO模型在图像中定位分子结构
  2. 认可 -使用MolScribe将检测到的分子结构转换为SMILES字符串

核心模块

  • detection/ -使用YOLO进行分子结构检测
  • recognition/ -利用MolScribe进行分子识别和SMILES生成

关键文件

  • server.py -MCP服务器定义

特性

分子检测

  • 在单张图像中检测和定位分子结构
  • 两个预训练的YOLO模型:
    • moldet_yolo11l_640_general.pt -用于一般分子图像
    • moldet_yolo11l_960_doc.pt -用于文档/PDF处理

分子识别(使用MolScribe)

  • 将检测到的分子结构转换为SMILES字符串
  • 支持图像和PDF文档处理

安装

基本依赖关系

uv init --python 3.10
uv venv 
uv pip install -r requirements.txt

注意:MolScribe还有其他依赖项,包括PyTorch和RDKit,我还没有在Windows上测试过它。

用法

启动服务器(独立HTTP服务器)

source .venv/bin/activate
python server.py

服务器将在以下时间可用 http://0.0.0.0:8000/mcp

您可以通过以下方式进行测试:

python test_server.py

与MCP客户端配合使用(克劳德码、Qwen码等)

当与Claude Code或Qwen Code等MCP客户端一起使用时,服务器由客户端自动管理。将此配置添加到MCP配置文件中:

{
"mcpServers": {
    "molecular-detection-recognition-server": {
        "httpUrl": "http://0.0.0.0:8000/mcp",
        "timeout": 600000
        }
    }
}

当MCP客户端连接到服务器时,它将自动启动服务器进程并通过HTTP与之通信。

直接HTTP访问

如果你想通过HTTP直接访问服务器(用于测试或与其他服务集成),请启动服务器,然后你可以向以下对象发出HTTP请求:

POST http://0.0.0.0:8000/mcp

HTTP端点根据MCP规范接受JSON-RPC 2.0请求。

MCP工具可用

  1. detect_molecules_with_crops -检测图像中的分子结构并保存裁剪的分子
  2. process_image_for_molecules_and_smiles -检测图像中的分子并转换为SMILES
  3. process_pdf_for_molecules_and_smiles -处理PDF文档,检测所有页面上的分子,并转换为SMILES

文件命名和可追溯性

系统为中间文件实现了可追溯的文件命名方案:

  • 原始文件保留其原始名称
  • 裁剪的分子用以下模式命名: {original_filename}[_page{page_number}]_molecule_{detection_index}_{molecule_index}.jpg
  • 结果以JSON和CSV格式保存,并带有可追溯性信息

配置

中的配置 config.json 包括:

  • 模型目录
  • 常规和文档处理的默认模型
  • 输出目录设置

需求

看 requirements.txt 查看完整的依赖关系列表。

检测模型权重来源于 MolDet. 识别模型基于 MolScribe.