Skip to main content
Glama

strchive-link

Python 3.14+ CI Conformance License: MIT

An MCP (Model Context Protocol) server for STRchive, the curated catalog of short-tandem-repeat (STR) disease loci: repeat-count ranges, pathogenic motifs, interruptions and per-assembly coordinates, served from a snapshot pinned to an exact upstream commit and SHA-256, over Streamable HTTP or stdio.

IMPORTANT

Research use only. Not clinical decision support. Do not use for diagnosis, treatment, triage, or patient management.

Why

Repeat-expansion thresholds are scattered across papers and easy to misquote: HTT has a reduced-penetrance band, RFC1 is pathogenic only for certain motifs, and many loci have no stated intermediate range at all. STRchive curates these per locus with citations.

strchive-link hands an agent that record without paraphrase. Ranges are reported exactly as the source states them (closed intervals in repeat units). A missing range stays null with status: not_stated_by_source, and overlapping ranges are kept as stated. Every alternative pathogenic motif is listed in both gene and reference orientation. Coordinates are given per assembly (hg38, hg19, T2T) and never converted. Upstream prose is fenced as untrusted_text. The tools complement PanelApp STR entities and HGNC/HPO/Mondo resolution elsewhere in the fleet. They do not genotype reads or classify alleles.

Related MCP server: GenomeMCP

Quick start

Hosted — no install, through the GeneFoundry router (namespace strchive, once deployed):

claude mcp add --transport http genefoundry https://genefoundry.org/mcp

Local (Python 3.14+, uv). The server downloads the pinned file (~526 KB) from GitHub at startup and verifies its digest; set STRCHIVE_LINK_DATA__LOCAL_PATH to serve a local copy instead:

make install          # uv sync --group dev
make dev              # unified REST + MCP on http://127.0.0.1:8000/mcp
make mcp-serve        # ...or a stdio MCP server, for Claude Desktop
claude mcp add --transport http strchive-link --scope user http://127.0.0.1:8000/mcp

Serving over HTTP behind a proxy requires adding the public hostname to the exact Host allowlist — read Configuration first.

Tools

Tool

Purpose

search_loci

Start here. Find loci by gene, locus id, MONDO/OMIM/Orphanet id, motif or disease words.

get_locus

One locus: ranges, motifs (all orientations), interruptions, inheritance, coordinates, ids, PMIDs.

compare_repeat_length

Which stated ranges contain a repeat count. Descriptive only, not a diagnosis.

get_server_capabilities

Discovery surface: tools, signatures, semantics, license, data pin.

get_diagnostics

Whether the pinned snapshot is loaded and its digest verified.

serverInfo.name is strchive-link, and leaf tool names are intentionally unprefixed per the GeneFoundry Tool-Naming Standard v1. The canonical gateway namespace token is strchive: behind genefoundry-router these surface as strchive_<tool> (e.g. strchive_get_locus).

Every response carries _meta.next_commands and recommended_citation, and honours response_mode ∈ {minimal, compact, standard, full} (default compact). See Usage.

Data & provenance

  • Source — data/STRchive-loci.json from dashnowlab/STRchive, pinned to commit e964fa88df3b2189ee478cbd6eaad15bb28e3a0a (2026-10-08), SHA-256 16301ecb00239f0e3c684913aefc2f48c6f5a7c2a481958aab4db55d282bca86. Every record is schema-validated before it is served. See Data.

  • Refresh — none at runtime: STRchive has no tagged releases, so a new snapshot is a reviewed pin bump and a new release of this server.

  • Licence — STRchive data are CC BY 4.0 (STRchive by Harriet Dashnow et al.; attribution required). STRchive code is MIT.

  • Citation — Hiatt L, Weisburd B, Dolzhenko E, Rubinetti V, Avvaru AK, VanNoy GE, Kurtas NE, Rehm HL, Quinlan AR, Dashnow H. STRchive: a dynamic resource detailing population-level and locus-specific insights at tandem repeat disease loci. Genome Med. 2025. doi:10.1186/s13073-025-01454-4.

Documentation

  • Usage — workflows, range and coordinate semantics, response_mode, fencing.

  • Configuration — every STRCHIVE_LINK_* variable, the transports, and the Host / Origin / CORS boundary.

  • Data — the pin, validation, licence, and how to bump the snapshot.

  • Deployment — the hardened container and the release flow.

Contributing

