プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Lema MCP

作者:lemahqバージョン 0.22.2i★ –iパソコンで動く
レジストリ名io.github.lemahq/lema-mcp

インストール

概要

作者による説明(英語の原文)

Cited 'why was this decided?' answers for your repo and for React, Kubernetes, and Rust.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: 開発者ツール

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "lema": {
      "command": "npx",
      "args": [
        "-y",
        "lema-mcp"
      ]
    }
  }
}

ターミナルでこれを実行します

claude mcp add lema -- npx -y lema-mcp

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "lema": {
      "command": "npx",
      "args": [
        "-y",
        "lema-mcp"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "lema": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "lema-mcp"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント lemahq で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

開発者ツールのほかのサーバーとの比較i

  • このカテゴリのほかの4909件のうち0%よりスターが多い
  • このカテゴリのほかの4909件のうち30%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの4909件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Lema MCPは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.22.2)がレジストリに届いたのは3 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

GitHub

作者:github

Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

パソコンでもクラウドでも★ 34,245MIT4 日前更新
インストール

Desktop Commander

作者:wonderwhy-er

MCP server for terminal commands, file operations, and process management

パソコンで動く★ 10,225MIT16 日前更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

lema-mcp

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.


❌ Without lema

  • The agent invents the why from training recall — fluently, and sometimes wrongly. The rationale lives in RFC / KEP / PR threads; it was never in the code.
  • It re-proposes the approach the maintainers already rejected two years ago — because a rejected alternative leaves *no trace* in the source.
  • Ask "was this ever ruled out?" and you get a confident guess, with no way to tell a real ruling from a hallucinated one.

✅ With lema

  • One cited answer from the project's actual recorded deliberation — every [n] links to the RFC / PR where the call was made.
  • A typed `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.
  • A typed `settled` verdict when your approach *is* the project's in-force recorded choice — the governing decision cited, with a docs pointer for the how.
  • An honest "no recorded ruling" when the record is silent — which means *unknown*, not *approved*. lema never fills the gap with a guess.

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*.


Try it in 30 seconds — no account

npx lema-mcp try react        # or: kubernetes · rust

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:

> "Let's add a delayMs prop to Suspense to debounce the fallback."   (repo: react)

⛔ ruled_out — the React team considered and rejected this. " " [1] Where to look instead → https://react.dev/reference/react [1] reactjs/rfcs#212

"I'll add a global event bus for cross-component communication." (repo: react)

◦ no_recorded_ruling — React's public record doesn't settle this. (Unknown — not approved.)

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.


Install

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):

{

"mcpServers": { "lema": { "command": "npx", "args": ["-y", "lema-mcp@latest"], "env": { "LEMA_MCP_MODE": "public", "LEMA_PUBLIC_REPO": "react-rfcs" } } } }

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:

npx lema-mcp try react   # read-only: ask React/Kubernetes/Rust why + what's ruled out

npx lema-mcp init # your repo: decision capture + the never-reopen guard

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.

Claude Code

Easiest — let lema write the config and hooks for you:

npx lema-mcp init        # or: npx lema-mcp try react

Or add it by hand to .mcp.json (this gets the read + capture tools, but not the guard/nudge hooks that init installs):

{

"mcpServers": { "lema": { "command": "npx", "args": ["-y", "lema-mcp@latest"] } } }

</details>

Cursor

Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

{

"mcpServers": { "lema": { "command": "npx", "args": ["-y", "lema-mcp@latest"] } } }

For the no-account public demo instead, add the env block:

{

"mcpServers": { "lema": { "command": "npx", "args": ["-y", "lema-mcp@latest"], "env": { "LEMA_MCP_MODE": "public", "LEMA_PUBLIC_REPO": "react-rfcs" } } } }

</details>

Claude Desktop

Settings → Developer → Edit Config, then add to mcpServers:

{

"mcpServers": { "lema": { "command": "npx", "args": ["-y", "lema-mcp@latest"], "env": { "LEMA_MCP_MODE": "public", "LEMA_PUBLIC_REPO": "react-rfcs" } } } }

</details>

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{

"mcpServers": { "lema": { "command": "npx", "args": ["-y", "lema-mcp@latest"] } } }

</details>

VS Code (GitHub Copilot)

Add to .vscode/mcp.json — note VS Code uses the servers key:

{

"servers": { "lema": { "command": "npx", "args": ["-y", "lema-mcp@latest"] } } }

</details>

Go install / pinned binary

go install github.com/lemahq/lema-mcp/cmd/lema-mcp@latest

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.

Hosted teams: sign in once; the repository resolves automatically

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:

# ~/.config/lema/credentials

LEMA_API_URL=https://api.lema.sh LEMA_API_TOKEN=lema_live_...

chmod 600 ~/.config/lema/credentials

npx lema-mcp@latest doctor context

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.


Two ways to use it

1. The public record — React, Kubernetes, Rust (read-only, no account)

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.

2. Your own repo — capture + never-reopen (local, no account)

Most "context" tools are read-only — a nicer way to grep your docs. lema reads too, but its real job is never-reopen:

  • Your agent settles a choice → it calls `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).
  • Before anyone proposes a direction → `check_decided` returns the prior decision if that option is CLOSED.
  • On every edit, a PreToolUse guard hook (installed by 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.

What never-reopen looks like

Your agent reaches for an option you already killed — and it comes back CLOSED, with the original reason attached:

⛔ CLOSED — do not propose "SWR": no first-class mutation / cache

invalidation — we'd hand-roll it *(decided 2026-06-04 · "Data fetching for the

web app" · chose TanStack Query)*

So the agent surfaces the prior decision instead of re-litigating it. Supersede a decision and the *previously chosen* option goes CLOSED too — enforced both ways. (That's the real output of npx lema-mcp demo, run against a throwaway temp dir.)

The guard is advisory and fail-open: in its default context mode it injects that note as a non-blocking nudge — it never hard-blocks and never auto-approves an edit. LEMA_GUARD_MODE=ask prompts *you* on a strong match; off is a kill switch. Any error → it emits nothing and gets out of the way.


Available tools

Your agent calls these over MCP.

The public record (no account)
ToolWhat it does
`check_approach` ★Name an approach → a three-valued verdict: ruled_out (rejected, with the recorded why synthesized and cited), settled (it *is* the project's in-force recorded choice, the governing decision cited), or an honest no_recorded_ruling. Every verdict carries a pointer to where the docs cover the how. The one public door — it folds in the cited "why was this decided?" answer (the former why_decided) and the settled check.
Your own repo
ToolWhat it does
`record_decision`Capture a settled decision: the chosen option and the rejected alternatives (with why each was killed), plus rationale / refs / supersedes. Rejected and superseded options come back CLOSED. Append-only.
`check_decided`Adjudicate one proposed direction against decisions already CLOSED → typed verdict (ruled_out / not_ruled_out / incomplete / error), off both your capture store and the repo's ADRs.
`search_decisions`Natural-language query → the most relevant atomic claims (chosen / rejected / constraint / consequence) with their source ADR, under a token budget.

| `get_decision` · `list_decisions` · `get_decision_graph` | One decision's full body; th

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く