Omics AI MCP Server

Interactúa con las redes de Omics AI Explorer para investigación genómica y análisis de datos.

Documentación

Omics AI MCP Server

Un servidor de Model Context Protocol (MCP) que permite a los agentes de IA interactuar conversacionalmente con las redes de Omics AI Explorer para investigación genómica y análisis de datos.

Descripción general

Este servidor MCP envuelve la funcionalidad de la omics-ai-python-library para proporcionar a los agentes de IA acceso fluido a datos genómicos en múltiples redes de Omics AI Explorer, incluyendo:

  • HiFi Solves (hifisolves.org) - Datos de secuenciación de lectura larga
  • Neuroscience AI (neuroscience.ai) - Datos genómicos de neurociencia
  • ASAP (cloud.parkinsonsroadmap.org) - Alineando la Ciencia en la Enfermedad de Parkinson
  • Viral AI (viral.ai) - Datos genómicos y de vigilancia viral
  • Target ALS (dataportal.targetals.org) - Datos de investigación sobre ELA

Características

El servidor MCP proporciona las siguientes herramientas para agentes de IA:

  • list_collections - Descubrir colecciones de datos disponibles en cualquier red
  • list_tables - Explorar tablas dentro de colecciones específicas
  • get_schema_fields - Examinar esquemas de tablas y tipos de campos
  • query_table - Consultar datos con filtros, paginación y ordenamiento
  • count_rows - Contar filas que coincidan con criterios específicos
  • sql_search - Ejecutar consultas SQL directas usando sintaxis de Trino

Instalación

git clone https://github.com/mfiume/omics-ai-mcp.git
cd omics-ai-mcp
npm install

Uso

Ejecutando el servidor

npm start

Configuración para Claude Desktop

Añade a tu archivo de configuración de Claude Desktop:

{
  "mcpServers": {
    "omics-ai": {
      "command": "node",
      "args": ["src/index.js"],
      "cwd": "/path/to/omics-ai-mcp"
    }
  }
}

Ejemplos de interacciones con agentes de IA

Una vez configurado, los agentes de IA pueden consultar datos genómicos conversacionalmente:

Agente: "¿Qué colecciones están disponibles en la red Viral AI?"

Usuario: "Muéstrame las tablas en la colección virusseq"

Agente: "Enumera las primeras 10 variantes de la tabla variants donde el cromosoma sea igual a chr1"

Usuario: "¿Cuántas variantes totales hay en la base de datos VirusSeq?"

Referencia de herramientas

list_collections

Lista todas las colecciones disponibles en una red.

Parámetros:

  • network (obligatorio): Nombre de la red (hifisolves, viral, neuroscience, etc.) o URL completa
  • access_token (opcional): Token de autenticación

list_tables

Lista todas las tablas en una colección específica.

Parámetros:

  • network (obligatorio): Nombre de la red o URL
  • collection_slug (obligatorio): Identificador de colección (p. ej., "virusseq", "gnomad")
  • access_token (opcional): Token de autenticación

get_schema_fields

Recupera el esquema y las definiciones de campos de una tabla.

Parámetros:

  • network (obligatorio): Nombre de la red o URL
  • collection_slug (obligatorio): Identificador de colección
  • table_name (obligatorio): Nombre de tabla calificado (p. ej., "collections.virusseq.variants")
  • access_token (opcional): Token de autenticación

query_table

Consulta datos de una tabla con filtrado y paginación opcionales.

Parámetros:

  • network (obligatorio): Nombre de la red o URL
  • collection_slug (obligatorio): Identificador de colección
  • table_name (obligatorio): Nombre de tabla calificado
  • filters (opcional): Objeto de criterios de filtro
  • limit (opcional): Máximo de filas a devolver (predeterminado: 100)
  • offset (opcional): Filas a omitir (predeterminado: 0)
  • order_by (opcional): Especificación de ordenamiento
  • access_token (opcional): Token de autenticación

count_rows

Cuenta filas que coinciden con los filtros especificados.

Parámetros:

  • network (obligatorio): Nombre de la red o URL
  • collection_slug (obligatorio): Identificador de colección
  • table_name (obligatorio): Nombre de tabla calificado
  • filters (opcional): Objeto de criterios de filtro
  • access_token (opcional): Token de autenticación

sql_search

Ejecuta consultas SQL directas contra una colección usando sintaxis de Trino con formato de resultados mejorado.

Parámetros:

  • network (obligatorio): Nombre de la red o URL
  • collection_slug (obligatorio): Identificador de colección
  • sql (obligatorio): Cadena de consulta SQL (usa sintaxis de Trino con comillas dobles para identificadores)
  • max_polls (opcional): Número máximo de intentos de sondeo (predeterminado: 10)
  • poll_interval (opcional): Segundos de espera entre sondeos (predeterminado: 2.0)
  • access_token (opcional): Token de autenticación

Características:

  • Sondeo automático de consultas asíncronas con manejo robusto de errores
  • Formato de resultados inteligente (vista de tabla para datos simples, JSON para complejos)
  • Indicadores de progreso e información de paginación
  • Gestión de tiempos de espera para consultas de larga duración

Consultas de ejemplo:

  • SELECT COUNT(*) FROM "schema"."table"
  • SELECT * FROM "schema"."variants" WHERE chrom = 'chr1' LIMIT 10
  • SELECT DISTINCT chrom FROM "schema"."variants" ORDER BY chrom

Redes compatibles

El servidor admite estas redes preconfiguradas (usa nombres cortos por conveniencia):

Nombre cortoURL completaDescripción
hifisolveshifisolves.orgDatos de secuenciación de lectura larga
neuroscienceneuroscience.aiGenómica de neurociencia
asapcloud.parkinsonsroadmap.orgInvestigación sobre Parkinson
viralviral.aiGenómica viral
targetalsdataportal.targetals.orgInvestigación sobre ELA

Manejo de errores

El servidor incluye manejo robusto de errores para:

  • Problemas de conectividad de red
  • Fallos de autenticación
  • Parámetros no válidos
  • Errores de análisis de respuestas de API
  • Manejo de tiempos de espera para consultas de larga duración

Desarrollo

# Development mode with auto-restart
npm run dev

# Production mode
npm start

Licencia

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

Proyectos relacionados