Longevity is a privacy-first WebMCP application in which a person and their AI agent build a structured Life Function together, then compare conditional Androphysics scenarios and turn the result into a program of action.
Live app: https://app.imt.dev/longevity-mcp/
Public repository: https://github.com/KiteTools/longevity-webmcp
The interface opens in English and includes a complete Russian version. Switching EN / RU changes both the human interface and the WebMCP contract used by the agent.
Longevity is a conditional model under stated assumptions. It is not medical advice, a biological forecast, or a prediction of a person’s date of death.
A conventional form knows nothing about the person and asks everything from zero. A client-side WebMCP agent can first use facts already present in its context, submit only the structured subset needed by the model, and ask only for the gaps. The page and the agent then share the same in-tab state: every accepted fact immediately changes completeness, charts, scenarios, and the visible program.
The interview is intentionally conversational rather than form-like:
- four short chapters: family and influence, ancestors, parents, and the client’s trajectory;
- exactly one question per agent message;
- text, voice, approximate answers, and “I don’t know” are accepted;
- a sparse case normally reaches its first calculation in about ten questions;
- optional refinements appear only after the first result.
| Tool | Purpose |
|---|---|
get_intake_manifest |
Returns the data contract, privacy boundary, interview policy, and supported event criteria. |
submit_known_facts |
Submits structured facts already known to the agent and updates the page. |
get_intake_status |
Returns completeness, readiness, explicit assumptions, and remaining gaps. |
get_next_interview_step |
Returns exactly one next question and a stop signal when the first calculation is ready. |
get_missing_questions |
Compatibility view of all remaining blocking gaps. |
submit_interview_answers |
Adds structured facts extracted from one client answer. |
get_scenario_comparison |
Returns the conditional Life Function scenario comparison after the required core is complete. |
Tools are registered through document.modelContext.registerTool() and scoped with an AbortSignal. Changing the UI language aborts the previous registration and registers the same tools again with a matching English or Russian contract.
- No account, database, analytics, cookies, or server-side intake endpoint.
- Personal facts live only in JavaScript memory inside the open tab.
- Reload, tab close, or Clear deletes the package.
- The page accepts structured facts only—never raw chat, audio, or transcripts.
- The Content Security Policy uses
connect-src 'none'for the deployed static app. - The agent must present the page privacy notice before its first submission.
- If an agent platform requires consent for a specific sensitive fact, it requests that consent immediately before transmitting only that fact.
Conversation retention remains the responsibility of the agent platform and is stated explicitly in both the UI and the WebMCP manifest.
See PRIVACY.md for the concise threat boundary.
Requirements: Node.js 22 and npm.
npm install
npm run devProduction build and tests:
npm test
npm run build:longevityThe Netlify configuration builds dist/, serves the single-page app, disables framing, and applies a strict CSP.
English is the default locale. Every user-facing change must ship in both en and ru, including:
- visible UI and accessibility labels;
- copied agent instructions;
- WebMCP tool descriptions and JSON Schema descriptions;
- interview questions, assumptions, scenario labels, and result text;
- metadata that describes the default English experience.
The interface copy uses a paired typed dictionary, and tests render all four English screens to ensure Russian UI copy cannot leak into the English experience.
Prepared materials are in docs/challenge:
- final project description;
- a sub-three-minute demo script and shot list;
- a judging-criteria evidence map;
- the final submission checklist.
MIT. See LICENSE.