Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Check what other agents hit the same tool failure — and what recovery worked. Ask before retrying.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
FAILECHO_URL, FAILECHO_REPORTER_IDต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://failecho.com/mcpเปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"failecho": {
"command": "npx",
"args": [
"-y",
"failecho-mcp"
],
"env": {
"FAILECHO_URL": "ใส่ค่าของคุณ",
"FAILECHO_REPORTER_ID": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http failecho https://failecho.com/mcpclaude mcp add failecho --env FAILECHO_URL='ใส่ค่าของคุณ' --env FAILECHO_REPORTER_ID='ใส่ค่าของคุณ' -- npx -y failecho-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"failecho": {
"url": "https://failecho.com/mcp"
}
}
}วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"failecho": {
"command": "npx",
"args": [
"-y",
"failecho-mcp"
],
"env": {
"FAILECHO_URL": "ใส่ค่าของคุณ",
"FAILECHO_REPORTER_ID": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"failecho": {
"type": "http",
"url": "https://failecho.com/mcp"
}
}
}วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"failecho": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"failecho-mcp"
],
"env": {
"FAILECHO_URL": "ใส่ค่าของคุณ",
"FAILECHO_REPORTER_ID": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://failecho.com/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
FAILECHO_URL envFAILECHO_REPORTER_ID envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน failecho.com แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.0) เข้า registry 2 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, debuff
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.
Let coding agents play, test and tune your 2D web game: live state, explained errors, replays, fuzz.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Failure intelligence for AI agents and autonomous software.
Before you retry, check the echo.
Website · Connect an agent · API reference · Live network · llms.txt
FailEcho is a cross-agent failure intelligence network. When a tool or model call fails, it tells your agent what fixed that exact failure for other agents -- or that nothing has, so it stops retrying. Agents share the shape of their failures and what fixed them (metadata only, never prompts or data); the next agent to hit the same failure gets the answer. Open source, no account.
Every line is real output: live queries to the lab network, one twin pair replayed from the lab ledger (24 Sep), the wrapper's actual payload, and the lab scoreboard with p-values. Our own agents; independent reporters so far: 0.
Our own agents run in twins in a lab: same task, same model, one asks FailEcho before it retries and acts on the answer, one does not. Measured 22-24 September 2026. Independent users so far: 0. Every number, its sample and its significance test: docs/claims.md; live: the lab scoreboard.
| Measured (p < 0.05) | With | Without |
|---|---|---|
| Model-provider rate-limit failures recovered (switch model when told) | 74.5% | 31.2% |
| Runs finished, same group (416 a side) | 90.6% | 80.2% |
| Seconds lost to flaky APIs, per run | 12.2 | 19.4 |
| Agents told "skip" that retried anyway and recovered | 0 of 404 |
| Not shown yet | With | Without |
|---|---|---|
| An agent that already retries carefully: seconds lost per run | 9.8 | 10.1 |
| Answers correct, checked against the real APIs | 99.3% | 99.2% |
| Coding agents: runs finished | 73.7% | 73.7% |
| Advice shown to the model only, the model decides: runs finished | 100% | 100% |
| OpenAI and Anthropic | not in the lab yet |
Start here
| Connect in one minute | The endpoint, the plugin, the one-line prompt |
| What it does | The idea, and the vocabulary it uses |
| See the network effect locally | Six agents, one failure, on your machine |
Connect something
| Connect an agent | MCP, Python, frameworks, REST, the Claude Code plugin |
| MCP | The endpoint, the stdio server, the four tools |
| REST API | Every endpoint with a runnable example |
| Python client | Zero dependencies, standard library only |
How it works
| What connecting asks of you | Nothing: no key, no token, no account |
| Privacy | What is never sent, and what is never stored |
| How the numbers are produced | Wilson scores, and why not a model |
| Abuse floor (V1) | Rate limits, reporter weighting, what is not solved |
| Retention and pruning | 48 hours raw, hourly aggregates after |
Run and operate it
| Run locally | uv or venv, one command |
| Project layout | Where everything lives |
| Configuration | Every setting, and deploying on a small VPS |
| Is it working? | The checks that answer it |
| MVP limitations | What this does not do yet, said plainly |
Agent A fails.
FailEcho learns.
Agent B encounters the same failure. It sees what actually worked for other agents.
Agent B benefits from evidence it never generated itself.
Easiest: let the agent do it. Paste this at whatever you are running -- Claude Code, Claude Desktop, Cursor, Codex, your own harness:
Read https://failecho.com/llms.txt and set yourself up to use FailEcho.
It reads the machine-readable guide and configures itself. No account, no API key, nothing to sign up for. Everything below is the same thing done by hand.
Put it in the tool path, not the tool list. A tool the model has to choose to call is one it mostly does not call: in our lab, agents given FailEcho's MCP tools used them about once every five runs. The integrations that work hand the model the answer where it is already looking, so pick by client:
| Your agent runs in | Install | Where the advice lands |
|---|---|---|
| Claude Code | the plugin: /plugin marketplace add FailEcho/failecho then /plugin install failecho@failecho | after every MCP tool call, via a hook |
| OpenCode | one file: .opencode/plugin/failecho.js (source), or "plugin": ["failecho-opencode"] from npm | in the output of every tool, bash and webfetch included |
| Cursor, Claude Desktop, any MCP client | failecho-mcp proxy -- in front of each MCP server | inside the failing tool's error |
| Your own code | failecho-autoreport with FAILECHO_ADVISE=1 | on the exception you already handle |
| Nothing can be installed | the bare MCP endpoint below | only if the model remembers to ask |
All four deliver the advice, and all four are tested end to end. The gains the lab has measured come from agents that act on it -- switch model when told switch_model, stop when told skip (three lines with the wrapper); none of the four integrations has a lab comparison of its own with a result to quote yet.
The bare MCP endpoint -- the smallest option and the least effective
https://failecho.com/mcp
Most MCP clients take this config block:
{
"mcpServers": { "failecho": { "type": "http", "url": "https://failecho.com/mcp" } } }
In Claude Code that file is .mcp.json; Cursor uses .cursor/mcp.json and drops the type; VS Code uses .vscode/mcp.json and calls the top-level key servers. The endpoint never changes. The setup page has the table.
On Claude Code the CLI writes that same file for you:
claude mcp add --transport http --scope project failecho https://failecho.com/mcp
Python, if you want failures *and* successes reported automatically:
from failecho import FailEcho
echo = FailEcho("https://failecho.com", reporter_id="my-agent-1")
outcome = await echo.observe_tool_call( service="github-mcp", operation="create_issue", call=lambda: github.create_issue(**args), )
if outcome.failed and outcome.decision.actionable: do(outcome.decision.recommendation) # your code decides, never FailEcho
No account. No API key. Free during the public MVP. Full integration guide: Connect an agent.
See whether other AI agents are hitting the same tool failure right now — and which recovery actions actually worked. FailEcho exposes a Model Context Protocol (MCP) endpoint that agents can query after a tool failure, plus a REST API.
| Tool | When the agent calls it |
|---|---|
check_tool_failure | a tool failed — before retrying |
report_tool_failure | contribute the failure |
report_tool_success | contribute a success (the denominator) |
report_recovery_outcome | say whether the fix worked |
FailEcho normalizes error text deterministically (no model) into a fingerprint, accumulates recovery outcomes against it, and returns a recommendation only when independent reporters agree. Thin evidence returns INSUFFICIENT_DATA rather than a guess. Confidence is a Wilson score lower bound you can recompute from the counts returned beside it.
It stores failure metadata only. There is no field for prompts, tool arguments, tool results, request or response bodies, headers or cookies, so none of it can be stored. One field is free text, the error message: optional, off by default in the hook and the wrapper, and when sent it is normalized -- identifiers replaced, credential-shaped strings redacted -- and the raw text discarded. That normalization is a second line of defence, not a guarantee; the honest claim is *metadata only, error text off by default, normalized when on*.
Live: https://failecho.com · /docs · /openapi.json · /llms.txt
This is not an observability platform, an error database, an uptime monitor or an LLM debugger. The unit of the system is:
service + operation + version + schema_hash + failure fingerprint
| Term | Meaning |
|---|---|
| FailEcho Network | the whole system |
| Failure Echo | a normalized observed failure, shared by fingerprint |
| Recovery Echo | evidence that a recovery action worked |
| Incident | a sudden abnormal failure increase |
| Reporter | an agent or runtime sending telemetry |
| Fingerprint | the canonical normalized error identity |
The brand vocabulary is for humans. Wire formats are deliberately unbranded: endpoint paths, MCP tool names and field names (fingerprint, recommendation, recovery_actions) stay exactly as they are, because machine clarity outranks naming purity.
Two terminals, about a minute.
# 1. the network
uv run uvicorn app.main:app --reload
uv run python examples/live_agent/run_demo.py
The demo starts a small local tool server, then runs six logically independent agents against it. Every network call goes over MCP, from an external process, using the official MCP SDK.
Agent A calls a tool. It fails: the provider renamed a field.
| v Agent A reports the failure -> the network records it Agent A has no evidence to go on, so it retries (fails), refreshes the tool schema (works), and reports both outcomes | v Agents C, D, E, F hit the same failure with different repository ids -> normalization collapses all of them onto ONE fingerprint -> the network accumulates evidence from 5 independent reporters | v Agent B hits the same failure with yet another id, and asks first -> the network recognises the fingerprint -> "refresh_schema: 5/5 successes, 5 reporters, confidence 0.57" -> "retry: 0/5. Do not bother." | v Agent B skips the retry the others wasted a call on, refreshes, succeeds, and reports its outcome -- which makes the next agent's answer better.
Agent B never met Agent A. It only met the network. That is the entire product.
ตัดมาแค่ช่วงต้น อ่านต่อใน repo