Unofficial Human Protein Atlas MCP Server

Accede a datos del Atlas de Proteínas Humanas, incluyendo expresión, localización y patología de proteínas.

Documentación

Logo

Servidor MCP no oficial de Human Protein Atlas

Un servidor integral de Model Context Protocol (MCP) para acceder a los datos de Human Protein Atlas, que proporciona información sobre expresión de proteínas, localización subcelular, patología y más.

Descripción general

El servidor MCP de Human Protein Atlas permite un acceso fluido al vasto repositorio de datos de proteínas de Human Protein Atlas (https://www.proteinatlas.org). Este servidor proporciona herramientas y recursos para:

  • Búsqueda e información de proteínas: Busque proteínas por nombre, símbolo génico o descripción
  • Expresión en tejidos: Acceda a perfiles de expresión específicos de tejidos
  • Localización subcelular: Recupere datos de localización de proteínas
  • Datos de patología: Acceda a información de proteínas relacionada con el cáncer
  • Expresión en sangre y cerebro: Datos de expresión especializados para células sanguíneas y regiones cerebrales
  • Información de anticuerpos: Datos de validación y tinción de anticuerpos
  • Procesamiento por lotes: Búsqueda eficiente de múltiples proteínas
  • Búsqueda avanzada: Consultas complejas con múltiples filtros

Características

Capacidades principales

  • 🔍 Búsqueda integral: Encuentre proteínas utilizando varios identificadores y palabras clave
  • 🧬 Datos multimodales: Acceda a información de expresión, localización y patología
  • 🩸 Atlas especializados: Integración de datos de Blood Atlas y Brain Atlas
  • 📊 Procesamiento por lotes: Manejo eficiente de múltiples consultas de proteínas
  • 🔬 Datos de grado de investigación: Información de proteínas de alta calidad y revisada por pares
  • ⚡ Respuesta rápida: Optimizado para una recuperación rápida de datos

Tipos de datos disponibles

  1. Información básica de proteínas

    • Símbolos génicos e identificadores de Ensembl
    • Descripciones y clasificaciones de proteínas
    • Referencias cruzadas de UniProt
  2. Datos de expresión

    • Expresión de ARN específica de tejidos
    • Perfiles de expresión de células sanguíneas
    • Datos de expresión de regiones cerebrales
    • Información de expresión de células individuales
  3. Localización subcelular

    • Patrones de localización de proteínas
    • Puntuaciones de fiabilidad
    • Datos de inmunofluorescencia
  4. Información de patología

    • Marcadores pronósticos de cáncer
    • Asociaciones con enfermedades
    • Dianas terapéuticas
  5. Datos de anticuerpos

    • Información de validación de anticuerpos
    • Patrones de tinción
    • Evaluaciones de fiabilidad

Instalación

Requisitos previos

  • Node.js 18 o superior
  • Gestor de paquetes npm o yarn

Configuración

  1. Clone o descargue el código del servidor

  2. Instale las dependencias:

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

    npm run build
    
  4. ¡El servidor está listo para usar!

Uso

Línea de comandos

Ejecute el servidor directamente:

npm start
# or
node build/index.js

Integración con el cliente MCP

Añada a la configuración de su cliente MCP:

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

Herramientas disponibles

Búsqueda y recuperación básica

search_proteins

Busque en Human Protein Atlas proteínas por nombre, símbolo génico o descripción.

Parámetros:

  • query (obligatorio): Consulta de búsqueda (nombre del gen, nombre de la proteína o palabra clave)
  • format: Formato de salida (json, tsv) - predeterminado: json
  • columns: Columnas específicas para incluir en los resultados
  • maxResults: Número máximo de resultados (1-10000) - predeterminado: 100
  • compress: Si se debe comprimir la respuesta - predeterminado: false

Ejemplo:

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

get_protein_info

Obtenga información detallada de una proteína específica por símbolo génico.

Parámetros:

  • gene (obligatorio): Símbolo génico (p. ej., BRCA1, TP53)
  • format: Formato de salida (json, tsv, xml, trig) - predeterminado: json

get_protein_by_ensembl

Obtenga información de proteínas utilizando el identificador de gen de Ensembl.

Parámetros:

  • ensemblId (obligatorio): Identificador de gen de Ensembl (p. ej., ENSG00000139618)
  • format: Formato de salida (json, tsv, xml, trig) - predeterminado: json

Análisis de expresión

get_tissue_expression

Obtenga datos de expresión específicos de tejidos para una proteína.

Parámetros:

  • gene (obligatorio): Símbolo génico
  • format: Formato de salida (json, tsv) - predeterminado: json

search_by_tissue

Encuentre proteínas altamente expresadas en tejidos específicos.

Parámetros:

  • tissue (obligatorio): Nombre del tejido (p. ej., hígado, cerebro, corazón)
  • expressionLevel: Filtro de nivel de expresión (high, medium, low, not detected)
  • format: Formato de salida (json, tsv) - predeterminado: json
  • maxResults: Número máximo de resultados (1-10000) - predeterminado: 100

get_blood_expression

Obtenga datos de expresión de células sanguíneas para una proteína.

get_brain_expression

Obtenga datos de expresión de regiones cerebrales para una proteína.

Localización subcelular

get_subcellular_location

Obtenga datos de localización subcelular para una proteína.

search_by_subcellular_location

Encuentre proteínas localizadas en compartimentos subcelulares específicos.

Parámetros:

  • location (obligatorio): Ubicación subcelular (p. ej., núcleo, mitocondrias, citosol)
  • reliability: Filtro de fiabilidad (approved, enhanced, supported, uncertain)
  • format: Formato de salida (json, tsv) - predeterminado: json
  • maxResults: Número máximo de resultados (1-10000) - predeterminado: 100

Patología y cáncer

get_pathology_data

Obtenga datos de cáncer y patología para una proteína.

search_cancer_markers

Encuentre proteínas asociadas con cánceres específicos o con valor pronóstico.

Parámetros:

  • cancer: Tipo de cáncer (p. ej., cáncer de mama, cáncer de pulmón)
  • prognostic: Filtro pronóstico (favorable, unfavorable)
  • format: Formato de salida (json, tsv) - predeterminado: json
  • maxResults: Número máximo de resultados (1-10000) - predeterminado: 100

Características avanzadas

advanced_search

Realice una búsqueda avanzada con múltiples filtros y criterios.

Parámetros:

  • query: Consulta de búsqueda base
  • tissueSpecific: Filtro de expresión específico de tejidos
  • subcellularLocation: Filtro de localización subcelular
  • cancerPrognostic: Filtro pronóstico de cáncer
  • proteinClass: Filtro de clase de proteína
  • chromosome: Filtro de cromosoma
  • antibodyReliability: Filtro de fiabilidad de anticuerpos
  • format: Formato de salida (json, tsv) - predeterminado: json
  • columns: Columnas específicas para incluir en los resultados
  • maxResults: Número máximo de resultados (1-10000) - predeterminado: 100

batch_protein_lookup

Consulte múltiples proteínas simultáneamente.

Parámetros:

  • genes (obligatorio): Matriz de símbolos génicos (máx. 100)
  • format: Formato de salida (json, tsv) - predeterminado: json
  • columns: Columnas específicas para incluir en los resultados

compare_expression_profiles

Compare perfiles de expresión entre múltiples proteínas.

Parámetros:

  • genes (obligatorio): Matriz de símbolos génicos para comparar (2-10)
  • expressionType: Tipo de datos de expresión (tissue, brain, blood, single_cell) - predeterminado: tissue
  • format: Formato de salida (json, tsv) - predeterminado: json

Recursos disponibles

El servidor proporciona varias plantillas de recursos para el acceso directo a datos:

Plantillas de recursos

  • hpa://protein/{gene}: Datos completos del atlas de proteínas para un símbolo génico
  • hpa://ensembl/{ensemblId}: Datos completos del atlas de proteínas para un identificador de gen de Ensembl
  • hpa://tissue/{gene}: Datos de expresión específicos de tejidos para un gen
  • hpa://subcellular/{gene}: Información de localización subcelular para un gen
  • hpa://pathology/{gene}: Datos de cáncer y patología para un gen
  • hpa://blood/{gene}: Datos de expresión de células sanguíneas para un gen
  • hpa://brain/{gene}: Datos de expresión de regiones cerebrales para un gen
  • hpa://antibody/{gene}: Información de validación y tinción de anticuerpos para un gen
  • hpa://search/{query}: Resultados de búsqueda de proteínas que coinciden con la consulta

Ejemplo de acceso 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");

Fuentes de datos

Este servidor accede a datos de:

  • Human Protein Atlas: Base de datos principal del atlas de proteínas
  • Tissue Atlas: Datos de expresión de tejidos normales
  • Blood Atlas: Perfiles de expresión de células sanguíneas
  • Brain Atlas: Datos de expresión de regiones cerebrales
  • Pathology Atlas: Datos de proteínas relacionadas con el cáncer
  • Cell Atlas: Información de expresión de células individuales

Límite de velocidad y mejores prácticas

  • El servidor implementa un límite de velocidad adecuado para respetar la API de Human Protein Atlas
  • Para operaciones por lotes, considere dividir las solicitudes grandes en fragmentos más pequeños
  • Utilice selecciones de columnas específicas para reducir el tamaño de la respuesta cuando sea posible
  • Almacene en caché los datos de acceso frecuente cuando corresponda

Manejo de errores

El servidor proporciona un manejo integral de errores:

  • Parámetros no válidos: Mensajes de error claros para entradas incorrectas
  • Problemas de red: Lógica de reintento para fallos transitorios
  • Errores de formato de datos: Manejo elegante de formatos de respuesta inesperados
  • Límite de velocidad: Estrategias de retroceso adecuadas

Ejemplos

Búsqueda básica de proteínas

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

Análisis de expresión en tejidos

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

Investigación del cáncer

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

Procesamiento por lotes

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

Desarrollo

Compilación desde el código fuente

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev

Pruebas

# Run the server
npm start

# Test with MCP client or direct stdio communication

Contribuciones

¡Las contribuciones son bienvenidas! Asegúrese de:

  1. Que el código siga las mejores prácticas de TypeScript
  2. Que el manejo de errores sea integral
  3. Que la documentación se actualice para nuevas funciones
  4. Que se incluyan pruebas para la nueva funcionalidad

Licencia

Licencia MIT: consulte el archivo LICENSE para obtener más detalles.

Soporte

Para problemas y preguntas:

  1. Consulte la documentación de Human Protein Atlas: https://www.proteinatlas.org/about/help
  2. Revise la especificación de MCP: https://modelcontextprotocol.io/
  3. Envíe problemas a través del repositorio del proyecto

Agradecimientos

  • Al equipo de Human Protein Atlas por proporcionar la base de datos integral de proteínas
  • A la comunidad de Model Context Protocol por el marco de comunicación estandarizado
  • A las comunidades de TypeScript y Node.js por las herramientas de desarrollo

Este servidor proporciona acceso programático a los datos de Human Protein Atlas con fines de investigación y educativos. Cite las fuentes apropiadas cuando utilice estos datos en publicaciones.

Cita

Si utiliza este proyecto en su investigación o publicaciones, cítelo de la siguiente manera:

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}