Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Point Gecko at an OpenAPI spec; get first-call-correct, auth-hidden agent tools.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
https://mcp.geckovision.tech/mcp打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"surf": {
"command": "uvx",
"args": [
"gecko-surf"
]
}
}
}在终端中运行这条命令
claude mcp add --transport http surf https://mcp.geckovision.tech/mcpclaude mcp add surf -- uvx gecko-surf粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"surf": {
"url": "https://mcp.geckovision.tech/mcp"
}
}
}粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"surf": {
"command": "uvx",
"args": [
"gecko-surf"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"surf": {
"type": "http",
"url": "https://mcp.geckovision.tech/mcp"
}
}
}粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"surf": {
"type": "stdio",
"command": "uvx",
"args": [
"gecko-surf"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
https://mcp.geckovision.tech/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过域名 geckovision.tech 验证(注册中心会核实域名所有权)
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
尚未检查;我们会轮流检查各个端点
尚未检查;我们会轮流检查各个端点
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
两种方式都可以:安装在你的电脑上,或者连接云端版本。
GitHub 仓库最后更新于–,最新版本(0.2.0)于4个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Microsoft Exchange Online MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ 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.
Exchange Online admin for MSPs: forwarding audits, EWS posture and offboarding, no PowerShell
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Stop letting your agent guess
Check the call before it counts. Gecko is open-source and runs on your machine:
one command maps any API — messy, paywalled, or on-chain — into a call graph your agent
checks instead of guesses from , and anything that spends is simulated to a receipt first.
No wallet, no payment rail, no key held — 64 mainnet transactions, 49 with a cost predicted before signing, 47 of those exact to the unit (re-read from the chain, 2026-09-19).
Quickstart · Docs · Architecture · FAQ · Security
Built for the calls your agent must not get wrong. Two axes, either one qualifies:
a messy surface (paywalled, drifting, undocumented, on-chain) or a **high-stakes
action** (your agent runs unattended with credentials or money).
Gecko is an open-source knowledge graph built specifically for AI agents that call APIs. Point it at an OpenAPI spec, a docs site, or a Solana program's IDL and source, and it reads that surface into a graph your agent traverses — every fact tagged with where it came from, and anything it cannot establish flagged rather than guessed.
A specification tells your agent what a call *looks like*. It cannot tell it whether the call will *work*. That gap is in every spec, including a perfect one, and it is where agents fail expensively: not on the call that errors, but on the call that is accepted and wrong. Gecko closes it by handing back one specific call — and, for anything that spends, by simulating that call against real state first and returning a receipt.
It is not the agent and not an orchestrator. It holds no key, signs nothing, broadcasts nothing, and stores no response payload — it stores surfaces and correctness metadata, never your data.
No install:
npx @geckovision/gecko doctor # 1. check your environment
npx @geckovision/gecko add # 2. comprehend it — $0, no live call npx @geckovision/gecko report # 3. get the scorecard — grade + findings npx @geckovision/gecko serve # 4. your agent uses it over MCP
Or install once:
npm install -g @geckovision/gecko # prebuilt binary — no Python needed
uv tool install "gecko-surf[serve]" # or pip, if you want the Python package
gecko add
Plug into your agent:
# Claude Code
claude mcp add my-api -- npx -y @geckovision/gecko serve --stdio
{ "mcpServers": { "my-api": { "command": "npx", "args": ["-y", "@geckovision/gecko", "serve", " ", "--stdio"] } } }
Going live is a separate, deliberate step:
gecko auth set <provider> # key goes to your OS keychain — never mcp.json
Then your agent asks questions, not endpoints:
Which fixtures kick off in the next hour, and what are the current odds?
What is the peg state of USDC right now? Plan a swap of SOL for USDC on Meteora, bin_step 4.
An OpenAPI says what exists. An IDL says what a program looks like. Neither is enough to act:
Gecko replaces the guess with a graph:
extracted from the surface, recovered from source, or honestly flagged as unknown. Never fabricated.Most agent-tool layers are thin wrappers. Gecko is a memory substrate, and three of its design choices are deliberately different from the textbook:
| Choice | Why it matters |
|---|---|
| Deterministic semantic memory — lexical retrieval, no vector DB | the graph never "approximately" remembers; BM25 and vectors sit behind evidence gates |
| Self-generated episodic memory — categorical outcomes + a drift series | Gecko re-simulates to create its own episodes; no dependence on your data plane, no payloads stored |
| Typed procedural memory — plans as executable JSON | landing plans and derive orders a builder can run; text loses the join, ours can't |
And the depth is measured, not asserted:
overlays/) — the value of comprehension, quantified per program.Explore the diagrams: architecture on docs.geckovision.tech (all three views, rendered) · the map in this repo
Live, on a mainnet fork, $0:
| Case | Naive path | Gecko |
|---|---|---|
| Pump.fun buy | ❌ reverts — AccountNotInitialized (3012) | ✅ lands — 86,669 CU |
| Pump.fun sell | ❌ transfers the tokens, then reverts — InvalidBondingCurveV2 (6074) | ✅ lands — 50,783 CU |
| Meteora DLMM swap | ❌ reverts — derive-only, no ATA/wrap/bin-array preludes | ✅ wrap → swap → unwrap — 81,964 CU |
| Meteora pool derivation | ❌ stale 3-seed scheme → the wrong pool, silently | ✅ correct 4-seed derivation, differential-proven |
| Docs-only API (no spec) | agent invents endpoints | ✅ draft spec recovered, verified VERIFIED/REFUTED |
The facts behind those passes are not on any surface: a 4th PDA seed the SDK added in 2024, an account the IDL only mentions in prose, a fee field resolved by a refuting simulation. That is the graph your agent traverses.
TxLINE (paywalled sports odds) — without vs with Gecko
· MP4
Cross-API correlation — three APIs, one question
Pegana × Birdeye × Jupiter joined on a declared entity; the agent plans across surfaces first-try. Try it: gecko graph svg renders any surface's call graph.
Solana programs — buy a coffee on mainnet
Everything above is a $0 fork. This one is not: real mainnet, real USDC, a real espresso.
let_me_buy is a storefront program on Solana. A merchant stands up a store and lists products priced in USDC; a buyer scans a QR code and pays. One account per store — PDA(["receipts", store_name]) — holds the menu, the receipts, the running count and the merchant's authority.
MP4 version — one unedited take. The receipt says 24,956 CU before anything is signed; the chain charges 24,956 CU (4X8dCyZU…, slot 439046190). The key never leaves its enclave.
uvx --from "gecko-surf[serve,solana]" gecko-orquestra --program let_me_buy --stdio
Two facts the IDL does not carry, and both break the call:
mark_as_delivered declares its receipts seed as store_name, but that instruction's own arguments are _store_name and receipt_id. The seed names an argument that does not exist, so a deriver resolving seeds by argument name gets nothing for the one seed that selects the store. Gecko binds by seed value.make_purchase the store's authority is writable but not a signer. The buyer pays from ATA(signer, mint); the store is credited at ATA(authority, mint) — same mint, different owner. Derive both from one owner and you have built a purchase that pays the buyer back. Gecko refuses that plan before a builder is ever asked.The prediction tracks state, not a memorised constant. Three purchases at this one storefront were charged 23,789 → 24,183 → 24,956 CU; the last two are the *same product*. Each sale appends a receipt to the store's account, so the program does more work — and the receipt predicted the new number each time it was asked.
Gecko recovers what the surface drops, Orquestra builds the instruction, and the receipt says whether it lands — before any signature.
Control plane, never data plane. Gecko stores surfaces + correctness metadata — never response payloads, user data, or secrets.
Interactive diagrams · llms.txt · Receipt semantics
| Capability | Entry point |
|---|---|
| Serve any API to agents over MCP | gecko serve |
| Scorecard: grade + fixable findings + Playground | gecko report |
| Recover a draft spec from human docs | gecko from-docs |
| First-call-correctness tests for CI | gecko test |
| The surface graph, rendered | gecko graph svg |
| Program Surface: recovered seeds + derive plans | `gecko orquest
只显示了开头部分;其余内容请在仓库中阅读