Cited 'why was this decided?' answers for your repo and for React, Kubernetes, and Rust.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag — we're steadily working through the catalog.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Your coding agent can read the code. It can't read the argument behind it.
lema-mcp gives your agent the recorded why — and the alternatives a project
already ruled out — cited to the source. For React, Kubernetes, and Rust out of
the box, and for your own repo with one command.
A local MCP server. No account, no database, no network for your own repo — install it in 30 seconds and ask why a project decided something, or whether the approach you're about to take was already rejected.
[n]
links to the RFC / PR where the call was made.ruled_out verdict when a project already rejected your approach,
with the recorded reason and a pointer to where the docs say to do it instead.settled verdict when your approach is the project's in-force
recorded choice — the governing decision cited, with a docs pointer for the how.lema holds reasoning — why a decision was made, what was rejected — not API syntax or code samples. For those, reach for a docs tool. lema is the right place for why.
That writes a read-only public server to your project's .mcp.json. Reload your
agent's MCP servers (in Claude Code: /mcp) and try the flagship tool,
check_approach — name a direction, get the recorded verdict:
Or just ask in plain language — "why did React adopt Hooks over mixins?" — and get one cited answer, with an honest abstain when the record is silent.
Covered today: React · Kubernetes · Rust, served from lema's public API
(api.lema.sh). Tokenless. It's a curated three-project demo corpus — not
analytics over a graph you own.
No-account public demo (React's recorded decisions, zero setup):
If the Cursor button doesn't open an install prompt (common when the browser can't hand off the cursor:// deeplink), paste this into .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
That drops you into React's public record — ask "why did React rule out X?" and get a cited answer, no account. To wire your own repo for capture, or point the demo at Kubernetes or Rust, use the per-client setup below.
npx needs only Node — no Go toolchain, no account. Two commands cover both ways
to use lema:
Both are non-destructive and idempotent — they merge into existing config and
re-running changes nothing. init and try share the same lema server key; the
authed init server is a superset (it serves the public tools too), so the two
coexist and try never downgrades it.
Easiest — let lema write the config and hooks for you:
Or add it by hand to .mcp.json (this gets the read + capture tools, but not the
guard/nudge hooks that init installs):
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
For the no-account public demo instead, add the env block:
Settings → Developer → Edit Config, then add to mcpServers:
Add to ~/.codeium/windsurf/mcp_config.json:
Add to .vscode/mcp.json — note VS Code uses the servers key:
For the public demo, set LEMA_MCP_MODE=public and LEMA_PUBLIC_REPO=react-rfcs
(k8s-enhancements · rust-rfcs). The public API URL is baked into the binary.
The public config sets only LEMA_MCP_MODE + LEMA_PUBLIC_REPO
(react-rfcs · k8s-enhancements · rust-rfcs) — the API URL is compiled in.
After you sign in to Lema, save one Organization-scoped credential outside your repositories. The normal setup contains identity credentials, not a copied workspace UUID:
Restart the coding agent after changing MCP configuration. From then on, Lema matches the checkout's verified Git remote to a Repository, finds its Project, and passes one immutable target receipt to every operation. Opening two repositories in parallel does not create a mutable “active repository,” and each user keeps their own Organization-scoped credential.
For multi-repo Projects, ambiguity recovery, repositories without a remote, worktrees, and compatibility overrides, read Target context: Projects, repositories, and Runs.
Ask why a popular project decided something, or check whether a direction was
already rejected, over its recorded RFC/KEP deliberation. This is the try server.
Most "context" tools are read-only — a nicer way to grep your docs. lema reads too, but its real job is never-reopen:
record_decision with the option it
chose and the alternatives it rejected, with why each was killed (the part
that never survives into the code).check_decided returns the prior
decision if that option is CLOSED.init) reads the draft
change and surfaces a CLOSED decision before the dead option gets re-proposed —
enforced off both your captured decisions and the repo's own ADRs.Decisions are captured to .lema/decisions.jsonl — a plain append-only file you
commit, so your whole team's agents share the same memory through git. No key, no
LLM call on our side: your agent forms the decision; lema stores it and serves it
back.
Your agent reaches for an option you already killed — and it comes back CLOSED, with the original reason attached:
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/lema-mcp)<a href="https://allmcps.com/mcp/lema-mcp"><img src="https://allmcps.com/api/badge/lema-mcp?style=directory" alt="Lema MCP on AllMCPs" /></a>