Skip to main content
Glama

Indaga-agent

A local-first, multi-omic personal-health agent runtime. The agent backend for the Indaga product (the consumer app + website are a separate codebase). Where a genome agent turns your DNA into a queryable, honest expert, Indaga-agent does the same across every modality — genome, labs, wearables, CGM, and the derived metrics built from them — in one coherent system, queryable by any MCP-compatible host (Claude Desktop, Claude Code, …).

It is built on three spines, applied to all of your health data:

  1. A persistent per-subject Active Health Index (~/.indaga/<subject>/active-health-index.sqlite) behind a storage-agnostic port — local SQLite now; a hosted / zero-knowledge adapter later, with no upstream change.

  2. One evidence-envelope honesty contract. Every answer is typed: finding_state, answer_readiness, and negative_inference. Absence is never "normal". A lab that was never measured returns not_measured; a Biological Midnight before 14 nights is index_incomplete; a stale CGM read refuses to claim your current glucose. This is the multi-omic generalization of genomic callability, and it is the point of the product.

  3. A dispatcher + per-capability skills. tools/list shows a small base set; everything else is reached via indaga.invoke after the agent reads that capability's SKILL.md (progressive disclosure).

Quickstart

# 1 — clone (Python ≥3.10; 3.11/3.12 recommended for the predictor venvs)
git clone https://github.com/birinets/indaga-agent.git && cd indaga-agent

# 2 — install. RECOMMENDED: uv — sudo-free, no system packages, makes its own venv.
#     (curl the installer if you don't have it: curl -LsSf https://astral.sh/uv/install.sh | sh)
uv venv .venv && uv pip install --python .venv/bin/python -e ".[dev]"
#  …or with stock pip (needs the python3-venv package — e.g. `sudo apt install python3.12-venv`
#    on Debian/Ubuntu, which ship python3 without ensurepip):
#     python3 -m venv .venv && . .venv/bin/activate && pip install -e ".[dev]"

# 3 — verify the engine on synthetic fixtures (no personal data needed)
.venv/bin/python -m pytest -q          # ~146 tests
.venv/bin/python -m ruff check src tests

# 4 — download the reference libraries you want (cached in ~/.indaga, queried OFFLINE).
#     `indaga` lives in the venv; activate it (`. .venv/bin/activate`) or call `.venv/bin/indaga`.
.venv/bin/indaga install --check       # see the catalog + what's installed
.venv/bin/indaga install clinvar-grch38 pgs-catalog-metadata gene-disease-validity \
               reactome-pathways hpa-tissue-rna gene-ontology

# 5 — wire it into your MCP host (writes the config + symlinks the skills)
.venv/bin/indaga install-host claude   # also: openclaw | hermes   (preview without --write)

Bring your own genome — a consumer chip export (23andMe / MyHeritage / AncestryDNA):

# imputation needs the pyliftover extra + a Java 17 runtime + bcftools/bgzip/tabix on PATH.
# sudo-free way to get the system tools:  micromamba install -c conda-forge -c bioconda bcftools htslib openjdk=17
uv pip install --python .venv/bin/python -e ".[impute]"

.venv/bin/indaga impute   --subject me --chip /path/to/your_raw_dna.txt  # liftover + Beagle/1000G → GRCh38 (pulls the panel)
.venv/bin/indaga annotate --subject me                                   # ClinVar P/LP · PGS · GWAS · ACMG · PGx · panels

Chip-tier works with no toolchain at all: skip impute and run annotate directly on the raw chip (dna/raw/) — the Active Genome Index is built in pure Python (ClinVar P/LP screen + PGS), and imputation only adds the deeper imputed-variant tier.

…then ask your host: "any ACMG-actionable secondary findings?", "what diagnostic panels is my LDLR in?", "what's my biological midnight?", "how's my glucose?" — and watch the honesty surface (it refuses to guess what wasn't measured).

Privacy: this repo ships zero personal data. Reference libraries and your per-subject genome/health data live only in ~/.indaga/<subject>/ on your own machine; nothing is uploaded, and grounding/panels run from downloaded files (no per-variant egress). The only optional network call at query time is a single gnomAD lookup during variant resolution, which is disclosed.

Related MCP server: fhir-synthetic-mcp

Layout

Indaga-agent/
├── README.md  AGENTS.md  CLAUDE.md  INSTALL_FOR_AGENTS.md  llms.txt  llms-full.txt
├── pyproject.toml
├── skills/                         # agent-facing capability skills (progressive disclosure)
│   ├── SKILL.md                    # root skill: routing + the honesty contract
│   ├── genome/ grounding/ journal/ synthesis/ analyze/      (SKILL.md each)
│   ├── circadian/ labs/ metabolic/ health-index/ domains/   (SKILL.md each)
│   └── conventions/evidence-envelope.md  ·  output-rules.md
└── src/indaga/
    ├── runtime/        # ~/.indaga home, per-subject paths, secured 0600, audit, jobs, observability
    ├── store/          # the port (Reader/Writer/Store) + typed model + LocalSQLiteStore + conformance
    ├── evidence/       # the multi-omic EvidenceEnvelope + confidence calculus + allele-safe store reader
    ├── reference/      # the reference-library registry + downloader (ClinVar, PGS, Reactome, GenCC, …)
    ├── genome/         # AGI, VRS allele identity, predictors/ACMG, panels (ACMG SF/carrier), gene_disease …
    ├── operations/     # Operation model + registry + JSON-schema validation + indaga.invoke dispatcher
    ├── capabilities/   # genome · grounding (7 tools) · journal · synthesis · analyze · circadian · labs · …
    ├── spine/          # deterministic science (24h cosinor Biological Clock, CGM, PGS)
    ├── interfaces/     # MCP server (2025-11-25, stdio) + CLI + host_install
    └── eval/           # envelope / allele-safety / genome-parity / analyze honesty gates

Status

A working multi-omic engine: own genome pipeline (chip → imputation → Active Genome Index → annotation), 9 analytical-grounding tools (region/regulatory/pathways/GO/expression/celltype/gene/ gene-disease/diagnostic-panels — all local, zero-egress), the full industry-standard panel stack (ACMG SF v3.3 · GenCC/ClinGen validity · PanelApp · ACMG carrier-113 · CPIC · PGS), a VRS-style durable allele identity, an investigation journal, multi-omic synthesis, and a self-contained analyze report — all behind one evidence-envelope honesty contract and a progressive-disclosure skills layer (~49 tools). Gates: pytest + conformance / envelope / allele-safety / genome-parity / analyze.

Indaga-agent is wellness decision-support, not medical diagnosis.

License: AGPL-3.0-or-later — free to use, study, and modify; if you run a modified version as a network service, you must offer your source changes to its users (the AGPL network clause). For a commercial license without the copyleft obligations, get in touch.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    A local-first MCP server that enables AI agents to read user-authorized Google Health API v4 data from Fitbit, Pixel Watch, and partners via OAuth, with tokens never leaving the machine.
    26
    372 npm
    57
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A local-first MCP server that analyzes research papers, maps citation graphs, and surfaces insights with verbatim-verified contradictions, all while keeping data private on your machine.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Self-hosted MCP server that aggregates personal health data from Google Health, Oura, and Withings into a single, provider-attributed interface with configurable source of truth preferences.
    MIT