Unofficial ChEMBL MCP Server

Acesse o banco de dados químico ChEMBL para descoberta de medicamentos, informática química e pesquisa de bioatividade usando ferramentas especializadas por meio de sua API REST.

Documentação

ChEMBL MCP Server Logo

Unofficial ChEMBL MCP Server

Um servidor abrangente do Model Context Protocol (MCP) que fornece acesso avançado ao banco de dados químico ChEMBL. Este servidor oferece 22 ferramentas especializadas que permitem a assistentes de IA e clientes MCP realizar pesquisas sofisticadas de descoberta de medicamentos, análises de informática química e investigações de bioatividade diretamente por meio da API REST do ChEMBL.

Desenvolvido pela Augmented Nature

Recursos

Pesquisa e Recuperação Química Essencial (5 ferramentas)

  • Pesquisa de Compostos: Pesquise o banco de dados ChEMBL por nome do composto, sinônimo ou identificador
  • Informações Detalhadas do Composto: Recupere informações abrangentes do composto, incluindo estrutura, propriedades e anotações
  • Pesquisa baseada em InChI: Encontre compostos por chave InChI ou string InChI
  • Recuperação de Estrutura: Obtenha informações de estrutura química em vários formatos (SMILES, InChI, MOL, SDF)
  • Pesquisa de Similaridade: Encontre compostos quimicamente semelhantes usando similaridade de Tanimoto

Análise de Alvos e Descoberta de Medicamentos (5 ferramentas)

  • Pesquisa de Alvos: Pesquise alvos biológicos por nome ou tipo
  • Informações Detalhadas do Alvo: Recupere informações abrangentes do alvo e anotações
  • Compostos do Alvo: Obtenha compostos testados contra alvos específicos
  • Integração UniProt: Encontre alvos ChEMBL por números de acesso UniProt
  • Vias do Alvo: Vias biológicas e mecanismos associados

Dados de Bioatividade e Ensaios (5 ferramentas)

  • Pesquisa de Atividade: Pesquise medições de bioatividade e resultados de ensaios
  • Informações Detalhadas do Ensaio: Obtenha protocolos e condições abrangentes de ensaios
  • Pesquisa por Tipo de Atividade: Encontre dados de bioatividade por tipo de atividade e faixa de valores específicos
  • Análise de Dose-Resposta: Obtenha dados de dose-resposta e perfis de atividade
  • Comparação de Atividade: Compare dados de bioatividade entre múltiplos compostos ou alvos

Dados de Desenvolvimento de Medicamentos e Clínicos (4 ferramentas)

  • Pesquisa de Medicamentos: Pesquise medicamentos aprovados e candidatos clínicos
  • Status de Desenvolvimento de Medicamentos: Obtenha status de desenvolvimento de medicamentos e informações de ensaios clínicos
  • Indicações Terapêuticas: Pesquise indicações terapêuticas e áreas de doenças
  • Mecanismo de Ação: Obtenha dados de mecanismo de ação e interação com alvos

Análise de Propriedades Químicas (4 ferramentas)

  • Análise ADMET: Analise propriedades ADMET (Absorção, Distribuição, Metabolismo, Excreção, Toxicidade)
  • Descritores Moleculares: Calcule descritores moleculares e propriedades físico-químicas
  • Predição de Solubilidade: Prediga propriedades de solubilidade aquosa e permeabilidade
  • Avaliação de Drug-Likeness: Avalie drug-likeness usando a Regra dos Cinco de Lipinski e outras métricas

Pesquisa Avançada e Referências Cruzadas (4 ferramentas)

  • Pesquisa de Subestrutura: Encontre compostos contendo subestruturas específicas
  • Processamento em Lote: Processe múltiplos IDs ChEMBL de forma eficiente
  • Referências Externas: Obtenha links para bancos de dados externos (PubChem, DrugBank, PDB, etc.)
  • Pesquisa Avançada: Consultas complexas com múltiplos filtros químicos e biológicos

