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

  1. Crie o ambiente conda:
conda create -n chemmcp python=3.11
conda activate chemmcp
  1. Instale as dependências:
pip install -r requirements.txt
  1. 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 Iupac2Smiles usará 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.