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 the JSON block into your client's configuration file under mcpServers, then restart the application.
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)Narrative cache misses reserve one call atomically in the NarrativeBudget SQLite
Durable Object: at most 200 per UTC day globally and 10 per IPv4 address or IPv6 /64
network per day. IPv4-mapped IPv6 shares the IPv4 allowance. People on the same
network may share an allowance; cache hits and the local composer remain available. Failed
upstream calls consume a reservation; failed reservations use the local fallback.
Cache hits do not consume quota. The coordinator stores only a daily address hash,
and removes previous-day entries on the next day's first reservation. It never sees
profile inputs or narrative text. KV is used only for the narrative cache.
npm run build adds the Durable Object export to the adapter-generated Worker;
deploy that build through the existing workflow. Wrangler creates the coordinator
through the versioned migration in wrangler.jsonc. Run npm run types after binding
changes; its helper resolves the class from source so checks work on a clean clone.
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. Pull requests
run the same gates and a Worker dry run without deploying.
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.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
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>