Modelos de Recursos

  • Acesso direto aos dados do ChEMBL por meio de modelos de URI para integração perfeita

Instalação

Pré-requisitos

  • Node.js (v16 ou superior)
  • npm ou yarn

Configuração

  1. Clone o repositório:
git clone <repository-url>
cd chembl-server
  1. Instale as dependências:
npm install
  1. Compile o projeto:
npm run build

Docker

Construindo a Imagem Docker

Construa a imagem Docker:

docker build -t chembl-mcp-server .

Executando com Docker

Execute o contêiner:

docker run -i chembl-mcp-server

Para integração com clientes MCP, você pode usar o contêiner diretamente:

{
  "mcpServers": {
    "chembl": {
      "command": "docker",
      "args": ["run", "-i", "chembl-mcp-server"],
      "env": {}
    }
  }
}

Uso

Como um Servidor MCP

O servidor foi projetado para ser executado como um servidor MCP que se comunica via stdio:

npm start

Adicionando à Configuração do Cliente MCP

Adicione o servidor à configuração do seu cliente MCP (por exemplo, Claude Desktop):

{
  "mcpServers": {
    "chembl": {
      "command": "node",
      "args": ["/path/to/chembl-server/build/index.js"],
      "env": {}
    }
  }
}

Ferramentas Disponíveis

1. search_compounds

Pesquise o banco de dados ChEMBL por compostos por nome, sinônimo ou identificador.

Parâmetros:

  • query (obrigatório): Consulta de pesquisa (nome do composto, sinônimo ou identificador)
  • limit (opcional): Número de resultados a retornar (1-1000, padrão: 25)
  • offset (opcional): Número de resultados a pular (padrão: 0)

Exemplo:

{
  "query": "aspirin",
  "limit": 10
}

2. get_compound_info

Obtenha informações detalhadas para um composto específico por ID ChEMBL.

Parâmetros:

  • chembl_id (obrigatório): ID do composto ChEMBL (por exemplo, CHEMBL25)

Exemplo:

{
  "chembl_id": "CHEMBL25"
}

3. search_targets

Pesquise alvos biológicos por nome ou tipo.

Parâmetros:

  • query (obrigatório): Nome do alvo ou consulta de pesquisa
  • target_type (opcional): Filtro de tipo de alvo (por exemplo, SINGLE PROTEIN, PROTEIN COMPLEX)
  • organism (opcional): Filtro de organismo
  • limit (opcional): Número de resultados a retornar (1-1000, padrão: 25)

Exemplo:

{
  "query": "dopamine receptor",
  "organism": "Homo sapiens",
  "limit": 5
}

4. search_activities

Pesquise medições de bioatividade e resultados de ensaios.

Parâmetros:

  • target_chembl_id (opcional): Filtro de ID de alvo ChEMBL
  • assay_chembl_id (opcional): Filtro de ID de ensaio ChEMBL
  • molecule_chembl_id (opcional): Filtro de ID de composto ChEMBL
  • activity_type (opcional): Tipo de atividade (por exemplo, IC50, Ki, EC50)
  • limit (opcional): Número de resultados a retornar (1-1000, padrão: 25)

Exemplo:

{
  "target_chembl_id": "CHEMBL2095173",
  "activity_type": "IC50",
  "limit": 50
}

5. batch_compound_lookup

Processe múltiplos IDs ChEMBL de forma eficiente.

Parâmetros:

  • chembl_ids (obrigatório): Matriz de IDs de compostos ChEMBL (1-50)

Exemplo:

{
  "chembl_ids": ["CHEMBL25", "CHEMBL59", "CHEMBL1642"]
}

Modelos de Recursos

O servidor fornece acesso direto aos dados do ChEMBL por meio de modelos de URI:

1. Informações do Composto

  • URI: chembl://compound/{chembl_id}
  • Descrição: Informações completas do composto para um ID ChEMBL
  • Exemplo: chembl://compound/CHEMBL25

2. Informações do Alvo

  • URI: chembl://target/{chembl_id}
  • Descrição: Informações completas do alvo para um ID de alvo ChEMBL
  • Exemplo: chembl://target/CHEMBL2095173

