Shared instructions for AI coding agents working in this repository. genefoundry-router is a thin FastMCP 3.x aggregator (a router/gateway), NOT a data server. It federates the GeneFoundry *-link MCP fleet behind one Streamable-HTTP endpoint (genefoundry) with collision-free namespacing, BM25 tool-search, pluggable auth, and a config-driven registry. It is a client to each backend and a server to hosts. Other useful targets: make test, make test-integration, make test-cov (coverage ≥70), make lint, make typecheck, make run, make validate, make doctor, make…
Claude Code entrypoint only: - Use AGENTS.md for shared repository instructions. - Keep Claude-specific additions here short and tool-specific. - Prefer make ci-local before final handoff (runs lint-loc, the 600-LOC budget). - FastMCP 3.x symbols are post-training-cutoff and fast-moving — verify imports against the installed package before relying on them (see the import smoke in docs/plans/2026-06-13-genefoundry-router-implementation.md, Task 2). - When a backend's source repo adopts Tool-Naming Standard v1, delete its transform block from servers.yaml rather than adding router-side workarounds.
Use when changing the router's authentication or authorization — JWT/OAuth modes, verifiers, resource/audience metadata, the secure-by-default bind guard, or the no-token-passthrough boundary.
Use when adding, removing, enabling/disabling, or reconfiguring a backend in the router's servers.yaml registry (URLs, namespaces, entrypoints, server_name/transform overrides).
Use when reviewing a diff, PR, or change set for correctness and quality before merge or handoff. For a deep security-only pass, use security-review instead.
Use when working on tool-definition drift detection, MCP transport conformance, the live fleet probe, or the discovery-catalog snapshots that close the CI≠prod gap.
Use when bringing this repo into compliance with a GeneFoundry fleet standard (tool-naming, response-envelope, container-hardening, versioning, MCP transport, or logging) or closing its tracking issue.
Use when reviewing genefoundry-router security before deploy, when touching auth/proxy/logging/limits config, or when answering an infosec/DSB question.
Use when changing the router's tool-search / discovery surface — the search_tools or call_tool meta-tools, the BM25 index, entrypoint pinning, or hint/normalization rewriting.
Guidance for agents and contributors working in this repository. hpo-link is an MCP + REST server that grounds phenotype work in the Human Phenotype Ontology (HPO). It builds a local SQLite database from the HPO OBO release and HPOA gene/disease annotation files, then serves read-only tools for phenotype term lookup, the is_a hierarchy, cross-ontology mapping, and gene↔phenotype↔disease association queries. It mirrors the sibling mgi-link stack/architecture. - Data plane — config.py, constants.py, identifiers.py, ingest/, data/, services/. Downloads the HPO release (conditional…
This file orients Claude Code (and other agents) in this repository. Read AGENTS.md first — it is the authoritative contributor and agent guide (architecture, invariants, conventions, definition of done). This file only highlights the essentials. hpo-link is an MCP + REST server over the Human Phenotype Ontology (HPO), backed by a locally-built SQLite database. It serves phenotype term lookup, is_a hierarchy traversal, cross-ontology mapping, and gene↔phenotype↔disease association queries (HPOA). It mirrors the sibling mgi-link stack. See AGENTS.md for the full…
Use when bringing this repo into compliance with a GeneFoundry fleet standard (tool-naming, response-envelope, container-hardening, versioning, MCP transport, or logging) or closing its tracking issue.
Use when reviewing this backend for security before deploy, when touching auth/logging/upstream-fetch/container config, or when answering an infosec/DSB question.
Plain text files in a repository that tell a coding agent how the project works: commands to run, conventions to follow and things to avoid. CLAUDE.md, AGENTS.md, cursor rules and skills are the common kinds.
CLAUDE.md or AGENTS.md?
CLAUDE.md is read by Claude Code. AGENTS.md is an open format that Codex, Cursor and other agents read. Many projects keep one and point the other at it.
What is a skill?
A folder with a SKILL.md that describes one capability, such as filling PDFs or reviewing code. The agent loads it only when the task calls for it.
Can I search my own team's files too?
Your agents already can, over MCP, limited to the files you're allowed to read. Searching them from this page is coming.