Genefoundry

io.github.berntpoppv0.9.2更新于 Sep 29, 2026

MCP gateway federating 22 biomedical MCP servers behind one endpoint: gnomAD, ClinVar, HPO, VEP.

已验证Streamable HTTP可网页运行Other

安装

在 SourceWeft 中

  1. 打开 控制台中的 Genefoundry,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "genefoundry": {
      "type": "http",
      "url": "https://genefoundry.org/mcp"
    }
  }
}

README

genefoundry-router

[Python 3.12+] [CI] [Security] [License: MIT]

A thin FastMCP 3.x aggregator that federates the GeneFoundry *-link MCP fleet behind a single Streamable-HTTP endpoint. A host adds one server — genefoundry — and gets every biomedical backend with collision-free <namespace>_<tool> naming and search-based discovery.

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

Why

An MCP host that mounted all 21 backends directly would face a wall of several hundred tools — more than a model can reason over, and a guarantee of name collisions. The router collapses that into one endpoint and replaces the flat catalog with a search surface, so a model finds the right tool by intent instead of by scrolling.

It is a client to each backend and a server to hosts: it namespaces and shapes the surface, but never rewrites a backend's data. The caller's token is never forwarded upstream.

Quick start

The fleet is hosted — no install required:

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

Health check: genefoundry.org/health.

To run your own against the live fleet (Python 3.12+, uv):

bash
uv sync --group devcp .env.example .env                    # set GF_*_URL backend URLs and GF_AUTH_MODEuv run genefoundry-router run --host 127.0.0.1 --port 8000curl -s localhost:8000/health | python -m json.tool

An offline fake fleet (make dev-fleet + make run-dev, or one-shot make test-e2e) runs the real router against impersonated backends over real Streamable-HTTP — no Docker, no network.

Tools

The router does not surface the federated catalog flat. A model sees three things:

ToolPurpose
search_toolsRelevance search over the entire federated catalog
call_toolInvoke a hit by its <namespace>_<tool> name
pinned entry pointsEach backend's front-door tool, always visible — declared per-backend as entrypoints: in servers.yaml
text
search_tools(query="splicing prediction")   # → spliceai_predict_splicing (+ schema)call_tool(name="spliceai_predict_splicing", arguments={...})

Pinning makes each domain's canonical tool reachable deterministically rather than by relevance luck. See How discovery works — including the two traps that bite MCP clients.

Federated backends

22 backends, 285 tools, each surfaced namespaced — e.g. gnomad_search_genes.

NamespaceDomainData sourceToolsRepo
pubtatorLiterature & entity annotationPubTator335pubtator-link
gnomadVariant / gene / population frequencygnomAD22gnomad-link
orphanetRare disease ontology & associationsOrphadata19orphanet-link
clingenGene–disease curationClinGen17clingen-link
hpoPhenotype ontology & associationsHuman Phenotype Ontology17hpo-link
mavedbVariant-effect assay scoresMaveDB15mavedb-link
uniprotProtein functionUniProt15uniprot-link
clinpgxPharmacogenomics / gene-drug guidelinesClinPGx13clinpgx-link
genereviewsGene–disease literatureGeneReviews13genereviews-link
mgiMouse phenotype & modelsMGI13mgi-link
mondoDisease ontology / cross-referencesMondo13mondo-link
genccGene–disease curationGenCC12gencc-link
metadomeProtein tolerance landscapesMetaDome11metadome-link
stringdbProtein–protein interaction networksSTRING10stringdb-link
gtexTissue expressionGTEx Portal9gtex-link
hgncGene nomenclatureHGNC9hgnc-link
panelappDiagnostic gene panels & curationPanelApp9panelapp-link
autopvs1Variant ACMG PVS1AutoPVS17autopvs1-link
spliceaiSplicing predictionSpliceAI Lookup7spliceailookup-link
vepVariant annotation / consequenceEnsembl VEP7vep-link
clinvarVariant clinical significanceClinVar6clinvar-link
litvarVariant literatureLitVar26litvar-link

Data & provenance

The router serves no data of its own; each backend owns its sources, licences and citation guidance, and the router mirrors their disclaimers.

What it does own is integrity of the tool surface. A backend can serve a clean tool at review time and later change its definition — the channel for a rug pull. The router fingerprints every normalized tool definition and diffs the live fleet against a reviewed, packaged baseline (genefoundry_router/data/fleet-baseline.json), enforced at startup and on a schedule. See Deployment → drift detection.

Documentation

Contributing

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

License

MIT © Bernt Popp. Each federated backend carries the licence and citation terms of its upstream data source; see that backend's repository.

来源:README.md,提交 c68eb8e

工具

0
工具元数据尚未被收录。

版本历史

3
  1. v0.9.2最新Sep 18, 2026
  2. v0.9.1Sep 18, 2026
  3. v0.9.0Sep 16, 2026