Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Prove or refute LLVM IR transformations with Alive2, and read or create alive2.llvm.org links
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"alive2": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/phongndo/alive2-mcp:0.1.2"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add alive2 -- docker run -i --rm ghcr.io/phongndo/alive2-mcp:0.1.2วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"alive2": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/phongndo/alive2-mcp:0.1.2"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"alive2": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/phongndo/alive2-mcp:0.1.2"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub phongndo ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.2) เข้า registry 4 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, First Sale Scout
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Playbooks and a 14-day checklist for founders winning their first paying customers.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
An MCP server and CLI for checking LLVM IR transformations with Alive2. It lets an agent prove or refute that an optimization is correct, check a patched opt against trunk, and read or create the alive2.llvm.org/ce/z/... links used in LLVM issues and PRs.
It talks to the public instance at alive2.llvm.org by default, and to a local alive-tv when you have one. It's a single static Go binary with no runtime dependencies.
| Tool | Does | Annotations |
|---|---|---|
verify | Checks that tgt refines src, per function. tgt is given directly, or produced from passes by your opt or by trunk LLVM (opt: "upstream"). Returns each verdict and, when not correct, Alive2's counterexample. | read-only |
create_link | Publishes the check as a short link, then reads it back to confirm it holds the submitted IR. | additive, idempotent |
get_link | Reads a short link back into IR and options, and optionally re-runs it. | read-only |
Verdicts are correct, incorrect, unknown (timeout or approximation) and error. Inputs take IR as text (src, tgt) or as paths (src_file, tgt_file), so agents don't have to paste large modules. Results are returned as structured content.
| With | Run |
|---|---|
| Homebrew (macOS, Linux) | brew install phongndo/tap/alive2-mcp |
| mise | mise use -g github:phongndo/alive2-mcp |
| Go | go install github.com/phongndo/alive2-mcp@latest |
| Nix | nix profile add github:phongndo/alive2-mcp |
| Docker | docker pull ghcr.io/phongndo/alive2-mcp |
| Download | archives for Linux, macOS and Windows on the releases page |
It's also listed in the MCP Registry as io.github.phongndo/alive2-mcp. Release archives carry build provenance; verify one with gh attestation verify --repo phongndo/alive2-mcp.
claude mcp add alive2 -- alive2-mcp -opt /path/to/build/bin/opt
or in a project's .mcp.json:
{
"mcpServers": { "alive2": { "command": "alive2-mcp", "args": ["-opt", "build/bin/opt"] } } }
codex mcp add alive2 -- alive2-mcp -opt /path/to/build/bin/opt
The image runs the server over stdio. It can't see your files or your opt, so pass IR as text and use opt: "upstream":
{
"mcpServers": { "alive2": { "command": "docker", "args": ["run", "-i", "--rm", "ghcr.io/phongndo/alive2-mcp"] } } }
| Flag | Env | Meaning |
|---|---|---|
-opt PATH | ALIVE2_MCP_OPT | Default opt for turning passes into tgt, typically your patched build. Without it, passes run upstream. |
-alive-tv PATH | ALIVE2_MCP_ALIVE_TV | Local alive-tv; checks then run locally, with no network. |
-web URL | ALIVE2_MCP_WEB | Alive2 Compiler Explorer instance (default https://alive2.llvm.org/ce). |
-http ADDR | Serve stateless streamable HTTP instead of stdio. |
The same binary works from a shell. Exit status is 0 for correct, 1 for anything else and 2 for errors, so it fits scripts and git bisect run.
alive2-mcp -opt build/bin/opt verify -passes gvn repro.ll # your patch
alive2-mcp verify -opt upstream -passes gvn repro.ll # trunk LLVM alive2-mcp verify before.ll after.ll # two files, matched by name alive2-mcp get-link -verify https://alive2.llvm.org/ce/z/_kCuTV alive2-mcp link -function f before.ll after.ll # publishes
The Alive2 website is a Compiler Explorer instance running alive-tv as a compiler, so this uses Compiler Explorer's API: /api/compiler/alive/compile, /shortener and /api/shortlinkinfo/ .
The website only compares functions named @src and @tgt. For two modules, each function they share is merged into one module, renamed, and checked concurrently. The target's attribute groups and metadata are renumbered so they can't collide with the source's. A local alive-tv gets both files and pairs functions itself.
Dropped connections, DNS timeouts and gateway errors are retried twice with a short backoff. Other HTTP errors are reported at once.
Alive2 is bounded and intraprocedural. Loops are unrolled a few times and calls to other functions are opaque, so correct is strong evidence rather than a proof. Anything sent to the website is sent to a public server, and create_link stores it permanently.
nix develop # Go, gopls, golangci-lint, nixfmt
go test -race ./... # unit tests against a fake Alive2 server nix flake check # build, tests, golangci-lint, formatting
CI runs nix flake check on Linux (x86-64 and ARM) and macOS. A weekly job checks the live alive2.llvm.org API, since a change there is what would break this tool.
To release, set VERSION and push a matching vX.Y.Z tag on main. The Release workflow builds the archives and images with GoReleaser, attests them, publishes the release with its Homebrew formula (which phongndo/homebrew-tap picks up), and lists the version in the MCP Registry. CI runs the same build as a dry run on every push.
MIT; see LICENSE.