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

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
-
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
-
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
-
Localización subcelular
- Patrones de localización de proteínas
- Puntuaciones de fiabilidad
- Datos de inmunofluorescencia
-
Información de patología
- Marcadores pronósticos de cáncer
- Asociaciones con enfermedades
- Dianas terapéuticas
-
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
-
Clone o descargue el código del servidor
-
Instale las dependencias:
cd proteinatlas-server npm install -
Compile el servidor:
npm run build -
¡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: jsoncolumns: Columnas específicas para incluir en los resultadosmaxResults: Número máximo de resultados (1-10000) - predeterminado: 100compress: 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énicoformat: 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: jsonmaxResults: 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: jsonmaxResults: 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: jsonmaxResults: 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 basetissueSpecific: Filtro de expresión específico de tejidossubcellularLocation: Filtro de localización subcelularcancerPrognostic: Filtro pronóstico de cáncerproteinClass: Filtro de clase de proteínachromosome: Filtro de cromosomaantibodyReliability: Filtro de fiabilidad de anticuerposformat: Formato de salida (json, tsv) - predeterminado: jsoncolumns: Columnas específicas para incluir en los resultadosmaxResults: 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: jsoncolumns: 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: tissueformat: 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énicohpa://ensembl/{ensemblId}: Datos completos del atlas de proteínas para un identificador de gen de Ensemblhpa://tissue/{gene}: Datos de expresión específicos de tejidos para un genhpa://subcellular/{gene}: Información de localización subcelular para un genhpa://pathology/{gene}: Datos de cáncer y patología para un genhpa://blood/{gene}: Datos de expresión de células sanguíneas para un genhpa://brain/{gene}: Datos de expresión de regiones cerebrales para un genhpa://antibody/{gene}: Información de validación y tinción de anticuerpos para un genhpa://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:
- Que el código siga las mejores prácticas de TypeScript
- Que el manejo de errores sea integral
- Que la documentación se actualice para nuevas funciones
- 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:
- Consulte la documentación de Human Protein Atlas: https://www.proteinatlas.org/about/help
- Revise la especificación de MCP: https://modelcontextprotocol.io/
- 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}