Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Honest claim corroboration for AI agents: syndication-aware independent-source counting.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"corroborate": {
"command": "npx",
"args": [
"-y",
"corroborate-mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add corroborate -- npx -y corroborate-mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"corroborate": {
"command": "npx",
"args": [
"-y",
"corroborate-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"corroborate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"corroborate-mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub chefcohen ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.3) เข้า registry 2 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Systemdox
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.
Your architecture in your agents' context: checks, specs, ADRs and docs over MCP, at write time.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
The honest corroboration layer for AI agents. Hand it a claim; it tells you how *independently* that claim is actually being reported — and shows its work.
An AP story echoed by 40 outlets is one origin, not 40 citations. Other verifiers count citations; Corroborate counts independent *origins* — syndication-aware — then publishes its own error rates and discloses coverage gaps. That's the judgment layer raw search and citation-checkers skip.
corroborate_claim("NASA delayed the Artemis III landing") → CONFIRMED 4 independent origins · conf 0.9
corroborate_claim("Zorblatt Corp acquired Portugal") → UNCORROBORATED 0 origins · conf 0.05
Not a web search engine (use Exa/Tavily/Brave for that) and not a human fact-checking network. It's the narrow, honest primitive in between: *how independently is this reported?*
| 🔑 Zero API keys, zero accounts | Keyless engines (Google News RSS · GDELT · Hacker News). Nothing to sign up for. |
| 👁 Read-only | It reads public news. It cannot act, write, spend, or touch your data. |
| 🎯 Deterministic | No LLM in the loop — same evidence in, same verdict out. p50 ~0.4s. |
| 📖 Open source (MIT) | Read every line of the judgment. |
| 📊 Published error rates | We measure our own false-CONFIRMED / false-UNCORROBORATED rates on a public benchmark and print them below. Most "fact-check" tools don't. |
| 🚫 Never lies by omission | If sources are unreachable it returns an error, never a fake "UNCORROBORATED." |
*Reporting corroboration*, not truth. A claim every outlet syndicated from one wire story comes back SINGLE_SOURCE. A claim nobody covers comes back UNCORROBORATED even if true. The verdict states exactly what was measured, flags its weaknesses in notes, and sets coverage:"degraded" when an engine was down — so absence of evidence is never quietly sold as evidence of absence.
Requires Node ≥ 18. No keys, no config.
Claude Code
claude mcp add corroborate -- npx -y corroborate-mcp
Claude Desktop / Cursor / any MCP client (claude_desktop_config.json, .cursor/mcp.json, …)
{ "mcpServers": { "corroborate": { "command": "npx", "args": ["-y", "corroborate-mcp"] } } }
Try it with no MCP client
npx corroborate-mcp # starts the stdio server (silent = healthy)
corroborate_claim — the verdict{ claim, window_days?=7, max_sources?=8 } →
{
"claim": "Acme Corp acquires Widget Industries for $2 billion", "corroboration": "CONFIRMED", "n_independent_sources": 3, "confidence": 0.9, "coverage": "full", "sources": [ { "headline": "Acme Corp to acquire Widget Industries in $2 billion deal", "outlet": "Financial Times", "domain": "ft.com", "url": "https://…", "published_at": "2026-07-09T14:02:00Z", "age_days": 0.9, "wire": false, "echoed_by_n_domains": 1 } ], "notes": ["syndication detected: near-identical headlines across multiple domains collapsed into one origin"], "method": "reporting-corroboration: counts INDEPENDENT story origins (syndication-aware), not raw article count; does not adjudicate truth" }
| Field | Meaning |
|---|---|
corroboration | CONFIRMED (≥2 independent origins) · SINGLE_SOURCE (1) · UNCORROBORATED (0) |
n_independent_sources | Distinct story *origins* after syndication clustering — not article count |
confidence | 0–1. Rises with origins + cross-engine agreement; penalized for wide single-origin echo |
coverage | full, or degraded when an engine failed this call — a weak verdict may then reflect the outage, not the claim |
sources[].wire | Origin is a wire service (AP/Reuters/AFP/UPI) |
sources[].echoed_by_n_domains | How many domains carried this same story |
notes | Honest caveats: syndication collapse, breaking-news cascade (<24h), relevance-gate discards, engine outages |
find_sources — the raw evidence{ query, window_days?=7, max_sources?=10 } → deduped multi-engine list (outlet, domain, url, date), no verdict. The cheaper primitive when you want the coverage and your own judgment.
Against a public 40-claim labeled benchmark (benchmark/ — claims, labels, category definitions, and harness are all public; run it yourself with npm run benchmark). The time-sensitive claims are refreshed from current news so the numbers reflect real accuracy, not staleness. Latest run 2026-07-22:
| Metric | Result |
|---|---|
| Fabricated claims falsely CONFIRMED | 0/10 |
| Widely-reported true claims missed | 0/12 (11 CONFIRMED, 1 single-source) |
| Niche true claims detected | 7/8 |
| Stale claims correctly windowed | 2/5 |
| Distorted claims falsely CONFIRMED | 6/6 — read the warning ↓ |
| Latency | p50 0.4s · p95 <1s (≤8s worst case when the slow engine is up) |
⚠️ Respect the distorted-claim number — it's the honest ceiling of this tool's blind spot. In the latest run all 6 distorted claims came back CONFIRMED (6/6), because each one distorts a *currently-reported* event, and this tool checks whether independent reporting exists around a claim's topic and entities — it does not do stance detection. So "Samsung *cancelled* the Galaxy Z Fold8" (they unveiled it) or "OpenAI released GPT-6" confirms off the real coverage of the true story. The rule to live by: if a claim's topic is being reported, a distorted version of it will very likely CONFIRM. Read CONFIRMED as *"this topic has independent coverage — now verify the specific facts against the returned sources,"* never as "this exact claim is true." Stance detection is the v1.1 roadmap item. (Recurring events like championships/elections can likewise match the current cycle's coverage — see the stale-claim leaks.)
notes.UNCORROBORATED — a window statement, not a falsity verdict.UNCORROBORATED.npm test # golden-claim suite — deterministic, no network
npm run test:mcp # MCP stdio handshake + tools/list npm run test:live # live invariants against real engines npm run benchmark # 40-claim labeled accuracy benchmark (live, ~2 min) npm run test:release # all of the above — required green before every release