ChemMCP

Una colección de 19 herramientas profesionales para el procesamiento de moléculas químicas basada en el Protocolo de Contexto de Modelo (MCP).

Documentación

ChemMCP - Plataforma de cálculo de moléculas químicas

ChemMCP es un conjunto de herramientas de cálculo de moléculas químicas basado en el Protocolo de Contexto de Modelo (MCP), que proporciona 19 herramientas profesionales de procesamiento de moléculas químicas.

🚀 Inicio rápido

Requisitos del entorno

  • Python 3.11+ (se recomienda Python 3.11 o 3.12)
  • Administrador de entornos Conda

Pasos de instalación

  1. Crear el entorno conda:
conda create -n chemmcp python=3.11
conda activate chemmcp
  1. Instalar dependencias:
pip install -r requirements.txt
  1. Instalar ChemMCP:
pip install -e .

Opciones de instalación

ChemMCP ofrece opciones de instalación flexibles, puede elegir según sus necesidades:

Opción 1: Instalación básica (recomendada)

# 安装核心依赖,支持17个工具
pip install -r requirements.txt

Herramientas compatibles: Todas las herramientas excepto MoleculeCaptioner y MoleculeGenerator

Opción 2: Instalación completa (incluye herramientas de IA)

# 方式A: 使用可选依赖组
pip install -e ".[ai]"

# 方式B: 手动安装AI依赖
pip install -r requirements.txt
pip install transformers>=4.20.0 torch>=1.9.0

Herramientas compatibles: Las 19 herramientas, incluyendo funciones de descripción y generación de moléculas impulsadas por IA

Opción 3: Entorno de desarrollo

# 安装所有依赖和开发工具
pip install -e ".[all,dev]"

Configuración de variables de entorno

Configure las claves API correspondientes según las herramientas utilizadas:

# 网络搜索工具所需(必需)
export TAVILY_API_KEY="your_tavily_api_key"

# LLM工具所需(必需)
export LLM_MODEL_NAME="openai/gpt-4o"
export OPENAI_API_KEY="your_openai_api_key"

# ChemSpace工具所需(可选,仅在PubChem查找失败时作为后备)
export CHEMSPACE_API_KEY="your_chemspace_api_key"

🔧 Lista de herramientas

1. WebSearch - Búsqueda web

Función: Realiza búsquedas web para obtener información relacionada con la química Entrada: Cadena de consulta de búsqueda Salida: Resultados de búsqueda y enlaces relacionados

2. MoleculeWeight - Cálculo de peso molecular

Función: Calcula el peso molecular de una molécula Entrada: Cadena de estructura molecular SMILES Salida: Valor numérico del peso molecular

3. MoleculeAtomCount - Conteo de átomos

Función: Cuenta la cantidad de varios átomos en una molécula Entrada: Cadena de estructura molecular SMILES Salida: Conteo de cada tipo de átomo

4. MoleculeSimilarity - Similitud molecular

Función: Calcula la similitud de Tanimoto entre dos moléculas Entrada: Dos cadenas de estructura molecular SMILES Salida: Puntuación de similitud (0-1)

5. FunctionalGroups - Identificación de grupos funcionales

Función: Identifica los grupos funcionales presentes en una molécula Entrada: Cadena de estructura molecular SMILES Salida: Lista de grupos funcionales detectados

6. SmilesCanonicalization - Estandarización SMILES

Función: Convierte una cadena SMILES a su forma canónica Entrada: Cadena de estructura molecular SMILES Salida: Cadena SMILES canónica

7. Iupac2Smiles - Conversión de nombre IUPAC a SMILES

Función: Convierte un nombre químico IUPAC a formato SMILES Entrada: Nombre químico IUPAC Salida: Cadena SMILES correspondiente

8. Smiles2Iupac - Conversión de SMILES a nombre IUPAC

Función: Convierte formato SMILES a nombre químico IUPAC Entrada: Cadena de estructura molecular SMILES Salida: Nombre químico IUPAC correspondiente

9. Smiles2Formula - Conversión de SMILES a fórmula molecular

Función: Convierte formato SMILES a fórmula molecular Entrada: Cadena de estructura molecular SMILES Salida: Fórmula molecular (por ejemplo, C2H6O)

10. Name2Smiles - Conversión de nombre común a SMILES

Función: Convierte el nombre común de una sustancia química a formato SMILES Entrada: Nombre de la sustancia química Salida: Cadena SMILES correspondiente

11. Selfies2Smiles - Conversión de SELFIES a SMILES

Función: Convierte formato SELFIES a formato SMILES Entrada: Cadena SELFIES Salida: Cadena SMILES correspondiente

12. Smiles2Selfies - Conversión de SMILES a SELFIES

Función: Convierte formato SMILES a formato SELFIES Entrada: Cadena de estructura molecular SMILES Salida: Cadena SELFIES correspondiente

13. Smiles2Cas - Conversión de SMILES a número CAS

