Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Surf

by GeckoVisionversion 0.2.0i★ –iComputer or cloud
Registry nametech.geckovision/surf

Install

Overview

Description from the maker (original English)

Point Gecko at an OpenAPI spec; get first-call-correct, auth-hidden agent tools.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on the maker’s server: what you ask it goes through their server.
  • The registry lists no key to fill in.

You need

  • Runs in the cloudNothing to install; it connects over the internet
  • PyPIPython’s uv installed (for the uvx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Works in Claude on the web, desktop and mobile:

  1. Open Settings → Connectors
  2. Press Add custom connector
  3. Paste the address below and press Add
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Add2https://…3
https://mcp.geckovision.tech/mcp

Or run it on your computer

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "surf": {
      "command": "uvx",
      "args": [
        "gecko-surf"
      ]
    }
  }
}

Run this in your terminal

claude mcp add --transport http surf https://mcp.geckovision.tech/mcp

Or run it on your computer

claude mcp add surf -- uvx gecko-surf

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "surf": {
      "url": "https://mcp.geckovision.tech/mcp"
    }
  }
}

Or run it on your computer

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "surf": {
      "command": "uvx",
      "args": [
        "gecko-surf"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "surf": {
      "type": "http",
      "url": "https://mcp.geckovision.tech/mcp"
    }
  }
}

Or run it on your computer

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "surf": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "gecko-surf"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

ChatGPT connects only to servers on the internet:

  1. Open ChatGPT on the web → Settings → Connectors (Apps)
  2. Press Create or Add (some plans need Developer mode under Advanced first)
  3. Paste the address below, give it a name and save
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Create2https://…3
https://mcp.geckovision.tech/mcp

Menu names can differ slightly by plan and over time.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

We have not read this server’s tool list yet; we check endpoints in rotation.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified against the domain geckovision.tech (the registry checks domain ownership)

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • … Not checked yet

    Endpoint responds

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    Sign-in with OAuth

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    No hidden instructions in tool descriptions

    Not checked yet; we read the tool list when we check the endpoint

Compared with others in Otheri

  • More stars than 0% of the other 32683 servers in this category
  • Published to the registry more recently than 15% of the other 32683 servers in this category
  • Basic checks equal to or better than 100% of the other 32683 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Surf safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.2.0) reached the registry 4 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: Spec Driven Development, Remote Desktop Commander, MCP Server Autocad Lisp Helper

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Spec Driven Development

by formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Runs on your computer★ 440MITUpdated 14 months ago
Install

Remote Desktop Commander

by desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Runs in the cloud★ 211Updated 2 days ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

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).

What Gecko is

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.

Quick start

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

Cursor / VS Code / any MCP client — mcp.json

{ "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.

Why

An OpenAPI says what exists. An IDL says what a program looks like. Neither is enough to act:

  • Docs drift. Working integrations broke twice in 2026 from silent layout changes.
  • IDLs drop facts. A required Pump.fun account never appears in the IDL at all.
  • Agents guess. A wrong guess posts a charge, reverts a transaction, burns fees.

Gecko replaces the guess with a graph:

  • Every edge carries provenance — extracted from the surface, recovered from source, or honestly flagged as unknown. Never fabricated.
  • Every action can be verified first — simulated on a $0 mainnet fork to a receipt: pass, or a classified revert, before any spend.
  • Every failure teaches — outcomes land in a categorical corpus; a drift series flags when a provider ships a change that breaks a working call.
  • Auth is invisible to the agent — keys injected at call time from your keychain. The model never sees a credential.

Under the hood

Most agent-tool layers are thin wrappers. Gecko is a memory substrate, and three of its design choices are deliberately different from the textbook:

ChoiceWhy it matters
Deterministic semantic memory — lexical retrieval, no vector DBthe graph never "approximately" remembers; BM25 and vectors sit behind evidence gates
Self-generated episodic memory — categorical outcomes + a drift seriesGecko re-simulates to create its own episodes; no dependence on your data plane, no payloads stored
Typed procedural memory — plans as executable JSONlanding plans and derive orders a builder can run; text loses the join, ours can't

And the depth is measured, not asserted:

  • The overlay artifact. For every auto-comprehended program, Gecko emits the exact list of facts that could not be derived from any public surface (overlays/) — the value of comprehension, quantified per program.
  • Seven security layers, fail-closed: spec sanitizer · per-tool quarantine · image Skill Guard · SSRF netguard · out-of-band auth anchoring · verdict signing gate · an AST-enforced never-sign boundary.
  • The numbers: 5,043 tests · 64 mainnet transactions, 47/49 predictions exact · 5 paid by a fee relay, the buyer holding no SOL, the last four a USDG→USDC→purchase route · 8 Solana programs wired, 4 differential-proven · 2 live receipt-pairs · −77%/−89% measured context cuts · a 4,534-program catalog listed · 0 auth headers exposed across 14 real specs.

Explore the diagrams: architecture on docs.geckovision.tech (all three views, rendered) · the map in this repo

Proof, not promises

Live, on a mainnet fork, $0:

CaseNaive pathGecko
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.

Use cases

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.
  • In 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.

Architecture

Control plane, never data plane. Gecko stores surfaces + correctness metadata — never response payloads, user data, or secrets.

  1. Ingest — OpenAPI / docs / IDL / program source → sanitized, quarantine-checked.
  2. Comprehend — normalized ops, recovered PDA seeds, generated configs + measured overlays.
  3. Know — the provenance graph (surface, program, cross-API joins).
  4. Project — question-shaped tools over MCP; auth stripped; −77%/−89% context cuts measured on two real specs.
  5. Verify — plan → external builder → simulate → receipt → fail-closed signing gate. Gecko never signs, never broadcasts.
  6. Learn — categorical outcomes → drift series → back into the graph.

Interactive diagrams · llms.txt · Receipt semantics

What you get

CapabilityEntry point
Serve any API to agents over MCPgecko serve
Scorecard: grade + fixable findings + Playgroundgecko report
Recover a draft spec from human docsgecko from-docs
First-call-correctness tests for CIgecko test
The surface graph, renderedgecko graph svg

| Program Surface: recovered seeds + derive plans | `gecko orquest

Only the beginning is shown; read the rest in the repo

Ask PopNx