ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

gonzalgo

โดย vince-gonzalezรุ่น 0.5.6i★ –iรันบนเครื่อง
ชื่อใน registryio.github.vince-gonzalez/gonzalgo

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Reports what a checked Lean 4 or Metamath proof rests on: inherited sorry, compiler trust, axioms.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: เครื่องมือนักพัฒนา

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ต้องเตรียมก่อน

  • PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "gonzalgo": {
      "command": "uvx",
      "args": [
        "gonzalgo",
        "mcp"
      ]
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add gonzalgo -- uvx gonzalgo mcp

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "gonzalgo": {
      "command": "uvx",
      "args": [
        "gonzalgo",
        "mcp"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "gonzalgo": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "gonzalgo",
        "mcp"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 10 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub vince-gonzalez ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด เครื่องมือนักพัฒนาi

  • ดาวมากกว่า 0% ของอีก 5620 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 39% ของอีก 5620 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 5620 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

gonzalgo ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.5.6) เข้า registry 2 เดือนที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี GitHub, Desktop Commander, Cloudflare MCP

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

GitHub

server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้

โดย githubใช้กันมาก★ 34.2Kอัปเดต 7 วันที่ผ่านมา

บนเครื่องหรือคลาวด์

Desktop Commander

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

โดย wonderwhy-erใช้กันมาก↓ 709.6K/สัปดาห์★ 10.2Kอัปเดต 19 วันที่ผ่านมา

รันบนเครื่อง

Cloudflare MCP

Cloudflare MCP servers

โดย cloudflareใช้กันมาก★ 4.4Kอัปเดต 14 เดือนที่ผ่านมา

รันบนคลาวด์✓ mcp.cloudflare.com

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

╔════════════════════════════════════════════════════════════════════════════════════════════╗

║ ║ ║ ██████╗ ██████╗ ███╗ ██╗███████╗ █████╗ ██╗ ██████╗ ██████╗ ║ ║ ██╔════╝ ██╔═══██╗████╗ ██║╚══███╔╝██╔══██╗██║ ██╔════╝ ██╔═══██╗ ║ ║ ██║ ███╗██║ ██║██╔██╗ ██║ ███╔╝ ███████║██║ ██║ ███╗██║ ██║ ║ ║ ██║ ██║██║ ██║██║╚██╗██║ ███╔╝ ██╔══██║██║ ██║ ██║██║ ██║ ║ ║ ╚██████╔╝╚██████╔╝██║ ╚████║███████╗██║ ██║███████╗╚██████╔╝╚██████╔╝ ║ ║ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═════╝ ║ ║ ║ ║ where does a formal library spend its axioms? ║ ║ ║ ╚════════════════════════════════════════════════════════════════════════════════════════════╝

#print axioms tells you whether *one* theorem depends on an axiom. It cannot tell you where an axiom is spent rather than inherited, how far that spending reaches, how much of it could be avoided, or — for a given theorem — which step introduced it. This does.

Works on Lean 4 / Mathlib and on Metamath databases (set.mm, iset.mm, nf.mm), by one program, so two foundations are compared under identical definitions rather than by analogy.

$ pip install gonzalgo

$ gonzalgo index

THE KERNEL INDEX (2026-08-05) what formal libraries rest on library system theorems unfinished compiler choice


Mathlib Lean 4 437,429 0 0 66.62% Lean core (Init) Lean 4 45,051 0 0 23.91% Std Lean 4 34,510 0 0 56.66% Batteries Lean 4 5,249 0 0 32.63% set.mm Metamath 47,621 0 - 1.22% ... 14 libraries, 603,703 theorems, 0 resting on an unfinished proof.

That runs the moment it's installed — no Lean, no build, no files. Everything below needs a Lean project.

Pure Python. macOS, Windows, Linux. numpy is the only dependency.


Questions this answers

How do I know if my Lean proof depends on a `sorry`? Lean warns once, on the line you typed it. It does not warn you about the theorem three files later that uses that lemma and is therefore not proved either. Run gonzalgo trust and it reports every theorem that reaches a sorry anywhere upstream, however far.

How do I find a `sorry` I inherited from a dependency? Same command. The audit is over the whole environment, so a sorry in a library you import is reported exactly like one in your own file.

Does my project use `native_decide` anywhere? native_decide results are obtained by compiling and running code and believing the answer — the compiler and runtime are trusted, not the kernel, and soundness bugs have been found there. gonzalgo trust reports Lean.ofReduceBool and Lean.ofReduceNat, the axioms it emits, and how many theorems inherit them.

What axioms does this Lean theorem actually depend on, and why? #print axioms tells you *whether*. gonzalgo why -a gives the shortest path from the theorem to the axiom, labelling each step as a statement dependency or a proof dependency — so you can see which step introduced it and whether it is reroutable.

Can I fail CI when a proof rests on something unfinished? Yes. --fail-on-trust, or the GitHub Action below.

If I change this definition, what breaks? gonzalgo impact splits dependents into those that name it in a *statement* — whose meaning changes with it — and those that only use it in a *proof*, which merely rebuild.

kernel > sorry

What it found

Pointed at Lean 4.32.1 with Mathlib — 790,171 declarations, 30 million dependency edges — the funnel from "the whole library" down to "provably removable" runs like this:

   532,605   theorems in Mathlib

───────────────────────────────────────────────────────────────────── 324,808 ██████████████████████████████░░░░░░░░░░ depend on Classical.choice 61.0% 144 ▏ actually SPEND it (entry points) ───────────────────────────────────────────────────────────────────── 69,571 ██████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ could be stated without it 13.1% └─ a ceiling, not an estimate ───────────────────────────────────────────────────────────────────── 805 substitutable sites — a choice-free instance existed, unused 280 declarations whose ONLY route to the axiom runs through one 276 ▏ attributable to a single tactic ────────────────────┐ 275 ▏ kernel-verified choice-free after substitution │ 4 ▏ kernel REJECTED — and they are exactly the 4 NOT ────┘ ▏ attributable to that tactic. The partition was not designed.

That single tactic is `omega`, which supplies the Decidable arguments of six helper lemmas as a hardcoded Classical.propDecidable and never attempts instance synthesis — so proofs as elementary as a - b = 0 ↔ a ≤ b over Nat rest on the axiom of choice with no need. Filed upstream; the fix is one file.


Let a language model call it

$ pip install "gonzalgo[mcp]"

Add to your MCP client's configuration:

{

"mcpServers": { "gonzalgo": { "command": "gonzalgo-mcp" } } }

Ten tools: audit_trust, why, impact, axiom_reach, metamath_audit, kernel_index, plus the plumbing to produce a dump from a project.

There's also a scope tool that reports what gonzalgo can't do — read a paper, mark homework, judge whether text is any good. It's there so a model asked "is this proof correct?" about a page of prose doesn't grab the nearest proof-shaped tool and return something meaningless. Every other tool restates the precondition in its description.

The case it's built for: a generated Lean proof that fails to compile is easy to spot. One that compiles while resting on a sorry three lemmas upstream isn't, and Lean only mentions it once, in a warning, at the site.

kernel_index runs with no files and no network, so a model can call it cold for figures on known libraries.

Put it in CI, get a badge

Three lines in any Lean 4 project. Every commit is checked for theorems resting on an unfinished proof or on trusting the compiler rather than the kernel.

# .github/workflows/kernel-clean.yml

name: kernel-clean on: [push, pull_request] jobs: audit: runs-on: ubuntu-latest steps:

  • uses: actions/checkout@v4
  • uses: vince-gonzalez/gonzalgo@v1 with: module: MyProject

Then the badge, which is just the workflow's own status — no extra service:

![kernel-clean](https://github.com/YOU/REPO/actions/workflows/kernel-clean.yml/badge.svg)

What the badge actually certifies. Not that the proofs are correct — Lean already checks that. That no theorem in the project is standing on a sorry somewhere upstream, and that none of them were decided by compiling and running code instead of by the kernel.

Lean warns about the sorry you just typed. It says nothing about the theorem three files later that quietly inherits it. In the worked example under examples/dirty, Lean reports one warning and the audit finds two contaminated theorems.

How it fits together

        your Lean project

│ │ gonzalgo lean-files ./scripts │ lake env lean scripts/Split.lean ▼ ┌───────────────────────┐ │ dependency graph │ one row per declaration: │ statement │ proof │ KIND · NAME · stmt-deps · proof-deps └───────────┬───────────┘ │ │ gonzalgo check ← refuses a dump with no proof terms ▼ ┌───────────────────────────────────────────────────┐ │ │ ▼ ▼ ▼ ▼ amplify eligible why audit ─────── ──────── ─── ───── where is the how much is which step which sites are axiom spent, even eligible introduced substitutable, and and how far for removal? it? which declarations does it reach? (the ceiling) go clean if you fix every one │ ▼ lake env lean Rewrite.lean ─────────────────────────── swap the instance in and ask the KERNEL if the proof holds

Nothing above the kernel step is trusted on my say-so: Substitute.lean decides substitutability with collectAxioms, and Rewrite.lean submits the rewritten proof term to addDecl. A name-based screen was tried first and measured 41.5% precision, which is why none of this reads names.


Quickstart

Generate a dump from your own Lean project, then ask questions of it.

$ gonzalgo lean-files ./scripts        # writes the Lean extractors

$ cd my-lean-project $ lake env lean scripts/Split.lean # -> mathlib_split.tsv $ gonzalgo check mathlib_split.tsv # verify it actually contains proofs

Why does this theorem need choice?

$ gonzalgo why mathlib_split.tsv Int.mem_box

Int.mem_box Int.mem_box --proof--> Int.mem_box._proof_1_5 --proof--> Classical.propDecidable --proof--> Classical.choice

Every hop is labelled stmt or proof, and that label is the point: a proof edge can often be rerouted by changing a tactic, a statement edge cannot be touched without changing what the theorem says. A path made only of proof edges is what makes a declaration worth patching at all.

If I change this, what breaks?

$ gonzalgo impact mathlib_split.tsv Nat.decLe

Nat.decLe reached transitively 398,968 (295,411 of them theorems) ── direct ── in a STATEMENT 626 API surface: changing the type changes their meaning in a PROOF only 4,225 insulated: a type-preserving change costs a recompile

why run backwards. The statement/proof split is the value: a declaration whose *type* mentions the target has the target in its API, so its meaning moves when the target moves and its own users may need rewriting. One that merely calls it inside a proof needs nothing but a rebuild. A

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx