Skip to main content
Glama
zekebuilds-lab

mcp-l402-gate-example

mcp-l402-gate-example

Minimaler MCP-Server, der @powforge/mcp-l402-gate in Aktion zeigt.

Ein Tool, bitcoin_data, ruft den aktuellen BTC/USD-Preis sowie empfohlene Mempool-Gebühren von mempool.space ab. Jeder Aufruf ist wie folgt geschützt:

  1. Eine L402 Lightning-Rechnung (der Aufrufer zahlt Sats pro Aufruf).

  2. Eine Depth-of-Identity-Score-Abfrage gegen das öffentliche PowForge-Orakel. Unterhalb des Schwellenwerts gewährt die Zahlung keinen Zugriff.

L402 allein beweist, dass ein Aufrufer bezahlt hat. L402 + DoI beweist, dass er bezahlt hat und eine Reputationsbewertung pro Pubkey besitzt, die über Sitzungen hinweg Bestand hat und deren Fälschung irreversible Arbeit erfordert. Dieser zweite Teil ist der Aspekt, den die meisten MCP-Abrechnungs-Kits auslassen.

Schnellstart

git clone https://github.com/zekebuilds-lab/mcp-l402-gate-example
cd mcp-l402-gate-example
cp .env.example .env       # fill in GATE_HMAC_SECRET and LNBits creds
npm install
npm start

Der Server protokolliert beim Start die Tool-URL und das Orakel. Der Standard-Port ist 3100.

Related MCP server: l402-kit-mcp

Testen mit curl

Der erste Aufruf hat keine Authentifizierung, daher gibt das Gate einen 402-Fehler mit einer Rechnung zurück:

curl -i -X POST http://localhost:3100/tools/bitcoin_data \
  -H 'Content-Type: application/json' \
  -H 'X-Caller-Pubkey: 02a1b2c3...your-hex-pubkey' \
  -d '{}'

Erwartete Antwort:

HTTP/1.1 402 Payment Required
WWW-Authenticate: L402 macaroon="...", invoice="lnbc1..."
Content-Type: application/json

{
  "error": "payment required",
  "macaroon": "...",
  "invoice": "lnbc1...",
  "payment_hash": "..."
}

Bezahlen Sie das Feld invoice (mit einer beliebigen LN-Wallet), erfassen Sie das Preimage und versuchen Sie es erneut:

curl -i -X POST http://localhost:3100/tools/bitcoin_data \
  -H 'Content-Type: application/json' \
  -H 'X-Caller-Pubkey: 02a1b2c3...your-hex-pubkey' \
  -H 'Authorization: L402 <macaroon>:<preimage>' \
  -d '{}'

Sie erhalten den BTC-Preis, die Schätzungen für die Mempool-Gebühren und den DoI-Score des Aufrufers zurück.

Das Manifest wird ebenfalls für MCP-Clients bereitgestellt, die Tool-Kataloge untersuchen:

curl http://localhost:3100/manifest.json

Konfiguration

Variable

Beschreibung

Erforderlich

Standard

GATE_HMAC_SECRET

HMAC-Schlüssel zum Signieren von L402-Macaroons. Generieren mit openssl rand -hex 32.

ja

-

LNBITS_URL

Basis-URL Ihrer LNBits-Instanz.

ja

-

LNBITS_INVOICE_KEY

LNBits-Rechnungs-/Lese-Schlüssel. Verwenden Sie niemals den Admin-Schlüssel.

ja

-

ORACLE_URL

Basis-URL des DoI-Orakels.

nein

https://identity.powforge.dev

PORT

HTTP-Port.

nein

3100

SATS_AMOUNT

Sats, die pro Aufruf berechnet werden.

nein

1

MIN_SCORE

Minimaler zusammengesetzter DoI-Score, um das Gate zu passieren. 0 deaktiviert das Identitäts-Gating.

nein

0

DoI-Score-Schwellenwerte

Dies sind dieselben Kategorien, die das Orakel als rank zurückgibt. Wählen Sie diejenige, die dazu passt, wie teuer ein falscher Aufruf ist:

MIN_SCORE

Rang

Eignung

0

unbekannt

Reine Paywall. Identität spielt keine Rolle.

10

aufstrebend

Missbrauch beim ersten Aufruf schadet. Sinnvoller Standard für die meisten öffentlichen MCP-Tools.

40

aktiv

Das Tool verbraucht echte GPU-Leistung oder hat teure Nebeneffekte.

100

etabliert

Compliance-sensible oder Single-Tenant-SaaS-artige Endpunkte.

200

vertrauenswürdig

Hochvertrauenswürdige Admin-Tools.

Funktionsweise des Gates

Ohne das Gate beweist ein 402 + Macaroon-Flow, dass der Aufrufer 10 Sats bezahlt hat. Eine neue Angreifer-Wallet zahlt dieselben 10 Sats. Das ist ein korrektes Wire-Format, aber ein schwacher Schutz gegen Missbrauch.

@powforge/mcp-l402-gate behält die L402-Rechnung bei und fügt eine zweite Prüfung hinzu: Wenn das Macaroon verifiziert ist, ruft das Gate das DoI-Orakel für den Pubkey des Aufrufers ab, erhält einen Schnorr-signierten Score zurück und vergleicht ihn mit MIN_SCORE. Der Score setzt sich aus beobachtbarer, irreversibler Arbeit in vier Dimensionen zusammen (sozial, Zugriff, Bürgschaft, wirtschaftlich), sodass ein neuer Sybil-Angreifer ihn nicht in einer Minute manipulieren kann.

Die vollständige Tabelle der Fehlermodi finden Sie in der @powforge/mcp-l402-gate README.

Dateien

  • server.js - der MCP-Server, ca. 110 Zeilen.

  • .env.example - kopieren Sie diese nach .env und füllen Sie sie aus.

  • package.json - abhängig von express und @powforge/mcp-l402-gate.

Lizenz

MIT.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server that enables AI agents to make autonomous Bitcoin Lightning Network payments using the L402 protocol. Agents can pay for API access, purchase resources, and complete transactions without human intervention — invoice comes in, sats go out, done.
    17
    9
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for l402-kit — enables AI agents (Claude, Cursor, etc.) to autonomously pay Bitcoin Lightning-protected APIs. Tools: l402_fetch, l402_balance, l402_spending_report. Run with: npx l402-kit-mcp
    4
    86 npm
    4
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server that gates API calls to AI agents using proof-of-work (free) or Lightning payment (3 sats), providing challenge, verify, and status tools for per-call authentication without accounts.
    3
    58 npm
    1
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    MCP server offering 26 Lightning-paid tools for Bitcoin mempool intelligence and sovereign on-prem AI inference, with no third-party APIs and pay-per-call in sats.
    26
    11 npm
    1
    MIT