3. Informações do Ensaio

  • URI: chembl://assay/{chembl_id}
  • Descrição: Informações completas do ensaio para um ID de ensaio ChEMBL
  • Exemplo: chembl://assay/CHEMBL1217643

4. Informações da Atividade

  • URI: chembl://activity/{activity_id}
  • Descrição: Dados de medição de bioatividade para um ID de atividade
  • Exemplo: chembl://activity/12345678

5. Resultados da Pesquisa

  • URI: chembl://search/{query}
  • Descrição: Resultados da pesquisa para compostos que correspondem à consulta
  • Exemplo: chembl://search/aspirin

Exemplos

Pesquisa Básica de Compostos

Pesquise compostos relacionados à aspirina:

// Tool call
{
  "tool": "search_compounds",
  "arguments": {
    "query": "aspirin",
    "limit": 5
  }
}

Obtenha Informações Detalhadas do Composto

Recupere informações abrangentes sobre a aspirina:

// Tool call
{
  "tool": "get_compound_info",
  "arguments": {
    "chembl_id": "CHEMBL25"
  }
}

Pesquisa Baseada em Alvo

Encontre compostos testados contra receptores de dopamina:

// Tool call
{
  "tool": "search_targets",
  "arguments": {
    "query": "dopamine receptor D2",
    "organism": "Homo sapiens"
  }
}

Análise de Bioatividade

Pesquise dados de IC50 contra um alvo específico:

// Tool call
{
  "tool": "search_activities",
  "arguments": {
    "target_chembl_id": "CHEMBL2095173",
    "activity_type": "IC50",
    "limit": 100
  }
}

Processamento em Lote

Processe múltiplos compostos de forma eficiente:

// Tool call
{
  "tool": "batch_compound_lookup",
  "arguments": {
    "chembl_ids": ["CHEMBL25", "CHEMBL59", "CHEMBL1642", "CHEMBL1201585"]
  }
}

Integração com API

Este servidor integra-se com a API REST do ChEMBL para acesso programático a dados químicos. Para mais informações sobre o ChEMBL:

Todas as solicitações de API incluem:

  • User-Agent: ChEMBL-MCP-Server/1.0.0
  • Tempo limite: 30 segundos
  • URL base: https://www.ebi.ac.uk/chembl/api/data

Tratamento de Erros

O servidor inclui tratamento abrangente de erros:

  • Validação de Entrada: Todos os parâmetros são validados usando guardas de tipo
  • Erros de API: Erros de rede e de API são capturados e retornados com mensagens descritivas
  • Tratamento de Tempo Limite: As solicitações expiram após 30 segundos
  • Degradação Graciosa: Falhas parciais são tratadas adequadamente

Desenvolvimento

Compile o Projeto

npm run build

Modo de Desenvolvimento

Execute o compilador TypeScript em modo de observação:

npm run dev

Estrutura do Projeto

chembl-server/
├── src/
│   └── index.ts          # Main server implementation
├── build/                # Compiled JavaScript output
├── package.json          # Node.js dependencies and scripts
├── tsconfig.json         # TypeScript configuration
└── README.md            # This file

Dependências

  • @modelcontextprotocol/sdk: SDK MCP essencial para implementação do servidor
  • axios: Cliente HTTP para solicitações à API ChEMBL
  • typescript: Compilador TypeScript para desenvolvimento

Licença

Licença MIT

Contribuição

  1. Faça um fork do repositório
  2. Crie um branch de recurso
  3. Faça suas alterações
  4. Adicione testes, se aplicável
  5. Envie um pull request

Suporte

Para problemas e perguntas:

  1. Consulte a documentação da API ChEMBL
  2. Revise a especificação do Model Context Protocol
  3. Abra um problema no repositório

Sobre a Augmented Nature

