Rebuilds the scores real systems run on you β credit, actuarial, lending β in the open, cited.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
You are already a number.
A credit score, an actuarial row, a callback probability β this app rebuilds those numbers in the open: every rule cited or flagged as a guess, every weight visible and editable. Transparency, not judgment.
POST /api/narrative β KV-cached Gemini narratives with a
deterministic local fallback (the app is fully functional with no API key at all)Deploys run automatically from GitHub Actions on every push to main
(.github/workflows/deploy.yml): the workflow
runs the full test suite + typecheck, and only then builds and deploys.
One-time setup:
Secrets are kept in hush: stored once in your OS keychain,
then piped straight into the consumer β they never get pasted into a terminal, echoed, or printed.
This project's hush items use a lifescored- prefix so they group together in a keychain search.
(No hush? Drop the hush pipe β¦ -- prefix and run the bare npx wrangler / gh command; hush just
wraps it.) Local dev needs no secrets at all β the narrative falls back to a local composer.
Create the KV namespace and paste its id into wrangler.jsonc:
Set the Gemini key as a Worker secret (persists across deploys; optional β omit to run AI-free with the local narrative fallback):
Give GitHub Actions the deploy credentials (Settings β Secrets and variables β Actions):
Push to main and the action ships it. To deploy by hand instead:
Fork the repo, do the one-time setup above with your own Cloudflare account, and push. The app is fully functional with no Gemini key at all.
Rules live in src/lib/rulebook/<domain>.ts. Each rule is declarative: logic,
evidence tag (SOURCED/SPECULATIVE), citation with access date, a pure
position(inputs) (the measured fact, normalized to a numeric position), declared
bounds (negative floors only where the cited system itself subtracts; the wealth
rules are uncapped above), and a weightRationale justifying its weight against
the 1.0Γ income baseline; the engine computes points = round(position Γ weight).
Add a rule, and the UI, weight editor, share
codec, and about-page source list pick it up automatically. npm test enforces
the invariants (bounds, integer scores, citation present).
The whole rulebook + exact math is published so any agent can compute a score on its own side β nothing about a person is ever sent to lifescored.com.
com.lifescored/mcp on the official registry; endpoint https://lifescored.com/mcp (stateless Streamable HTTP, no auth, accepts no personal data). Tools: get_rulebook, get_input_schema, get_methodology, how_to_give_feedback.skills/lifescored/ skill. Copy it into your agent's skills directory (e.g. ~/.claude/skills/). It prefers the MCP and falls back to rules.json.https://lifescored.com/rules.json and /llms.txt.Every commit must reference a GitHub issue number, e.g. feat: add presets (#2) or refs #5. A commit-msg hook enforces this automatically β it is installed via core.hooksPath pointing to .githooks/, which activates on npm install (the prepare script runs git config core.hooksPath .githooks). Merge commits and reverts are exempt. To find or open an issue: gh issue list / gh issue create.
MIT β see LICENSE.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/life-scored)<a href="https://allmcps.com/mcp/life-scored"><img src="https://allmcps.com/api/badge/life-scored?style=directory" alt="Life. scored. on AllMCPs" /></a>