Función: Convierte formato SMILES a número de registro CAS Entrada: Cadena de estructura molecular SMILES Salida: Número de registro CAS correspondiente

14. MoleculeSmilesCheck - Validación de SMILES

Función: Verifica la corrección sintáctica de una cadena SMILES Entrada: Cadena de estructura molecular SMILES Salida: Resultado de validación (válido/inválido)

15. ReactionSmilesCheck - Validación de SMILES de reacción

Función: Verifica la corrección sintáctica de una cadena SMILES de reacción Entrada: Cadena SMILES de reacción Salida: Resultado de validación (válido/inválido)

16. MoleculeVisualizer - Visualización de moléculas

Función: Genera una imagen de estructura 2D de la molécula Entrada: Cadena de estructura molecular SMILES Salida: Imagen de la estructura molecular

17. MoleculeCaptioner - Generación de descripción de moléculas

Función: Utiliza IA para generar una descripción textual de la molécula Entrada: Cadena de estructura molecular SMILES Salida: Descripción textual detallada de la molécula

18. MoleculeGenerator - Generación de moléculas

Función: Utiliza IA para generar una estructura molecular a partir de una descripción Entrada: Texto de descripción de la molécula Salida: Estructura molecular SMILES correspondiente

19. MoleculeModifier - Modificación de moléculas

Función: Realiza modificaciones químicas y derivatización en la molécula Entrada: Cadena de estructura molecular SMILES Salida: Opciones de estructura molecular modificada

📖 Ejemplos de uso

# 启动MCP服务器,使用特定工具
python -m chemmcp --tools WebSearch MoleculeWeight MoleculeAtomCount

# 或使用所有工具
python -m chemmcp --tools WebSearch MoleculeWeight MoleculeAtomCount MoleculeSimilarity FunctionalGroups SmilesCanonicalization Iupac2Smiles Smiles2Iupac Smiles2Formula Name2Smiles Selfies2Smiles Smiles2Selfies Smiles2Cas MoleculeSmilesCheck ReactionSmilesCheck MoleculeVisualizer MoleculeCaptioner MoleculeGenerator MoleculeModifier

🔧 Configuración de MCP

Agregue la siguiente configuración en el archivo de configuración de su cliente MCP:

{
  "mcpServers": {
    "ChemMCP": {
      "command": "/opt/miniconda3/envs/chemmcp/bin/python",  // 如何找到路径: conda activate chemmcp && which python
      "args": [
        "-m", "chemmcp", 
        "--tools", 
        "WebSearch", 
        "MoleculeWeight",
        "MoleculeAtomCount",
        "MoleculeSimilarity", 
        "FunctionalGroups",
        "SmilesCanonicalization",
        "Iupac2Smiles",
        "Smiles2Iupac",
        "Smiles2Formula",
        "Name2Smiles",
        "Selfies2Smiles",
        "Smiles2Selfies",
        "Smiles2Cas",
        "MoleculeSmilesCheck",
        "ReactionSmilesCheck",
        "MoleculeVisualizer",
        "MoleculeCaptioner",
        "MoleculeGenerator", 
        "MoleculeModifier"
      ],
      "toolCallTimeoutMillis": 300000,
      "env": {
        "TAVILY_API_KEY": "your_tavily_api_key_here",
        "LLM_MODEL_NAME": "openai/gpt-4o",
        "OPENAI_API_KEY": "your_openai_api_key_here",
        "CHEMSPACE_API_KEY": "your_chemspace_api_key_here",  // 可选:仅在需要额外数据库查找时使用
        "PATH": "/opt/miniconda3/envs/chemmcp/bin:/usr/local/bin:/usr/bin:/bin"  // 如何找到路径: conda activate chemmcp && echo $PATH
      }
    }
  }
}

Nota:

  • Cómo encontrar la ruta correcta de Python:
    # 激活您的conda环境
    conda activate chemmcp
    # 查看Python路径
    which python
    # 复制输出的路径并替换上面配置中的路径
    
  • Reemplace las claves API con sus claves reales
  • CHEMSPACE_API_KEY es opcional: solo la herramienta Iupac2Smiles usará ChemSpace como base de datos de respaldo cuando la búsqueda en PubChem falle
  • Asegúrese de que su entorno de Python sea la versión 3.11 o superior

🛠️ Dependencias

  • RDKit: Biblioteca central para procesamiento y cálculo de moléculas
  • PubChemPy: Interfaz de base de datos PubChem
  • SELFIES: Representación de cadena auto-referencial de moléculas
  • rdchiral: Manejo de moléculas quirales
  • synspace: Exploración y modificación del espacio molecular
  • tavily-python: API de búsqueda web
  • litellm: Interfaz unificada de API LLM
  • requests: Biblioteca de solicitudes HTTP

📄 Licencia

Este proyecto está bajo la licencia MIT. Consulte el archivo LICENSE para más detalles.


Nota: El uso de algunas herramientas requiere las claves API correspondientes. Asegúrese de configurar correctamente las variables de entorno antes de usarlas.