Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Diagnose why an AI agent failed and get the verified fix instantly. Free, no token.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
https://api.snapback.sh/mcp在终端中运行这条命令
claude mcp add --transport http snapback https://api.snapback.sh/mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"snapback": {
"url": "https://api.snapback.sh/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"snapback": {
"type": "http",
"url": "https://api.snapback.sh/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
https://api.snapback.sh/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 ra1labsworkx-wq 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
尚未检查;我们会轮流检查各个端点
尚未检查;我们会轮流检查各个端点
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于–,最新版本(1.8.4)于36天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Date Math
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
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.
Exact date/time math for agents: business days, holidays, time zones, cron, RRULE, SLA. x402 paid.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
mcp-name: io.github.ra1labsworkx-wq/snapback
Make Snapback automatic. Instead of remembering to call the diagnosis tool, wrap your agent's tool calls once — and every error is auto-diagnosed, and gated-safe fixes are applied and retried *without a human*.
"Power tools are optional. Infrastructure is not." This turns Snapback from a tool you reach for into
infrastructure that runs on every failure.
Snapback is a hosted remote MCP server — nothing to run locally. Add it to any MCP client (Claude Code, Cursor, Cline, VS Code, Windsurf). Most tools are free and need no token.
{
"mcpServers": { "snapback": { "url": "https://api.snapback.sh/mcp" } } }
Endpoint: https://api.snapback.sh/mcp (Streamable HTTP, JSON-RPC 2.0). Then call tools/list (23 tools) and try diagnose_infra_error with {"error": "dns nxdomain servfail"} → family: dns-tls + a verified fix.
Free (no token): diagnose_infra_error, detect_loop, budget_guard, search_docs, what_others_did, recommend_failover, cascade_root, suggest_budget_recovery, convert_trace, preflight, session_start, session_step, session_end, discovery.
Metered (free starter token or x402): diagnose_trace, diagnose_batch, get_verdict, submit_feedback, report_outcome, request_pattern, my_usage, my_impact, agent_memory.
On any tool-call error, the interceptor:
diagnose_infra_error (free, no token, no LLM, <150ms).confidence >= 0.85source == "library" (a curated verified fix, not an LLM guess)auto_safe == true (the fix is retry / refetch / config — reversible, side-effect-free)mutate or destructive fix (create/change state, money, auth grants).It fails closed: when unsure, it escalates rather than acting.
# no install needed beyond the stdlib; drop the file in, or:
cp snapback_interceptor.py your_agent/ export SNAPBACK_MCP=https://api.snapback.sh/mcp # default; the free tools need no token
from snapback_interceptor import SnapbackInterceptor
heal = SnapbackInterceptor( auto_apply=True, on_escalate=lambda v: my_ops_inbox.log(v), # human sees non-auto-safe verdicts on_heal=lambda v: metrics.count("snapback.autoheal", family=v["family"]), )
result = heal.run(call_solana_rpc, wallet, amount)
@heal.guard def call_solana_rpc(wallet, amount): ...
verdict = heal.diagnose("BlockhashNotFound") if verdict"gate": ...apply verdict["fix"] and retry...
diagnose_infra_error returns {matched, family, fix, confidence, source, action_class, auto_safe, gate}. action_class is one of:
| class | meaning | auto-safe? |
|---|---|---|
retry | re-run with backoff (idempotent) | ✅ |
refetch | re-fetch/re-price/re-sync then re-apply | ✅ |
config | client-side param change (raise max_tokens, serve intermediate cert) | ✅ (to suggest) |
mutate | creates/changes external state, money, auth | ❌ escalate |
destructive | deletes/reverts/irreversible | ❌ never |
Defense in depth (1.8.3): even a reversible-class fix is down-graded to escalate if its text contains a destructive command (delete a pod, flush keys, drop a table). The gate returns gate.contains_destructive_step, so a fix can never auto-run a state-destroying step regardless of its action_class.
gate.auto_apply_ok is the ready-made verdict; the interceptor also re-derives it locally so a stale client can't over-trust.
diagnose_infra_error endpoint.bridge.py (post-mortem forwarding) — this is the live auto-heal layer.submit_feedback on the retry outcome (did the fix work?) → feeds the shared library (the network effect).