See AGENTS.md for engineering conventions. make ci-local is the definition-of-done gate: format, lint, line budget, README standard, mypy strict, and tests.

License

MIT © strchive-link contributors. STRchive data are CC BY 4.0 (Harriet Dashnow et al.); cite them as above.

Available Tools

5 tools
compare_repeat_lengthCompare Repeat Length to STRchive RangesA
Read-onlyIdempotent

Compare an observed repeat count (repeat units, i.e. motif copies) with the ranges STRchive states for one locus and list every range that contains it (overlapping ranges can both match; none may match). Descriptive only, NOT a diagnosis. motif_dependent=true flags loci (e.g. RFC1) where motif identity, not length alone, decides the category. Signature: compare_repeat_length(locus, repeat_count).

Inputs: locus (required), repeat_count (required).

get_diagnosticsGet DiagnosticsA
Read-onlyIdempotent

Report whether the pinned STRchive snapshot is loaded and verified: upstream commit, expected vs actual SHA-256, and locus count. Use it to confirm the data version or diagnose an upstream_unavailable error. Signature: get_diagnostics().

Inputs: no named parameters.

get_locusGet STRchive LocusA
Read-onlyIdempotent

Get one STRchive tandem-repeat disease locus: benign/intermediate/pathogenic repeat-count ranges exactly as the source states them (closed [min,max] in repeat units; a range the source does not state is null with status not_stated_by_source), pathogenic/benign/unknown motifs and interruptions in gene and reference orientation (all alternative pathogenic motifs, e.g. RFC1), inheritance, evidence level, hg38/hg19/T2T coordinates (BED 0-based half-open; never lifted over), MONDO/OMIM ids and PMIDs. Signature: get_locus(locus, response_mode=).

Inputs: locus (required), response_mode.

get_server_capabilitiesGet Server CapabilitiesA
Read-onlyIdempotent

Return the strchive-link discovery surface: tools with call signatures, argument aliases, response modes, range/coordinate semantics, error codes, limits, data pin, license and citation. detail='full' adds the usage notes. Signature: get_server_capabilities(detail=).

Inputs: detail.

search_lociSearch STRchive LociA
Read-onlyIdempotent

Search the STRchive catalog of tandem-repeat (STR) disease loci. query matches, in rank order: an exact locus id / gene symbol / disease abbreviation; a MONDO:/OMIM:/ORPHA: id; a repeat motif in either orientation (e.g. CAG, AAGGG); words in the disease name, then in source tags (e.g. 'ataxia'), then in the locus HPO phenotype labels. Each row's matched_on says which. Omit query to list every locus. Returns results with total/truncated/next_offset. Signature: search_loci(query=, limit=, offset=, response_mode=).

Inputs: limit, query, offset, response_mode.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool targets a clearly different object: server metadata (get_server_capabilities), data provenance (get_diagnostics), catalog search (search_loci), single-record fetch (get_locus), and a derived comparison (compare_repeat_length). The search/fetch pair is a standard, well-understood split, and compare_repeat_length is explicitly distinguished from get_locus as a descriptive comparison rather than a record dump. No two tools appear interchangeable.

    Naming Consistency5/5

    All five names follow a strict snake_case verb_noun pattern (get_*, search_*, compare_*), with the verb accurately signaling the operation type. No camelCase or stylistic mixing.

    Tool Count5/5

    Five tools is a tight, well-earned surface for a read-only locus lookup service: discovery, diagnostics, search, fetch, and one analytical helper. Nothing appears redundant or missing at the count level.

    Completeness4/5

    The read-only lifecycle for the domain is well covered: enumerate/search, retrieve full record, interpret an observation against ranges, plus provenance and capability discovery. Minor gaps remain, such as querying loci by genomic coordinate/region or comparing multiple loci or samples in one call, which an agent would have to loop over manually.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Enables AI assistants to query genetic variant data, gene constraints, and population genetics information from the gnomAD (Genome Aggregation Database) through its GraphQL API. Supports searching for genes and variants, retrieving constraint scores, analyzing population frequencies, and accessing genomic coverage data.
      9
      10
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI agents to query clinical genomics databases, retrieve supporting literature, analyze population genetics, and visualize biological pathways.
      18
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables AI-driven pharmacogenomic analysis by querying structured genetic variant, drug response, and disease risk data. Supports natural language questions about medications, traits, and health risks based on user genome data, with privacy-first local execution.
      16
      25 npm
      12
      MIT