ChemMCP
Uma coleção de 19 ferramentas profissionais para processamento de moléculas químicas baseadas no Model Context Protocol (MCP).
Documentação
ChemMCP - Plataforma de Cálculo de Moléculas Químicas
O ChemMCP é um conjunto de ferramentas de cálculo de moléculas químicas baseado no Model Context Protocol (MCP), oferecendo 19 ferramentas profissionais de processamento de moléculas químicas.
🚀 Início Rápido
Requisitos de Ambiente
- Python 3.11+ (recomendado Python 3.11 ou 3.12)
- Gerenciador de ambiente Conda
Passos de Instalação
- Crie o ambiente conda:
conda create -n chemmcp python=3.11
conda activate chemmcp
- Instale as dependências:
pip install -r requirements.txt
- Instale o ChemMCP:
pip install -e .
Opções de Instalação
O ChemMCP oferece opções de instalação flexíveis; você pode escolher conforme sua necessidade:
Opção 1: Instalação básica (recomendada)
# 安装核心依赖,支持17个工具
pip install -r requirements.txt
Ferramentas suportadas: todas as ferramentas, exceto MoleculeCaptioner e MoleculeGenerator
Opção 2: Instalação completa (inclui ferramentas de IA)
# 方式A: 使用可选依赖组
pip install -e ".[ai]"
# 方式B: 手动安装AI依赖
pip install -r requirements.txt
pip install transformers>=4.20.0 torch>=1.9.0
Ferramentas suportadas: todas as 19 ferramentas, incluindo funcionalidades de descrição e geração de moléculas com IA
Opção 3: Ambiente de desenvolvimento
# 安装所有依赖和开发工具
pip install -e ".[all,dev]"
Configuração de Variáveis de Ambiente
Defina as chaves de API correspondentes de acordo com as ferramentas 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 Ferramentas
1. WebSearch - Pesquisa na Web
Função: Executa pesquisa na web para obter informações relacionadas à química Entrada: string de consulta de pesquisa Saída: resultados da pesquisa e links relacionados
2. MoleculeWeight - Cálculo de Peso Molecular
Função: Calcula o peso molecular da molécula Entrada: string de estrutura molecular SMILES Saída: valor do peso molecular
3. MoleculeAtomCount - Contagem de Átomos
Função: Conta o número de cada tipo de átomo na molécula Entrada: string de estrutura molecular SMILES Saída: estatística da quantidade de cada tipo de átomo
4. MoleculeSimilarity - Similaridade Molecular
Função: Calcula a similaridade de Tanimoto entre duas moléculas Entrada: duas strings de estrutura molecular SMILES Saída: pontuação de similaridade (0-1)
5. FunctionalGroups - Identificação de Grupos Funcionais
Função: Identifica os grupos funcionais presentes na molécula Entrada: string de estrutura molecular SMILES Saída: lista de grupos funcionais detectados
6. SmilesCanonicalization - Padronização de SMILES
Função: Converte a string SMILES para uma forma padronizada Entrada: string de estrutura molecular SMILES Saída: string SMILES padronizada
7. Iupac2Smiles - Conversão de Nome IUPAC para SMILES
Função: Converte nomes químicos IUPAC para o formato SMILES Entrada: nome químico IUPAC Saída: string SMILES correspondente
8. Smiles2Iupac - Conversão de SMILES para Nome IUPAC
Função: Converte o formato SMILES para nomes químicos IUPAC Entrada: string de estrutura molecular SMILES Saída: nome químico IUPAC correspondente
9. Smiles2Formula - Conversão de SMILES para Fórmula Molecular
Função: Converte o formato SMILES para fórmula molecular Entrada: string de estrutura molecular SMILES Saída: fórmula molecular (ex.: C2H6O)
10. Name2Smiles - Conversão de Nome Comum para SMILES
Função: Converte nomes comuns de substâncias químicas para o formato SMILES Entrada: nome da substância química Saída: string SMILES correspondente
11. Selfies2Smiles - Conversão de SELFIES para SMILES
Função: Converte o formato SELFIES para o formato SMILES Entrada: string SELFIES Saída: string SMILES correspondente
12. Smiles2Selfies - Conversão de SMILES para SELFIES
Função: Converte o formato SMILES para o formato SELFIES Entrada: string de estrutura molecular SMILES Saída: string SELFIES correspondente
13. Smiles2Cas - Conversão de SMILES para Número CAS
Função: Converte o formato SMILES para número de registro CAS Entrada: string de estrutura molecular SMILES Saída: número de registro CAS correspondente
14. MoleculeSmilesCheck - Validação de SMILES
Função: Valida a correção sintática da string SMILES Entrada: string de estrutura molecular SMILES Saída: resultado da validação (válido/inválido)
15. ReactionSmilesCheck - Validação de SMILES de Reação
Função: Valida a correção sintática da string SMILES de reação Entrada: string SMILES de reação Saída: resultado da validação (válido/inválido)
16. MoleculeVisualizer - Visualização de Moléculas
Função: Gera a imagem da estrutura 2D da molécula Entrada: string de estrutura molecular SMILES Saída: imagem da estrutura molecular
17. MoleculeCaptioner - Geração de Descrição de Moléculas
Função: Usa IA para gerar uma descrição textual da molécula Entrada: string de estrutura molecular SMILES Saída: descrição textual detalhada da molécula
18. MoleculeGenerator - Geração de Moléculas
Função: Usa IA para gerar estruturas moleculares a partir de uma descrição Entrada: texto de descrição da molécula Saída: estrutura molecular SMILES correspondente
19. MoleculeModifier - Modificação de Moléculas
Função: Realiza modificações químicas e derivações na molécula Entrada: string de estrutura molecular SMILES Saída: opções de estrutura molecular modificada
📖 Exemplos 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
🔧 Configuração do MCP
Adicione a seguinte configuração ao arquivo de configuração do seu 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
}
}
}
}
Observação:
- Como encontrar o caminho correto do Python:
# 激活您的conda环境 conda activate chemmcp # 查看Python路径 which python # 复制输出的路径并替换上面配置中的路径 - Substitua as chaves de API pelas suas chaves reais
- CHEMSPACE_API_KEY é opcional: somente a ferramenta
Iupac2Smilesusará o ChemSpace como banco de dados de reserva quando a consulta ao PubChem falhar - Certifique-se de que a versão do seu ambiente Python seja 3.11 ou superior
🛠️ Dependências
- RDKit: biblioteca principal para processamento e cálculo de moléculas
- PubChemPy: interface com o banco de dados PubChem
- SELFIES: representação de string auto-referenciada e embutida para moléculas
- rdchiral: processamento de moléculas quirais
- synspace: exploração e modificação do espaço molecular
- tavily-python: API de pesquisa na web
- litellm: interface unificada de API para LLM
- requests: biblioteca de requisições HTTP
📄 Licença
Este projeto é licenciado sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.
Observação: O uso de algumas ferramentas requer chaves de API correspondentes. Certifique-se de configurar corretamente as variáveis de ambiente antes do uso.