| Step | Endpoint / MCP tool |
|---|---|
| Discover capabilities | GET /capabilities · GET /.well-known/health-agent.json |
| Consolidate context | POST /users/{id}/health-context · get_health_context |
| Ask questions | POST /query · query_health_context |
| Return a plan | GET /analyses/{id}/action-plan · get_action_plan |
1. Discover what’s possible
POST /mcp (initialize, tools/list, tools/call).
2. Consolidate one health context
Instead of stitching modalities together itself, the agent asks for a single context: coverage per modality, priority findings, and gaps.x-cache: HIT) so repeated agent turns are cheap.
Every finding carries provenance (the source and engine that produced it), so the
agent can cite real data behind every claim.
3. Ask questions against the context
4. Return an actionable plan
When the user asks “what should I do?”, the agent returns a real protocol: cited interventions and an evidence-graded supplement stack, personalized to their meds (see Personal action protocol):Why it works for agents
- One context object instead of N modality calls to reason over.
- Provenance on every fact: sources and engine on each finding, citations (supp.ai, Pillser) on each recommendation.
- RFC 9457 structured errors with
code,cause,fix, anddocs_url, so a stuck agent can self-correct. - MCP + OpenAPI from one schema source, so you use whichever your framework speaks.
Take it further
- Register per-user tokens (
POST /api-keys) so one agent can serve many users, each scoped to their own data. - Use
GET /design/systemsif the agent also renders UI.