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
- Crear el entorno conda:
conda create -n chemmcp python=3.11
conda activate chemmcp
- Instalar dependencias:
pip install -r requirements.txt
- 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
Iupac2Smilesusará 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.