Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Marketplace of paid HTTP APIs. USDC micropayments via x402 on Base. Non-custodial.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
WALLET_PRIVATE_KEY, WALLET_BUDGET_USD, WALLET_NETWORK, GATEFARE_PAT, GATEFARE_BASE_URLAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"gatefareio": {
"command": "npx",
"args": [
"-y",
"@gatefare/mcp"
],
"env": {
"WALLET_PRIVATE_KEY": "your-value",
"WALLET_BUDGET_USD": "your-value",
"WALLET_NETWORK": "your-value",
"GATEFARE_PAT": "your-value",
"GATEFARE_BASE_URL": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add gatefareio --env WALLET_PRIVATE_KEY=your-value --env WALLET_BUDGET_USD=your-value --env WALLET_NETWORK=your-value --env GATEFARE_PAT=your-value --env GATEFARE_BASE_URL=your-value -- npx -y @gatefare/mcpTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"gatefareio": {
"command": "npx",
"args": [
"-y",
"@gatefare/mcp"
],
"env": {
"WALLET_PRIVATE_KEY": "your-value",
"WALLET_BUDGET_USD": "your-value",
"WALLET_NETWORK": "your-value",
"GATEFARE_PAT": "your-value",
"GATEFARE_BASE_URL": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"gatefareio": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@gatefare/mcp"
],
"env": {
"WALLET_PRIVATE_KEY": "your-value",
"WALLET_BUDGET_USD": "your-value",
"WALLET_NETWORK": "your-value",
"GATEFARE_PAT": "your-value",
"GATEFARE_BASE_URL": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
WALLET_BUDGET_USD envWALLET_NETWORK envGATEFARE_BASE_URL envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 6. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto gatefareio bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: WALLET_PRIVATE_KEY, GATEFARE_PAT
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.1.0) kam vor 6 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Toggl 2.0
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
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.
Toggl 2.0 MCP server for tasks, projects, time entries, and workspace operations.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Give your AI agent a wallet and a marketplace.
@gatefare/mcpis a Model Context Protocol server that connects Claude
Desktop, Cursor, or any MCP-compatible agent to the
Gatefare catalog of paid HTTP APIs. Payments
settle as USDC on Base via the open x402 standard
— no SaaS keys, no subscriptions, no escrow. Non-custodial: signing
happens locally; the private key never leaves your machine.
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Claude / │ MCP stdio │ @gatefare/mcp│ HTTP + x402 │ gatefare.io │ │ Cursor / │ ─────────────► │ (this repo)│ ─────────────► │ proxy + │ │ your agent │ │ │ │ catalog │ └─────────────┘ └──────┬───────┘ └─────────────────┘ │ │ EIP-3009 sign ▼ ┌─────────────┐ │ Base USDC │ └─────────────┘
Claude Desktop — ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": { "gatefare": { "command": "npx", "args": ["-y", "@gatefare/mcp"] } } }
Cursor — ~/.cursor/mcp.json or project-level .cursor/mcp.json:
{
"mcpServers": { "gatefare": { "command": "npx", "args": ["-y", "@gatefare/mcp"] } } }
Restart the client. The agent now has 5 read-only tools — discovery + safety. Try:
*"Search Gatefare for weather APIs."*
Add env to the same config:
{
"mcpServers": { "gatefare": { "command": "npx", "args": ["-y", "@gatefare/mcp"], "env": { "WALLET_PRIVATE_KEY": "0xYOUR_KEY", "WALLET_BUDGET_USD": "5.00" } } } }
Buyer tools (call_api, get_wallet_balance, estimate_cost) become available. The WALLET_BUDGET_USD cap is a runtime safety net — for a hard cap, fund the wallet with only what you're willing to spend.
*"What's London's weather right now? Spend up to $0.001."*
Get a PAT at gatefare.io/dashboard/tokens and add:
"env": {
"GATEFARE_PAT": "gfpat_..." }
Publisher tools (register_api, list_my_apis, update_api, get_revenue, distribute) appear.
*"Publish my API at https://api.example.com/sentiment for $0.001 per call."*
13 tools across 4 domains. Tools auto-register based on which env vars are set — the agent never sees a tool it can't use.
| Tool | Description |
|---|---|
gatefare.search_apis | Full-text search the catalog with filters (price, category, sort) |
gatefare.get_api | Full details for one API by slug or handle/urlName |
gatefare.list_categories | All categories with API counts |
gatefare.suggest | Autocomplete suggestions for a query string |
WALLET_PRIVATE_KEY| Tool | Description |
|---|---|
gatefare.call_api | Make a paid call. Handles 402 → sign → retry automatically |
gatefare.get_wallet_balance | USDC + ETH on Base, plus remaining runtime budget |
gatefare.estimate_cost | Project total cost for N planned calls |
GATEFARE_PAT| Tool | Description |
|---|---|
gatefare.register_api | Publish a new paid API |
gatefare.list_my_apis | Your published APIs with stats |
gatefare.update_api | Edit metadata, price, target URL |
gatefare.get_revenue | Revenue time series + totals |
gatefare.distribute | Trigger on-chain distribute() payout (destructive) |
| Tool | Description |
|---|---|
gatefare.report_abuse | Report a malicious / stolen API (DMCA, fraud, malware…) |
| Var | Default | Required for |
|---|---|---|
GATEFARE_BASE_URL | https://gatefare.io | — (override for self-hosted) |
WALLET_PRIVATE_KEY | — | Any buyer tool |
WALLET_BUDGET_USD | unlimited | Optional spend cap |
WALLET_NETWORK | eip155:8453 | eip155:84532 for Sepolia testnet |
GATEFARE_PAT | — | Any publisher tool |
LOG_LEVEL | info | debug for verbose stderr |
You: *Find me a sub-$0.001 weather API and call it for "Tokyo".*
Claude: *Calling
gatefare.search_apiswithmax_price: 0.001…*
*Found
demo-weatherby @alice at $0.001/call.*
*Calling
gatefare.call_apiwithslug: "demo-weather",query: {city: "Tokyo"}…*
*Tokyo is 22°C, partly cloudy. Paid 0.001 USDC. Receipt:
settled-tx-0x9a…*
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
server = StdioServerParameters( command="npx", args=["-y", "@gatefare/mcp"], env={"WALLET_PRIVATE_KEY": "0x...", "WALLET_BUDGET_USD": "1.00"}, )
async with stdio_client(server) as (r, w): async with ClientSession(r, w) as s: await s.initialize() result = await s.call_tool( "gatefare.call_api", arguments={"slug": "demo-weather", "query": {"city": "Tokyo"}}, ) print(result.content[0].text)
See examples/ for runnable variants: Claude Desktop, Cursor, Python, TypeScript, and a pure-discovery walkthrough.
If you want to pay for x402 APIs from a backend (no agent), use Coinbase's official x402 SDKs — x402-python (PyPI), coinbase/x402/go, …/java, or @x402/fetch. They handle the payment flow; you don't need this MCP server.
If you want to browse the Gatefare catalog from any language, hit the REST API directly: gatefare.io/api/catalog (OpenAPI 3.1 spec).
Full breakdown of which tool fits which use case in docs/integrations.md.
# Run the server in foreground; talks JSON-RPC over stdio.
npx -y @gatefare/mcp
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | \ npx -y @gatefare/mcp
Tool results include isError: true and a structured body { error: , message: , details?: }. Codes are stable — agents can switch on them for retry / surfacing logic.
| Code | Meaning |
|---|---|
INVALID_INPUT | Input failed zod validation |
WALLET_NOT_CONFIGURED | Set WALLET_PRIVATE_KEY for buyer tools |
PAT_NOT_CONFIGURED | Set GATEFARE_PAT for publisher tools |
BUDGET_EXHAUSTED | Runtime budget cap hit |
INSUFFICIENT_BALANCE | Wallet doesn't have enough USDC |
PRICE_TOO_HIGH | Server's price exceeds your max_price |
API_NOT_FOUND | Slug doesn't exist or is suspended |
UPSTREAM_ERROR | Paid API returned non-2xx, or its 402 was malformed |
RATE_LIMITED | Gatefare rate-limited the request |
NETWORK_ERROR | Could not reach Gatefare |
GATEFARE_API_ERROR | Gatefare returned a 4xx / 5xx |
gatefare.call_api { slug: "demo-weather", … }.GET https://gatefare.io/p/demo-weather (no payment yet).accepts: [{network, payTo, maxAmountRequired, …}].transferWithAuthorization for that exact amount and recipient on the configured network.X-Payment header (base64-encoded JSON, x402 v2).The signature is single-use, time-bounded, and never leaves your machine for any purpose other than this exact transfer to this exact payTo. The private key is never logged.
Date.now()-based collisions.^[a-z0-9_-]+$ and URL-encoded; no path traversal. targetUrl blocks file://, localhost, cloud metadata IPs, .local, and .internal hosts at registration time.git clone https://github.com/gatefareio/mcp-server.git
cd mcp-server npm install npm run typecheck npm test # 138 unit tests npm run test:e2e # 10 e2e tests against live gatefare.io (set GATEFARE_E2E=1) npm run build
To use a local checkout in your client config:
npm link
src/
├── index.ts # entry — wires stdio transport ├── server.ts # McpServer instance + tool registration ├── config.ts # env parsing, capability detection ├── client.ts # REST client (wraps fetch) ├── x402.ts # 402 parsing + EIP-3009 signing ├── types.ts # shared types + GatefareError └── tools/ ├── discovery.ts # search_apis, get_api, list_categories, suggest ├── buyer.ts # call_api, get_wallet_balance, estimate_cost ├── publisher.ts # register_api, list_my_apis, update_api, get_revenue, distribute └── safety.ts # report_abuse
tests/
├── config.test.ts # env parsing edges ├── client.test.ts # HTTP client error mapping ├── x402.test.ts # signing + parsing primitives ├── x402-flow.test.ts # full 402 → sign → retry handshake (mocked fetch) ├── server.test.ts # capability-driven tool registration ├── init.test.ts # subprocess: bootstrap, env crashes, secret leakage ├── stdio-protocol.test.ts # stdout pollution + recovery from tool errors ├── stability.test.ts # 100 con
Nur der Anfang wird gezeigt; den Rest findest du im Repo