Genomics MCP
Obtén datos genómicos de EGA, ENA, ENCODE, GEO y NCBI, consulta lecturas, variantes y señales indexadas, y recupera evidencia de referencia con atribución de fuente.
Documentación
Genomics MCP
Permite que tu asistente de IA recupere datos genómicos reales y evidencia de referencia, con las fuentes de las que provienen.
Genomics MCP es un servidor local de Model Context Protocol. Un agente puede usarlo para encontrar conjuntos de datos públicos y leer una región acotada de archivos de archivo, remotos o locales. También puede consultar variantes y genes en bases de datos de referencia públicas. Las consultas de región usan un ensamblaje explícito y coordenadas semicerradas basadas en 0. Cuando el formato y el servidor admiten lecturas por rango, una región se lee sin descargar el archivo completo. Las descargas de archivos completos son un paso separado y presupuestado. Los resultados informan qué fuentes se consultaron (procedencia y estado por fuente), con accesiones, versiones y tiempos de recuperación cuando la fuente los proporciona.
Es una herramienta de investigación. Recupera y reporta datos. No proporciona interpretación clínica, no llama variantes ni extrae conclusiones biológicas.
Para quién es
Biólogos computacionales e investigadores que quieren que un agente extraiga datos de EGA, ENA, ENCODE, GEO, NCBI o sus propios archivos indexados sin escribir código de integración. También es adecuado para quienes construyen agentes o evaluaciones que necesitan datos reales con fuentes rastreables. No genera puntos de referencia por sí mismo.
Ejemplos de solicitudes
Indicaciones ilustrativas; los resultados dependen de tu cliente y modelo. Los intervalos son semicerrados basados en 0 (inicio incluido, fin excluido); las posiciones de variantes estilo VCF son basadas en 1.
- "Muestra las lecturas del archivo EGA EGAF00007243773 (conjunto de datos EGAD00001003338) que se superponen con GRCh38 chr10:[10000, 10050)." Necesita
GENOMICS_MCP_EGA_PUBLIC_TEST_ACCOUNT=1, la cuenta de prueba pública documentada de EGA. - "¿Cuál es la señal media del archivo ENCODE ENCFF792QDS sobre GRCh38 chr1:[1000000, 1001000)?"
- "Verifica la base de referencia de la variante GRCh38 7-140753336-A-T contra NCBI, luego lista sus registros ClinVar con clasificaciones de línea germinal, somática y oncogenicidad mantenidas separadas."
- "Descarga el FASTA de ENA para DQ285577.1 y muestra sus primeras 30 bases."
- "Compara genotipos en chr1:[100000, 200000) entre los dos VCF en mi carpeta de datos."
Ejemplo medido
La solicitud de ENCODE anterior, ejecutada con una instalación limpia el 2026-09-25 con datos en vivo:
- Archivo: ENCODE ENCFF792QDS, GRCh38 bigWig, 1,413,106,336 bytes
- Intervalo: chr1:[1000000, 1001000)
- Resultado: media exacta 26.361254017233847, de lecturas por rango HTTP. El espacio de trabajo contuvo 0 bytes después (nada escrito en disco; las lecturas de red aún ocurrieron).
Cuatro otras demostraciones en vivo se ejecutaron con la misma instalación: una región de BAM de prueba de EGA, una descarga de secuencia de ENA, una verificación de referencia con ClinVar y MinIO local. Comandos y resultados legibles por máquina: docs/demos.md.
Estudio de caso de agente: un agente de Claude Code, limitado a las herramientas de este servidor, compara la señal de DNase-seq de ENCODE en el potenciador eritroide BCL11A en 26 archivos, con una transcripción y una reproducción sin modelo: examples/agent-case-study/.
Inicio rápido
Contenedor (Linux x86_64 con Docker)
La imagen es linux/amd64. Está probada en Linux x86_64; Docker en macOS no está probado. Crea la carpeta de datos primero; se monta de solo lectura.
{
"mcpServers": {
"genomics": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--mount", "type=bind,source=/path/to/your/data,target=/data,readonly",
"--mount", "type=volume,source=genomics-mcp-work,target=/work",
"ghcr.io/rewire-bio/genomics-mcp:0.1.0"
]
}
}
}
Desde el código fuente (macOS arm64, Linux x86_64)
Necesita Python 3.12, uv, un compilador C y archivos de desarrollo de libcurl y zlib (pyBigWig se compila desde el código fuente para soporte de archivos remotos).
git clone https://github.com/rewire-bio/genomics-mcp
cd genomics-mcp && git checkout v0.1.0
uv sync --locked --no-dev
uv run --no-dev genomics-mcp --check-config
{
"mcpServers": {
"genomics": {
"command": "uv",
"args": ["--directory", "/path/to/genomics-mcp", "run", "--no-dev", "genomics-mcp"],
"env": { "GENOMICS_MCP_ALLOWED_ROOTS": "/path/to/your/data" }
}
}
}
Aún no hay paquete PyPI. Wheel, paquete MCPB de Linux, comando uvx fijado, notas de Windows (WSL2) y plataforma: docs/install.md.
Cobertura
| Área | Fuentes y formatos |
|---|---|
| Descubrimiento | EGA, ENA (incl. accesiones SRA), ENCODE, GEO, NCBI Datasets: estudios, conjuntos de datos, muestras, fenotipos según se proporcionan, archivos |
| Datos genómicos | BAM/CRAM, VCF/BCF, FASTA, BED/GFF3/GTF, bigWig/bigBed en disco local, HTTPS o S3; regiones EGA vía htsget |
| Transferencias | Descargas presupuestadas, reanudables y con suma de verificación devueltas como rutas locales |
| Referencia | HGNC, Ensembl, ClinVar, gnomAD, UniProt, Open Targets; AlphaGenome Atlas opcional con tu propia clave |
Las 23 herramientas y los recursos
| Grupo | Herramientas |
|---|---|
| Descubrimiento | list_sources, search_datasets, describe_dataset, list_files, list_samples, get_sample_metadata |
| Transferencias | fetch_file, get_transfer_status, cancel_transfer |
| Genómica | get_reads, get_coverage, get_pileup, get_variants, get_sequence, get_features, get_signal |
| Composición | inspect_locus, compare_samples |
| Referencia | resolve_identifier, normalize_variant, lookup_variant, lookup_gene, lookup_protein |
Recursos: genomics://capabilities, genomics://status, genomics://schemas, genomics://schemas/{name}.
Valores predeterminados y seguridad
- Límites: regiones de 1 Mb, 10,000 registros, respuestas de 1 MiB y un plazo de 30 s; las llamadas pueden reducir estos valores. Las transferencias están limitadas a 100 MiB a menos que una llamada establezca un presupuesto mayor. La truncación se informa. Nada se levanta entre ensamblajes.
- Solo local: stdio, o HTTP Streamable con un token de portador en 127.0.0.1. No hay servicio alojado. Las lecturas locales están limitadas a las carpetas que permitas, y los archivos fuente nunca se modifican.
- Credenciales y salida: las credenciales ambientales de AWS nunca se usan; S3 privado y EGA necesitan configuración explícita. Los valores de archivos no marcados como
publicvan a APIs externas solo cuando una llamada estableceallow_external_annotation. - Caché (no publicado; solo checkout de desarrollo, no en v0.1.0): una caché en memoria acotada reutiliza rangos de bytes de archivos HTTPS públicos marcados como
public(revalidados por ETag en cada llamada) y respuestas de API públicas. Nunca se usa para solicitudes privadas, firmadas o autenticadas. Desactívala con[cache] enabled = false; reiniciar la limpia. Detalles y mediciones: rendimiento.
Configuración: config.example.toml. Alcance y límites conocidos: PRD.md. Estado de directorio y PyPI: registro de publicación. Detalles técnicos: acceso a datos, archivos, referencias, composición. Seguridad: SECURITY.md.
Desarrollo
uv sync --locked
uv run ruff check . && uv run ruff format --check .
uv run pytest
Licencia
MIT. Ver LICENSE. Los datos de cada fuente están sujetos a los términos de esa fuente.