GeneChat MCP has 11 tools with moderate definition quality. All tools have descriptions (10-200 chars), but most parameter descriptions are minimal. Input schemas are present but sparse, only the core genome/rsid/gene parameters are documented; optional filter parameters (drug, trait, significance, category, prs_id) lack explicit type declarations or constraints. The server is domain-focused (genomics) with clear, appropriate naming (verb_noun pattern: query_*, list_*, get_*), but parameter documentation is inconsistent. No output schemas are visible in the provided source. All tools are READ_ONLY (no state-modifying operations), which simplifies error handling but the lack of documented output structure and missing parameter descriptions limit LLM reasoning quality.
Infer ancestry from genomic variants
Identify carrier status for recessive genetic conditions
Query ClinVar disease associations
Get a summary of a genome including variant counts by category
Query trait associations from GWAS Catalog
List all registered genomes
Query pharmacogenomics (drug-gene interactions)
Calculate polygenic risk scores from PRS Catalog
Optional filter parameters (drug, trait, significance, category, prs_id) lack explicit type declarations and constraints in visible schema. LLMs cannot infer valid values for free-form string inputs, risking hallucinated values like drug='unknown_compound' or significance='maybe_pathogenic'.
No documented output schemas visible in source. LLMs cannot plan downstream operations or extract the right fields from responses. For a genomics server, response structure (variant counts, allele frequencies, phenotype associations) must be explicitly documented so agents understand what data is available.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
Query variants in a gene
Query a variant by rsID (SNP identifier)
Query phenotypic traits from genomic variants
Parameter 'genome2' in carrier_screening lacks a description in the visible schema. The annotation '(optional)' is insufficient, LLMs need to know what 'paired comparisons' means and when genome2 is required vs optional.
Tool descriptions are terse (70-75 chars on average). They state WHAT the tool does but not WHEN to use it or dependencies. E.g., 'Query pharmacogenomics (drug-gene interactions)' does not explain whether this requires prior knowledge of the user's medications or if the tool auto-detects them from the genome.
The 'genome' parameter is used across 10 of 11 tools but lacks a centralized constraint specification (e.g., enum of valid genome labels, or min/max length). server.py shows genomes are loaded from config, but this list is not exposed as an enum in tool schemas for validation.