Point Gecko at an OpenAPI spec; get first-call-correct, auth-hidden agent tools.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
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 β fifteen mainnet transactions, fifteen exact
cost predictions.
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:
Or install once:
Plug into your agent:
Going live is a separate, deliberate step:
Then your agent asks questions, not endpoints:
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 <spec> 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.
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.No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/surf)<a href="https://allmcps.com/mcp/surf"><img src="https://allmcps.com/api/badge/surf?style=directory" alt="Surf on AllMCPs" /></a>