BRaVa MCP
BRaVa MCP
Biobank Rare Variant Analysis (BRaVa) 컨소시엄의 연관성 결과를 위한 MCP 서버: 약 120만 명(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-값이 정확히 0인 것은 누락된 결과가 아닌 가장 강력한 결과입니다. 이 중 몇 가지는 답변을 저하시키는 대신 반전시키므로, README에 두지 않고 컬럼과 함께 제공됩니다.
데이터베이스
873MB, 릴리스 에셋으로 게시되며, 첫 사용 시 ~/.cache/brava-mcp/에 한 번 다운로드됩니다. 의도적으로 커밋되지 않음: 배포 시마다 클론이 재설정되므로, 그 안에 기가바이트가 있으면 영원히 다시 가져오게 됩니다. 이 저장소를 클론하는 데는 3.9MB가 소요됩니다.
280개의 게시된 phenotype/{P}.{ANC}.json 파일에서 etl/build_db.py로 구축되었습니다. 이 파일들은 19,541개의 유전자별 파일과 동일한 데이터를 담고 있으므로, 피벗은 예의를 위해 선택되었습니다: 19,541개에 대해 280개 요청으로 동일한 적용 범위를 한 번, 영원히 참조되는 유전자당 하나가 아닌 방식입니다. 클래스 B 작업은 업스트림 무료 티어에서 희소한 자원이며, R2에서의 이그레스는 무료입니다.
낮은 카디널리티 키 컬럼으로 정렬되고 ART 인덱스 없이 구축됨: 인덱스 포함 2.49GB, 인덱스 없이 1.75GB, 정렬 후 0.87GB. 누락된 인덱스는 없습니다. 이들은 필터링된 스캔이며 DuckDB의 존맵이 이미 이를 처리하기 때문입니다. 모든 쿼리는 70ms 이내에 반환됩니다.
실행하기
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 # stdiouv run python etl/build_db.py로 업스트림에서 데이터베이스 재구축(약 200초: 다운로드 120초, 로딩 76초, 이후 정렬된 압축).
변수 | 기본값 | 용도 |
|
| 공유 데몬용 |
|
| 데몬 포트 |
| 릴리스 에셋 | 데이터베이스 가져올 위치 |
|
| 로컬 데이터베이스 |
| 업스트림 R2 | 변이 수준 파일 |
결과 읽기
beta > 0은 위험(이분 형질) 또는 형질 값(양적 형질)을 증가시킵니다.
beta와se는 항상 역분산 가중 Burden 메타 분석에서 비롯되며,p_skato를 읽는 행에서도 마찬가지입니다. SKAT-O 효과 크기는 없습니다.SKAT-O는 1차 옴니버스 검정입니다. Burden은 유전자의 변이들이 같은 방향을 가리킬 때 가장 강력하며, SKAT은 혼합되어 있을 때 가장 강력합니다.
synonymous마스크는 교정 대조군입니다. 유의미한 동의어 결과는 생물학이 아닌 잔차 검정 인플레이션을 나타냅니다.플래그십 논문의 임계값: 유전자 × 마스크 Bonferroni 1.39e-7, 유전자 수준 Cauchy 2.5e-6, 변이 수준 1.82e-8.
BRaVa는 대립유전자 빈도와 일반 변이 GWAS를 포함하지 않습니다. 변이 행은 전자를 위해 gnomAD로 연결됩니다.
schema()는 이 모든 정보와 다섯 가지 추가 함정을 컬럼과 함께 반환합니다.
평가
evals/questions.json은 14개의 질문을 보유하며, 14개 모두 evals/resolve_gold.py에 의해 원시 업스트림 파일에서 직접 해결됩니다. 이 파일은 brava에서 아무것도 임포트하지 않으므로, 벤치마크가 디코딩 버그와 일치할 수 없으며 업스트림 드리프트 탐지기 역할을 겸합니다.
evals/selfcheck.py는 각 질문을 도구를 통해 실행합니다: 현재 14/14, 질문당 중앙값 1회 호출, 전체 세트에 대해 아웃바운드 HTTP 요청 0회. 각 질문의 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.
Available Tools
4 toolsgene_phenotype_detailBRead-onlyIdempotent
Does a gene-trait association replicate across ancestries and biobanks?
BRaVa's distinctive view, and a tool rather than a documented query because the concordance count has to exclude the two pooled strata ('All' and 'non_EUR') that contain the same individuals as the ones being counted. The obvious SQL double-counts and looks entirely reasonable.
Pass a comma-separated list to screen a whole hit list at once: one gene at a time costs a call each, the list form returns a verdict per gene. Verdicts separate "underpowered" from "discordant", which is the distinction that matters when a stratum is fifteen times smaller than another.
| Name | Required | Description | Default |
|---|---|---|---|
| maf | No | "<0.1%" (default) or "<0.01%". | <0.1% |
| gene | Yes | Gene symbol or Ensembl id, or a comma-separated list of them. | |
| mask | No | Variant annotation mask (default "pLoF | damaging missense"). | pLoF | damaging missense |
| test | No | Burden, SKAT or SKAT-O (default SKAT-O). | SKAT-O |
| phenotype | Yes | Trait id or name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, setting a baseline for safety. The description adds context beyond annotations: it explains why this is a tool (SQL double-counting) and describes the verdict types. This is helpful but not exhaustive—there is no mention of rate limits, authentication needs, or what happens if inputs are invalid. The description adds some behavioral insight but falls short of full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and includes extraneous technical reasoning about SQL double-counting and the tool's origin. While informative, the first three sentences could be condensed. The key actionable information (handling lists, verdict meanings) appears only in the last two sentences. The structure lacks front-loading of essential details, making it less efficient for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (context confirms), the description does not need to detail return values. It explains the tool's purpose, input batch behavior, and verdict semantics, which suffices for most use cases. However, it omits specifics about supported biobanks, ancestry strata, or example phenotype IDs. The description is adequate for an expert but could be more complete for general AI consumption.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 5 parameters with descriptions (100% coverage), so the baseline is 3. The description adds extra value: it notes that the 'gene' parameter accepts a comma-separated list and that using a list returns a verdict per gene. It also clarifies the default for 'maf' and 'mask'. This goes beyond the schema, improving parameter understanding for batch usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear question defining the tool's purpose: 'Does a gene-trait association replicate across ancestries and biobanks?' This directly states the function. It also distinguishes itself as a specialized view that handles a SQL double-counting issue, which helps set it apart from generic query tools like the sibling 'query'. However, the purpose is embedded within technical reasoning, slightly reducing clarity for a general AI agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage advice: passing a comma-separated list to screen multiple genes, noting that one gene at a time costs a call each. It also explains the verdict distinction between 'underpowered' and 'discordant'. However, it does not explicitly say when to use this tool versus its siblings ('query', 'schema', 'variants') or when not to use it. The guidance is present but implicit and incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
queryARead-onlyIdempotent
Run read-only SQL over the whole BRaVa gene-level results table.
61.8 million rows: every gene x trait x variant-mask x MAF-cutoff x ancestry cell, with the Burden, SKAT and SKAT-O p-values, the effect size and its standard error, and the cross-cohort heterogeneity test. Local, so a query costs no network.
Call schema() first. It returns the tables, the columns, worked query
templates, and the semantic traps that make a syntactically valid query
scientifically wrong here. Several of them invert the answer rather than
degrade it.
Query the results view rather than the raw tables: it exposes p-values
instead of -log10, and labels instead of integer codes, so the obvious query
is also the correct one.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | One read-only statement (SELECT / WITH / DESCRIBE / SHOW / EXPLAIN). Combine steps with a CTE rather than sending several statements. | |
| max_rows | No | Rows returned (default 50, capped 500). The response is also capped at 25,000 characters, so select the columns you need. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the description's behavioral burden is lower. The description adds value by disclosing the exact size of the table ('61.8 million rows'), the cost profile ('local, so a query costs no network'), and the fact that results are capped (25,000 characters, max rows 500). This goes beyond basic safety disclosure to provide performance expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear introductory sentence, a list of table contents, a callout to call schema() first, and a recommendation to use the results view. Every sentence adds value. It could be slightly more concise by removing the exact row count and focusing on the most critical guidance, but it's not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the domain (61.8 million rows, multiple dimensions per cell), the rich annotations (readOnly, openWorld, idempotent), a fully described 2-parameter schema, and the presence of an output schema, the description is remarkably complete. It explains the exact contents, potential pitfalls (semantic traps), and best practices. There is no need to discuss return values since an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides clear descriptions for both parameters (sql and max_rows) with examples and constraints. Schema description coverage is 100%, so the baseline is 3. The description does not add meaning beyond what the schema provides, as the schema already explains the allowed SQL statements, default row count, and character limit. The description's mention of capping (500 rows, 25,000 chars) is redundant with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs 'read-only SQL over the whole BRaVa gene-level results table.' It specifies the verb ('query'), resource ('BRaVa gene-level results table'), and scope ('read-only SQL'). While the name 'query' is generic, the description distinguishes it from siblings by specifying the exact domain (BRaVa) and table type (gene-level results), making it clear what this tool does compared to 'variant' or 'schema'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to 'call `schema()` first' to understand the correct tables, columns, and semantic traps. It warns about semantic traps that can 'invert the answer.' It recommends querying the `results` view instead of raw tables. This provides explicit when-to-use guidance and a prerequisite action (calling schema()), which is excellent for avoiding misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schemaARead-onlyIdempotent
The tables, the query templates, and the traps. Read this before querying.
Returns the shipped tables with their columns and row counts, worked queries for the questions people actually ask, the analysis vocabulary (masks, MAF cutoffs, tests, significance thresholds), and a list of ways a correct-looking query gives a wrong answer on this data. That list is not boilerplate: it covers effect sizes that belong to a different test than the p-value beside them, a mask that is a calibration control rather than a biological category, ancestry strata that overlap, and p-values of exactly zero that mean the most significant result rather than a missing one.
Returns: tables, columns, recipes, vocabulary, thresholds and pitfalls.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, and idempotentHint, which signal safety and non-mutating behavior. The description adds significant behavioral value beyond these: it details specific pitfalls (e.g., effect sizes mismatched to p-values, overlapping ancestry strata, p-values of exactly zero) that would otherwise be opaque. It also describes the return structure comprehensively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise but slightly verbose in the second paragraph (listing all pitfalls could be slightly tighter). However, it front-loads the critical usage instruction ('Read this before querying') and the return list. Every sentence adds value and earns its place by providing context not in structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, no nested objects, and a likely output schema (mentioned but not provided here), the description is remarkably complete. It covers purpose, usage timing, return structure, and even specific pitfalls. The contextual signals (parameter count 0, schema coverage 100%) confirm no gaps need filling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters and schema description coverage is 100% (though empty schema). The description adds no parameter details because there are none, but this is appropriate and complete for a parameterless tool. No further explanation needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'tables, columns, recipes, vocabulary, thresholds and pitfalls' – a specific resource (schema/metadata) with a distinct verb 'returns'. It distinguishes itself from siblings like 'query' and 'variants' by describing this as a metadata discovery tool rather than a data retrieval tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Read this before querying,' setting a clear usage context: this should be called before using sibling tools (e.g., 'query') to understand the data structure, pitfalls, and analysis vocabulary. It implies when-not-to-use by framing itself as preparatory, not transactional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
variantsARead-onlyIdempotent
Single-variant results for a trait, genome-wide or inside one gene.
Drops below the gene-level burden tests to the individual variants carrying a
signal. Without gene this ranks the whole genome for the trait; with gene
it restricts to that gene and adds the per-biobank effect-direction tally,
the cross-biobank replication evidence.
Still fetched over HTTP rather than shipped in the database: the variant-level format is a separate, actively changing upstream release, an order of magnitude larger than the gene-level table, and rebuilt often enough that a local copy would be stale within the week. Each file is cached permanently once fetched.
Each row links to gnomAD, where population allele frequencies live.
| Name | Required | Description | Default |
|---|---|---|---|
| gene | No | Restrict to one gene. Omit for the genome-wide scan. | |
| chrom | No | Restrict the genome-wide scan to one chromosome ("2", "X"). | |
| limit | No | Max rows (default 25). | |
| max_p | No | p-value ceiling. The variant-level threshold is 1.82e-8. | |
| offset | No | Skip this many rows, to page through a long result set. | |
| ancestry | No | All (cross-ancestry meta, default) or a specific stratum. Only meaningful together with `gene`. | All |
| phenotype | Yes | Trait id or name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds rich behavioral context beyond the annotations: explains the HTTP fetch mechanism, reasons for not storing the data locally (large size, frequent upstream rebuilds), caching behavior (permanent caching after first fetch), and links to external data (gnomAD). This goes far beyond the readOnlyHint, openWorldHint, and idempotentHint annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured into three clear paragraphs, front-loaded with the core purpose. It contains some explanatory detail (e.g., HTTP fetch rationale) that is valuable but slightly verbose. Overall, each sentence contributes to understanding the tool's behavior and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not detail return values. It covers purpose, modes, differentiation from siblings, caching, and external references. It does not explicitly mention pagination or error handling, but the schema descriptions for limit/offset and context signals provide that. The description is largely complete for a read-only data retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing baseline 3. The description adds significant value for the 'gene' parameter by explaining it enables additional per-biobank effect-direction and cross-biobank replication evidence. It also reinforces the role of 'max_p' implicitly through mention of the threshold. For other parameters, the schema descriptions suffice.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'single-variant results for a trait, genome-wide or inside one gene', explicitly distinguishing it from gene-level burden tests (likely a sibling tool). It uses a specific verb (returns/fetches) and resource (variants), and explains the two distinct modes of operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use genome-wide vs per-gene mode and contrasts with gene-level burden tests. It implies usage context well but does not explicitly state 'when not to use' or name alternative tools. The guidance on caching and HTTP fetch provides operational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.1.0- First observed
gene_phenotype_detail - First observed
query - First observed
schema - First observed
variants
TDQS
Scored across 4 tools
Each tool has a distinct role: schema provides metadata and pitfalls, query runs arbitrary SQL, gene_phenotype_detail performs cross-ancestry replication analysis, and variants retrieves single-variant results. There is no overlap in functionality, and descriptions clearly differentiate use cases.
All tool names use lowercase and underscores, but they mix single-word verbs ('query', 'schema') and descriptive multi-word nouns ('gene_phenotype_detail', 'variants'). While the style is consistent (underscore_case), the pattern varies between imperative and descriptive, which is acceptable but not perfectly uniform.
Four tools are appropriate for a specialized genomic data server. Schema is a mandatory prerequisite, query enables flexible exploration, gene_phenotype_detail addresses the server's primary analysis use case, and variants provides deeper variant-level data. The count is compact and focused without being insufficient.
The server covers the main workflows: understanding the schema, running analytical SQL queries, performing replication checks, and accessing variant-level results. It lacks explicit tools for listing available traits or genes, but these can be obtained via query. The set is functionally complete for its domain, with minor gaps.
Maintenance
Related MCP Connectors
Look up allele frequencies by ancestry, gene constraint, variants, and coverage over gnomAD.
dbSNP refSNP records and HGVS/SPDI/rsID normalization for human genetic variants, from NCBI…
Canine genomics for agents: breed allele frequencies, AI pathogenicity + OMIA clinical disease layer
Pharmacogenomics for AI agents: cited drug–gene, gene and rsID lookups plus a medication screen.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAccess 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
- AlicenseNot gradedqualityDmaintenanceEnables real-time pharmacogenomics analysis, including variant clinical significance, drug-gene interactions, and dosing guidelines, by connecting to ClinVar, PharmGKB, gnomAD, and other databases.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to query clinical genomics databases, retrieve supporting literature, analyze population genetics, and visualize biological pathways.18MIT