Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Delegate heavy tasks from Claude Code to the Antigravity CLI (Gemini) with quota-aware failover.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
AGY_PATH, AGY_TIMEOUT, AGY_MAX_OUTPUT_CHARS, AGY_DEFAULT_MODEL, AGY_ON_FAILUREต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"agy-bridge": {
"command": "npx",
"args": [
"-y",
"agy-bridge"
],
"env": {
"AGY_PATH": "ใส่ค่าของคุณ",
"AGY_TIMEOUT": "ใส่ค่าของคุณ",
"AGY_MAX_OUTPUT_CHARS": "ใส่ค่าของคุณ",
"AGY_DEFAULT_MODEL": "ใส่ค่าของคุณ",
"AGY_ON_FAILURE": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add agy-bridge --env AGY_PATH='ใส่ค่าของคุณ' --env AGY_TIMEOUT='ใส่ค่าของคุณ' --env AGY_MAX_OUTPUT_CHARS='ใส่ค่าของคุณ' --env AGY_DEFAULT_MODEL='ใส่ค่าของคุณ' --env AGY_ON_FAILURE='ใส่ค่าของคุณ' -- npx -y agy-bridgeเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"agy-bridge": {
"command": "npx",
"args": [
"-y",
"agy-bridge"
],
"env": {
"AGY_PATH": "ใส่ค่าของคุณ",
"AGY_TIMEOUT": "ใส่ค่าของคุณ",
"AGY_MAX_OUTPUT_CHARS": "ใส่ค่าของคุณ",
"AGY_DEFAULT_MODEL": "ใส่ค่าของคุณ",
"AGY_ON_FAILURE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"agy-bridge": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"agy-bridge"
],
"env": {
"AGY_PATH": "ใส่ค่าของคุณ",
"AGY_TIMEOUT": "ใส่ค่าของคุณ",
"AGY_MAX_OUTPUT_CHARS": "ใส่ค่าของคุณ",
"AGY_DEFAULT_MODEL": "ใส่ค่าของคุณ",
"AGY_ON_FAILURE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
AGY_PATH envAGY_TIMEOUT envAGY_MAX_OUTPUT_CHARS envAGY_DEFAULT_MODEL envAGY_ON_FAILURE envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub sshahzaiib ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.3.1) เข้า registry 5 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Symantec Cloud DLP AIops
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.
Governed Symantec Cloud DLP — 14 MCP tools, read-only with audit.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
An MCP bridge that lets Claude Code delegate heavy tasks to the Antigravity CLI (`agy`) — saving Claude's context window and tokens for what matters.
Claude sends a task → the bridge routes it to the best available model via agy → only the answer comes back. Large files, deep git searches, and web lookups never touch Claude's context.
Listed on
User → Claude Code → agy-bridge (MCP) → agy CLI → Gemini / Claude / GPT-OSS
← ← ←
| claude-to-agy | agy-bridge | |
|---|---|---|
| Tool surface | 1 generic delegate_to_agy | 6 purpose-built tools — Claude self-routes reliably |
| Model selection | none (agy default only) | per-tool routing across all agy models, with availability detection and fallback |
| Multi-turn | stateless | session continuity — follow_up resumes agy conversations without resending context |
| Output safety | unbounded | configurable truncation cap protects Claude's context |
| Sandbox | no | optional --sandbox mode |
| Install | uvx (Python) | npx (Node) — zero install |
agy) installed and authenticated# 1. Register the MCP server (user scope = all projects).
claude mcp add-json -s user agy-bridge \ '{"command":"npx","args":["-y","agy-bridge"],"timeout":600000}'
curl -o CLAUDE.md https://raw.githubusercontent.com/sshahzaiib/agy-bridge/main/CLAUDE.md
The
"timeout": 600000(10 min, milliseconds) is the client-side tool-call
deadline — without it, a cold-start
analyze_files(~40–50s) or a long
delegatecan hit Claude Code's default and return `timed out waiting for
response` while the agy run is still going. If your client doesn't honor a
per-server
timeout, set the global env varMCP_TOOL_TIMEOUT=600000instead.
Details and the agy-side budgets are in Timeouts and cancellation.
| Tool | Use for | Model routing (first available) |
|---|---|---|
analyze_files | Files >200 lines, >3 files at once, logs, dumps, generated code | Gemini Flash (High) → Gemini Pro (Low) → fallback |
deep_search | git log/diff/blame archaeology, repo-wide greps | Gemini Flash (Medium) → (High) → fallback |
web_lookup | Docs, API references, external/current knowledge | Gemini Flash (Medium) → (High) → fallback |
adversarial_review | Plan critiques, design and code reviews | Gemini Pro (High) → Gemini Flash (High) → fallback |
follow_up | Continue a prior session by session_id — no context resend | inherits the session |
delegate | Anything else heavy | Gemini Flash (High) → fallback |
All tools accept optional cwd (project root) and model (an id or display name from agy models; validated, with available models listed on mismatch).
Every response ends with a footer:
---
[agy-bridge] model: Gemini Flash (High) | session: 1f0c…-d4 (use follow_up to continue)
On first use the bridge runs agy models (cached for the process lifetime) and picks the first available model in the tool's preference chain. Chain entries name a family and tier rather than a version (Gemini * Flash (High)), and * resolves to the newest version agy currently lists, so a Gemini release never silently breaks routing. Chains are Gemini-first; Claude Opus and GPT-OSS are appended as a last resort and only used when no Gemini model is listed. If none is available it falls back to AGY_DEFAULT_MODEL, and finally to agy's own default. agy silently ignores unknown --model values, so the bridge validates names up front instead of letting requests land on the wrong model.
agy never surfaces quota exhaustion in print mode — it silently retries the 429 until its print-timeout, then exits 0 with empty output, which used to look like an indefinite hang. The bridge now watches each run's log file (via --log-file) and on RESOURCE_EXHAUSTED (code 429):
Failovers are annotated in the response footer (failover: : quota exhausted (resets in 4h24m)). Only when every candidate is exhausted does the call fail — in seconds, with reset times listed — instead of hanging.
Each tool has its own default timeout sized to its job: web_lookup 120s, deep_search 180s, analyze_files / adversarial_review / follow_up 300s, delegate 600s. Setting AGY_TIMEOUT explicitly overrides all of them at once. To change a single tool, set AGY_TIMEOUT_ instead (e.g. AGY_TIMEOUT_DEEP_SEARCH=300); a per-tool override takes precedence over the global AGY_TIMEOUT and the tool's default. The full set of per-tool variables is AGY_TIMEOUT_ANALYZE_FILES, AGY_TIMEOUT_DEEP_SEARCH, AGY_TIMEOUT_WEB_LOOKUP, AGY_TIMEOUT_ADVERSARIAL_REVIEW, AGY_TIMEOUT_FOLLOW_UP, and AGY_TIMEOUT_DELEGATE. The kill path escalates SIGTERM → SIGKILL across the whole process group, and the deadline fires even if agy's helper processes hold the output pipes open. Cancelling the tool call from the MCP client (e.g. pressing Esc in Claude Code) also kills the agy run instead of orphaning it.
Two timeout layers — align them. The timeouts above are the _agy-side_ budget. Your MCP client (Claude Code) has its own, separate _tool-call_ timeout, and if it is shorter than the agy budget the client gives up first — you'll see Error: timed out waiting for response (note: agy-bridge's own timeout reads agy timed out after Ns instead). The work is not lost: the agy session persists, so follow_up with the returned session_id retrieves the result. But the real fix is to make the client wait at least as long as agy: the Install command already sets a per-server timeout of 600000ms (scoped to the agy-bridge entry only). If you registered the server without it, re-run the add-json command from Install, or set the global env var MCP_TOOL_TIMEOUT=600000. Rule of thumb: client `timeout` ≥ agy budget.
Expected latency. Most of the perceived "slowness" is cold start: the first call in a session spawns the agy CLI and warms the model. A simple analyze_files over 3 files measures around 40–50s cold (≈46s observed), dropping on subsequent same-session calls. A first call that also hits a quota 429 takes longer while the bridge fails over. So a client timeout below ~60s will intermittently trip on cold starts even for "simple" questions — size it generously.
All optional, via environment variables:
| Variable | Default | Description |
|---|---|---|
AGY_PATH | agy | Path to the agy binary |
AGY_TIMEOUT | per-tool | Seconds; overrides all per-tool timeouts at once (see above), passed as --print-timeout, enforced with a 15s kill grace |
AGY_TIMEOUT_ | per-tool | Seconds; overrides the timeout for a single tool only, e.g. AGY_TIMEOUT_DEEP_SEARCH=300. Wins over AGY_TIMEOUT |
AGY_MAX_OUTPUT_CHARS | 50000 | Truncation cap for tool output |
AGY_DEFAULT_MODEL | unset | Fallback model when no chain entry is available (name, id, or * pattern) |
AGY_SKIP_PERMISSIONS | true | Pass --dangerously-skip-permissions to agy |
AGY_SANDBOX | false | Run agy with --sandbox |
AGY_ON_FAILURE | fallback | strict appends an instruction to failed-tool errors telling the calling agent not to absorb the work itself |
The bridge always fails loudly: agy errors surface as MCP tool errors with agy's actual stderr, and degraded model routing is annotated in the response footer. By default the calling agent (Claude) will typically do the work itself after a failure — visible in the transcript, but easy to stop noticing in a long session. Set AGY_ON_FAILURE=strict to append an explicit "do NOT perform this work yourself — report the fai
ตัดมาแค่ช่วงต้น อ่านต่อใน repo