Unofficial Human Protein Atlas MCP Server

Acesse dados do Atlas de Proteínas Humanas, incluindo expressão proteica, localização e patologia.

Documentação

Logo

Servidor MCP Não Oficial do Human Protein Atlas

Um servidor abrangente do Model Context Protocol (MCP) para acessar dados do Human Protein Atlas, fornecendo informações sobre expressão de proteínas, localização subcelular, patologia e muito mais.

Visão Geral

O Servidor MCP do Human Protein Atlas permite acesso contínuo ao vasto repositório de dados de proteínas do Human Protein Atlas (https://www.proteinatlas.org). Este servidor fornece ferramentas e recursos para:

  • Pesquisa e Informações de Proteínas: Pesquise proteínas por nome, símbolo do gene ou descrição
  • Expressão em Tecidos: Acesse perfis de expressão específicos de tecidos
  • Localização Subcelular: Recupere dados de localização de proteínas
  • Dados de Patologia: Acesse informações de proteínas relacionadas ao câncer
  • Expressão Sanguínea e Cerebral: Dados de expressão especializados para células sanguíneas e regiões do cérebro
  • Informações de Anticorpos: Dados de validação e coloração de anticorpos
  • Processamento em Lote: Consulta eficiente de múltiplas proteínas
  • Pesquisa Avançada: Consultas complexas com múltiplos filtros

Recursos

Capacidades Principais

  • 🔍 Pesquisa Abrangente: Encontre proteínas usando vários identificadores e palavras-chave
  • 🧬 Dados Multimodais: Acesse informações de expressão, localização e patologia
  • 🩸 Atlas Especializados: Integração de dados do Blood Atlas e do Brain Atlas
  • 📊 Processamento em Lote: Tratamento eficiente de múltiplas consultas de proteínas
  • 🔬 Dados de Nível de Pesquisa: Informações de proteínas de alta qualidade e revisadas por pares
  • ⚡ Resposta Rápida: Otimizado para recuperação rápida de dados

Tipos de Dados Disponíveis

  1. Informações Básicas de Proteínas

    • Símbolos de genes e IDs Ensembl
    • Descrições e classificações de proteínas
    • Referências cruzadas UniProt
  2. Dados de Expressão

    • Expressão de RNA específica de tecidos
    • Perfis de expressão de células sanguíneas
    • Dados de expressão de regiões do cérebro
    • Informações de expressão de células únicas
  3. Localização Subcelular

    • Padrões de localização de proteínas
    • Pontuações de confiabilidade
    • Dados de imunofluorescência
  4. Informações de Patologia

    • Marcadores prognósticos de câncer
    • Associações com doenças
    • Alvos terapêuticos
  5. Dados de Anticorpos

    • Informações de validação de anticorpos
    • Padrões de coloração
    • Avaliações de confiabilidade

Instalação

Pré-requisitos

  • Node.js 18 ou superior
  • Gerenciador de pacotes npm ou yarn

Configuração

  1. Clone ou baixe o código do servidor

  2. Instale as dependências:

    cd proteinatlas-server
    npm install
    
  3. Compile o servidor:

    npm run build
    
  4. O servidor está pronto para uso!

Uso

Linha de Comando

Execute o servidor diretamente:

npm start
# or
node build/index.js

Integração com Cliente MCP

Adicione à configuração do seu cliente MCP:

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

Ferramentas Disponíveis

Pesquisa Básica e Recuperação

search_proteins

Pesquise no Human Protein Atlas por proteínas usando nome, símbolo do gene ou descrição.

Parâmetros:

  • query (obrigatório): Consulta de pesquisa (nome do gene, nome da proteína ou palavra-chave)
  • format: Formato de saída (json, tsv) - padrão: json
  • columns: Colunas específicas para incluir nos resultados
  • maxResults: Número máximo de resultados (1-10000) - padrão: 100
  • compress: Se deve comprimir a resposta - padrão: false

Exemplo:

{
  "query": "BRCA1",
  "format": "json",
  "maxResults": 10
}

get_protein_info

Obtenha informações detalhadas para uma proteína específica pelo símbolo do gene.

Parâmetros:

  • gene (obrigatório): Símbolo do gene (ex.: BRCA1, TP53)
  • format: Formato de saída (json, tsv, xml, trig) - padrão: json

get_protein_by_ensembl

Obtenha informações de proteínas usando o ID do gene Ensembl.

Parâmetros:

  • ensemblId (obrigatório): ID do gene Ensembl (ex.: ENSG00000139618)
  • format: Formato de saída (json, tsv, xml, trig) - padrão: json

Análise de Expressão

get_tissue_expression

Obtenha dados de expressão específicos de tecidos para uma proteína.

Parâmetros:

  • gene (obrigatório): Símbolo do gene
  • format: Formato de saída (json, tsv) - padrão: json

search_by_tissue

Encontre proteínas altamente expressas em tecidos específicos.

Parâmetros:

  • tissue (obrigatório): Nome do tecido (ex.: fígado, cérebro, coração)
  • expressionLevel: Filtro de nível de expressão (alta, média, baixa, não detectada)
  • format: Formato de saída (json, tsv) - padrão: json
  • maxResults: Número máximo de resultados (1-10000) - padrão: 100

get_blood_expression

Obtenha dados de expressão de células sanguíneas para uma proteína.

get_brain_expression

Obtenha dados de expressão de regiões do cérebro para uma proteína.

Localização Subcelular

get_subcellular_location

Obtenha dados de localização subcelular para uma proteína.

search_by_subcellular_location

Encontre proteínas localizadas em compartimentos subcelulares específicos.

Parâmetros:

  • location (obrigatório): Localização subcelular (ex.: núcleo, mitocôndria, citosol)
  • reliability: Filtro de confiabilidade (aprovado, aprimorado, suportado, incerto)
  • format: Formato de saída (json, tsv) - padrão: json
  • maxResults: Número máximo de resultados (1-10000) - padrão: 100

Patologia e Câncer

get_pathology_data

Obtenha dados de câncer e patologia para uma proteína.

search_cancer_markers

Encontre proteínas associadas a cânceres específicos ou com valor prognóstico.

Parâmetros:

  • cancer: Tipo de câncer (ex.: câncer de mama, câncer de pulmão)
  • prognostic: Filtro prognóstico (favorável, desfavorável)
  • format: Formato de saída (json, tsv) - padrão: json
  • maxResults: Número máximo de resultados (1-10000) - padrão: 100

Recursos Avançados

advanced_search

Realize pesquisa avançada com múltiplos filtros e critérios.

Parâmetros:

  • query: Consulta de pesquisa base
  • tissueSpecific: Filtro de expressão específica de tecidos
  • subcellularLocation: Filtro de localização subcelular
  • cancerPrognostic: Filtro prognóstico de câncer
  • proteinClass: Filtro de classe de proteína
  • chromosome: Filtro de cromossomo
  • antibodyReliability: Filtro de confiabilidade de anticorpos
  • format: Formato de saída (json, tsv) - padrão: json
  • columns: Colunas específicas para incluir nos resultados
  • maxResults: Número máximo de resultados (1-10000) - padrão: 100

batch_protein_lookup

Consulte múltiplas proteínas simultaneamente.

Parâmetros:

  • genes (obrigatório): Matriz de símbolos de genes (máx. 100)
  • format: Formato de saída (json, tsv) - padrão: json
  • columns: Colunas específicas para incluir nos resultados

compare_expression_profiles

Compare perfis de expressão entre múltiplas proteínas.

Parâmetros:

  • genes (obrigatório): Matriz de símbolos de genes para comparar (2-10)
  • expressionType: Tipo de dados de expressão (tissue, brain, blood, single_cell) - padrão: tissue
  • format: Formato de saída (json, tsv) - padrão: json

Recursos Disponíveis

O servidor fornece vários modelos de recursos para acesso direto a dados:

Modelos de Recursos

  • hpa://protein/{gene}: Dados completos do atlas de proteínas para um símbolo de gene
  • hpa://ensembl/{ensemblId}: Dados completos do atlas de proteínas para um ID de gene Ensembl
  • hpa://tissue/{gene}: Dados de expressão específicos de tecidos para um gene
  • hpa://subcellular/{gene}: Informações de localização subcelular para um gene
  • hpa://pathology/{gene}: Dados de câncer e patologia para um gene
  • hpa://blood/{gene}: Dados de expressão de células sanguíneas para um gene
  • hpa://brain/{gene}: Dados de expressão de regiões do cérebro para um gene
  • hpa://antibody/{gene}: Informações de validação e coloração de anticorpos para um gene
  • hpa://search/{query}: Resultados de pesquisa para proteínas que correspondem à consulta

Exemplo de Acesso a Recursos

// Access tissue expression data for BRCA1
const resource = await client.readResource("hpa://tissue/BRCA1");

// Search for insulin-related proteins
const searchResults = await client.readResource("hpa://search/insulin");

Fontes de Dados

Este servidor acessa dados de:

  • Human Protein Atlas: Banco de dados principal do atlas de proteínas
  • Tissue Atlas: Dados de expressão de tecidos normais
  • Blood Atlas: Perfis de expressão de células sanguíneas
  • Brain Atlas: Dados de expressão de regiões do cérebro
  • Pathology Atlas: Dados de proteínas relacionadas ao câncer
  • Cell Atlas: Informações de expressão de células únicas

Limitação de Taxa e Boas Práticas

  • O servidor implementa limitação de taxa apropriada para respeitar a API do Human Protein Atlas
  • Para operações em lote, considere dividir solicitações grandes em partes menores
  • Use seleções de colunas específicas para reduzir o tamanho da resposta quando possível
  • Armazene em cache dados acessados com frequência quando apropriado

Tratamento de Erros

O servidor fornece tratamento abrangente de erros:

  • Parâmetros Inválidos: Mensagens de erro claras para entrada incorreta
  • Problemas de Rede: Lógica de nova tentativa para falhas transitórias
  • Erros de Formato de Dados: Tratamento gracioso de formatos de resposta inesperados
  • Limitação de Taxa: Estratégias de backoff apropriadas

Exemplos

Consulta Básica de Proteínas

// Search for BRCA1 protein
const result = await callTool("search_proteins", {
  query: "BRCA1",
  format: "json",
});

Análise de Expressão em Tecidos

// Get tissue expression for multiple genes
const comparison = await callTool("compare_expression_profiles", {
  genes: ["BRCA1", "BRCA2", "TP53"],
  expressionType: "tissue",
});

Pesquisa de Câncer

// Find breast cancer prognostic markers
const markers = await callTool("search_cancer_markers", {
  cancer: "breast cancer",
  prognostic: "unfavorable",
  maxResults: 50,
});

Processamento em Lote

// Look up multiple proteins at once
const batchResult = await callTool("batch_protein_lookup", {
  genes: ["BRCA1", "BRCA2", "TP53", "EGFR", "MYC"],
  format: "json",
});

Desenvolvimento

Compilação a partir do Código Fonte

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev

Testes

# Run the server
npm start

# Test with MCP client or direct stdio communication

Contribuições

Contribuições são bem-vindas! Por favor, garanta:

  1. O código segue as melhores práticas de TypeScript
  2. O tratamento de erros é abrangente
  3. A documentação é atualizada para novos recursos
  4. Testes são incluídos para novas funcionalidades

Licença

Licença MIT - consulte o arquivo LICENSE para detalhes.

Suporte

Para problemas e perguntas:

  1. Consulte a documentação do Human Protein Atlas: https://www.proteinatlas.org/about/help
  2. Revise a especificação do MCP: https://modelcontextprotocol.io/
  3. Envie problemas pelo repositório do projeto

Agradecimentos

  • Equipe do Human Protein Atlas por fornecer o banco de dados abrangente de proteínas
  • Comunidade do Model Context Protocol pelo framework de comunicação padronizado
  • Comunidades de TypeScript e Node.js pelas ferramentas de desenvolvimento

Este servidor fornece acesso programático aos dados do Human Protein Atlas para fins de pesquisa e educacionais. Por favor, cite as fontes apropriadas ao usar estes dados em publicações.

Citação

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

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