BRaVa MCP
BRaVa MCP
MCP-сервер для результатов ассоциаций консорциума Biobank Rare Variant Analysis (BRaVa): редкие кодирующие варианты, ген-ориентированные тесты, мета-анализированные на ~1,2 млн человек из 10 глобальных биобанков, 44 гармонизированных признака, 7 страт происхождения.
Только сводная статистика. Не для клинического использования.
Он поставляет таблицу, а не обёртку вокруг неё
Результаты на уровне генов представляют собой единую плоскую таблицу фактов, и модель уже пишет SQL на экспертном уровне, поэтому query передаёт её: 61 791 444 строки, локально, без сети. Любой вопрос — это запрос, включая те, которые фиксированный набор инструментов никогда бы не предвидел.
-- what does this gene do
SELECT trait, mask, p_skato, beta FROM results
WHERE gene='PCSK9' AND ancestry='All' AND mask<>'synonymous'
ORDER BY p_skato LIMIT 20
-- most pleiotropic genes
SELECT gene, count(DISTINCT trait) traits FROM results
WHERE ancestry='All' AND p_skato < 1.39e-7 GROUP BY gene ORDER BY traits DESC
-- what a European-only study would have missed
SELECT a.gene, a.trait, a.p_skato FROM results a
WHERE a.ancestry='AFR' AND a.p_skato < 2.5e-6 AND NOT EXISTS (
SELECT 1 FROM results e WHERE e.ancestry='EUR'
AND e.gene_idx=a.gene_idx AND e.pheno=a.pheno AND e.p_skato < 2.5e-6)Related MCP server: gwas-mcp
Инструменты
Инструмент | Назначение |
| SQL только для чтения по всей таблице уровня генов |
| Таблицы, столбцы, выполняемые рецепты и ловушки, которые делают корректный запрос научно неверным. Прочитайте это в первую очередь |
| Кросс-анцестральная репликация для пары ген-признак или скрининг по списку хитов |
| Результаты по отдельным вариантам, по всему геному для признака или внутри одного гена |
Три не-запросных инструмента покрывают то, что SQL не может.
gene_phenotype_detail, потому что количество совпадений должно исключать All и non_EUR, которые объединяют тех же индивидов, что и подсчитываемые страты: очевидный SQL делает двойной подсчёт и выглядит совершенно разумно.
variants, потому что релиз на уровне вариантов — это отдельный вышестоящий формат, на порядок больше и перестраивается достаточно часто, чтобы локальная копия устарела в течение недели.
schema(), потому что синтаксически идеальный запрос всё ещё может быть научно неверным здесь. Размеры эффектов относятся к другому тесту, чем p-значение рядом с ними, одна маска является калибровочным контролем, а не биологической категорией, страты происхождения перекрываются, а p-значение, равное точно нулю, является самым сильным результатом, а не отсутствующим. Некоторые из этих моментов инвертируют ответ вместо его ухудшения, поэтому они путешествуют вместе со столбцами, а не сидят в README.
База данных
873 МБ, опубликована как релизный артефакт и загружается один раз в ~/.cache/brava-mcp/ при первом использовании. Намеренно не включена в репозиторий: развёртывания сбрасывают клон при каждом запуске, поэтому гигабайт внутри него будет перезагружаться вечно. Клонирование этого репозитория стоит 3,9 МБ.
Построена с помощью etl/build_db.py из 280 опубликованных файлов phenotype/{P}.{ANC}.json. Они несут те же данные, что и 19 541 файл на ген, поэтому выбор сделан в пользу вежливости: 280 запросов против 19 541 для идентичного покрытия, один раз, а не по одному на ген навсегда. Операции класса B являются дефицитным ресурсом на вышестоящем бесплатном уровне; исходящий трафик бесплатен на R2.
Отсортирована по ключевым столбцам с низкой кардинальностью и построена без ART-индексов: 2,49 ГБ с индексами, 1,75 ГБ без, 0,87 ГБ отсортировано. Ни один индекс не упущен, потому что это фильтрованные сканирования, и зонные карты DuckDB уже обслуживают их. Каждый запрос выше возвращается менее чем за 70 мс.
Запуск
make sync # install
make db # download the published database (873 MB, once)
make test # offline suite
make test-all # + live-data checks
make eval # 14 benchmark questions, answers derived independently
make serve # HTTP daemon on :3163
uv run python server.py # stdioПерестроить базу данных из вышестоящего источника с помощью uv run python etl/build_db.py (~200 с: 120 с скачивания, 76 с загрузки, затем отсортированная компактификация).
Переменная | По умолчанию | Назначение |
|
|
|
|
| порт демона |
| релизный артефакт | откуда загружать базу данных |
|
| локальная база данных |
| вышестоящий R2 | файлы уровня вариантов |
Чтение результатов
beta > 0 увеличивает риск (бинарные признаки) или значение признака (количественные).
betaиseвсегда берутся из мета-анализа Burden с обратной дисперсионной взвешиванием, включая строки, где вы читаетеp_skato. Размера эффекта SKAT-O не существует.SKAT-O является основным всеобъемлющим тестом. Burden наиболее мощный, когда варианты гена указывают в одном направлении; SKAT — когда они смешаны.
Маска
synonymousявляется калибровочным контролем. Значимый синонимичный результат указывает на остаточную инфляцию теста, а не на биологию.Пороги из флагманской статьи: ген × маска Бонферрони 1.39e-7, на уровне генов Коши 2.5e-6, на уровне вариантов 1.82e-8.
BRaVa не содержит частот аллелей и GWAS общих вариантов. Строки вариантов ссылаются на gnomAD для первого.
schema() возвращает всё это, плюс ещё пять ловушек, вместе со столбцами.
Оценка
evals/questions.json содержит четырнадцать вопросов, все четырнадцать решены непосредственно из исходных вышестоящих файлов с помощью evals/resolve_golds.py, который ничего не импортирует из brava, поэтому бенчмарк не может согласиться с ошибкой декодирования и служит также детектором дрейфа вышестоящих данных.
evals/selfcheck.py проходит каждый вопрос через инструменты: в настоящее время 14/14, медиана одного вызова на вопрос и нулевые исходящие HTTP-запросы для всего набора. Он проверяет evidence каждого вопроса (значения, которые должны вернуть инструменты) и никогда его answer, потому что несколько ответов являются выводами, которые не может проверить ни одно строковое совпадение. Таким образом, он доказывает, что данные доступны и какой ценой, а не то, что модель приходит к правильному выводу; эта половина требует раннера с моделью в цикле и пока отсутствует.
Трафик
Вопросы на уровне генов локальны, поэтому они ничего не стоят вышестоящему проекту. Только variants выполняет загрузку, и каждый файл кэшируется постоянно. Построение базы данных стоит 280 запросов, один раз. См. nikbaya/brava_browser#1 для обсуждения с автором вышестоящего проекта.
Цитирование
Palmer, Hill, Hodgson, et al. Rare variant association analyses across 10 global biobanks. medRxiv (2026). doi:10.64898/2026.05.21.26353759
База данных получена из этого релиза через опубликованные файлы браузера BRaVa и распространяется под лицензией MIT браузера.
Лицензия
MIT.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceAccess to 1000 Genomes Project dataset, hosted online in Dnaerys variant store2Apache 2.0
- AlicenseCqualityFmaintenanceProvides AI-powered access to major biological databases for GWAS and bioinformatics research. Enables natural language queries for protein, gene, variant, pathway, and drug discovery analysis.441MIT
- Alicense-qualityDmaintenanceEnables real-time pharmacogenomics analysis, including variant clinical significance, drug-gene interactions, and dosing guidelines, by connecting to ClinVar, PharmGKB, gnomAD, and other databases.1MIT
- Alicense-qualityDmaintenanceEnables AI agents to query clinical genomics databases, retrieve supporting literature, analyze population genetics, and visualize biological pathways.22MIT
Related MCP Connectors
GTEx — Genotype-Tissue Expression human gene-expression atlas
Broad Institute gnomAD genomic variant database (GraphQL)
Canine genomics for agents: breed allele frequencies, AI pathogenicity + OMIA clinical disease layer
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/plemio/brava-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server