Este servidor ChEMBL MCP abrangente é desenvolvido pela Augmented Nature, uma inovadora líder em soluções de bioinformática e química computacional alimentadas por IA. A Augmented Nature é especializada na criação de ferramentas avançadas que preenchem a lacuna entre inteligência artificial e pesquisa química, permitindo que pesquisadores obtenham insights mais profundos a partir de dados químicos e biológicos.

Referência Completa de Ferramentas

Ferramentas Essenciais de Pesquisa e Recuperação Química

  1. search_compounds - Pesquise o banco de dados ChEMBL por nome, sinônimo ou identificador
  2. get_compound_info - Obtenha informações detalhadas do composto por ID ChEMBL
  3. search_by_inchi - Encontre compostos por chave InChI ou string InChI
  4. get_compound_structure - Recupere estruturas químicas em vários formatos
  5. search_similar_compounds - Encontre compostos quimicamente semelhantes usando similaridade de Tanimoto

Ferramentas de Análise de Alvos e Descoberta de Medicamentos

  1. search_targets - Pesquise alvos biológicos por nome ou tipo
  2. get_target_info - Obtenha informações detalhadas do alvo por ID de alvo ChEMBL
  3. get_target_compounds - Obtenha compostos testados contra alvos específicos
  4. search_by_uniprot - Encontre alvos ChEMBL por acesso UniProt
  5. get_target_pathways - Obtenha vias biológicas associadas a alvos

Ferramentas de Dados de Bioatividade e Ensaios

  1. search_activities - Pesquise medições de bioatividade e resultados de ensaios
  2. get_assay_info - Obtenha informações detalhadas do ensaio por ID de ensaio ChEMBL
  3. search_by_activity_type - Encontre dados de bioatividade por tipo de atividade e faixa de valores
  4. get_dose_response - Obtenha dados de dose-resposta e perfis de atividade
  5. compare_activities - Compare dados de bioatividade entre múltiplos compostos

Ferramentas de Desenvolvimento de Medicamentos e Dados Clínicos

  1. search_drugs - Pesquise medicamentos aprovados e candidatos clínicos
  2. get_drug_info - Obtenha status de desenvolvimento de medicamentos e informações de ensaios clínicos
  3. search_drug_indications - Pesquise indicações terapêuticas e áreas de doenças
  4. get_mechanism_of_action - Obtenha dados de mecanismo de ação e interação com alvos

Ferramentas de Análise de Propriedades Químicas

  1. analyze_admet_properties - Analise propriedades ADMET
  2. calculate_descriptors - Calcule descritores moleculares e propriedades físico-químicas
  3. predict_solubility - Prediga propriedades de solubilidade aquosa e permeabilidade
  4. assess_drug_likeness - Avalie drug-likeness usando a Regra dos Cinco de Lipinski

Ferramentas Avançadas de Pesquisa e Referências Cruzadas

  1. substructure_search - Encontre compostos contendo subestruturas específicas
  2. batch_compound_lookup - Processe múltiplos IDs ChEMBL de forma eficiente
  3. get_external_references - Obtenha links para bancos de dados externos
  4. advanced_search - Consultas complexas com múltiplos filtros químicos e biológicos

Histórico de Alterações

v1.0.0 - Lançamento Inicial

  • Inteligência Química Abrangente: 27 ferramentas especializadas para descoberta de medicamentos
  • Funcionalidade Essencial: Pesquisa de compostos, análise de alvos, dados de bioatividade
  • Recursos Avançados: Pesquisa de similaridade, processamento em lote, referências cruzadas
  • Modelos de Recursos: Acesso direto baseado em URI aos dados do ChEMBL
  • Suporte Docker: Implantação em contêiner com práticas recomendadas de segurança
  • Documentação Profissional: Referência completa de ferramentas e exemplos
  • Desenvolvido pela Augmented Nature: Plataforma profissional de informática química

Citação

Se você usar este projeto em sua pesquisa ou publicações, cite-o da seguinte forma:

author = {Moudather Chelbi},
title = {ChEMBL MCP Server},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/ChEMBL-MCP-Server},
note = {Accessed: 2025-06-29}