Skip to main content
Glama
zekebuilds-lab

mcp-l402-gate-example

mcp-l402-gate-example

@powforge/mcp-l402-gateの動作を示す最小限のMCPサーバーです。

bitcoin_dataというツールが1つあり、現在のBTC/USD価格とmempool.spaceからの推奨メモリプール手数料を取得します。各呼び出しは以下によってゲート制御されます:

  1. L402 Lightningインボイス(呼び出し元が呼び出しごとにサトシを支払います)。

  2. 公開PowForgeオラクルに対するDepth-of-Identity(DoI)スコアの照会。しきい値を下回る場合、支払いを行っても通過できません。

L402単体では、呼び出し元が支払ったことを証明するだけです。L402 + DoIは、彼らが支払ったこと、そしてセッションをまたいで存続し、偽造に不可逆的な作業コストがかかる公開鍵ごとのレピュテーションを保持していることを証明します。この後半部分は、ほとんどのMCP課金キットが省略している部分です。

クイックスタート

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

サーバーは起動時にツールURLとオラクルをログ出力します。デフォルトのポートは3100です。

Related MCP server: l402-kit-mcp

curlでテストする

最初の呼び出しには認証がないため、ゲートはインボイス付きの402を返します:

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

期待されるレスポンス:

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

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

invoiceフィールドを支払い(任意のLNウォレット)、プリイメージを取得してから再試行してください:

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 '{}'

BTC価格、メモリプール手数料の見積もり、および呼び出し元のDoIスコアが返されます。

マニフェストは、ツールカタログをイントロスペクトするMCPクライアント向けにも公開されています:

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

設定

変数

説明

必須

デフォルト

GATE_HMAC_SECRET

L402マカロン署名用のHMACキー。openssl rand -hex 32で生成してください。

はい

-

LNBITS_URL

LNBitsインスタンスのベースURL。

はい

-

LNBITS_INVOICE_KEY

LNBitsのインボイス/読み取りキー。管理者キーは絶対に使用しないでください。

はい

-

ORACLE_URL

DoIオラクルのベースURL。

いいえ

https://identity.powforge.dev

PORT

HTTPポート。

いいえ

3100

SATS_AMOUNT

呼び出しごとに請求されるサトシ。

いいえ

1

MIN_SCORE

ゲートを通過するための最小DoI複合スコア。0はアイデンティティゲートを無効にします。

いいえ

0

DoIスコアのしきい値

これらはオラクルがrankとして返すものと同じバケットです。誤った呼び出しのコストに見合うものを選んでください:

MIN_SCORE

ランク

適した用途

0

unknown

純粋なペイウォール。アイデンティティは重要ではありません。

10

emerging

初回呼び出しの悪用を防ぐ。ほとんどの公開MCPツールに適したデフォルト値。

40

active

ツールが実際のGPUを消費する、または高コストな副作用がある場合。

100

established

コンプライアンスに敏感な、またはシングルテナントSaaSスタイルのエンドポイント。

200

trusted

高い信頼性を必要とする管理者ツール。

ゲートの仕組み

ゲートがない場合、402 + マカロンフローは呼び出し元が10サトシを支払ったことを証明するだけです。新規の攻撃者ウォレットも同じ10サトシを支払います。これは単なるワイヤーフォーマットであり、悪用に対する制御は弱いです。

@powforge/mcp-l402-gateはL402インボイスを保持しつつ、2つ目のチェックを追加します。マカロンが検証されると、ゲートは呼び出し元の公開鍵についてDoIオラクルを呼び出し、Schnorr署名されたスコアを取得してMIN_SCOREと比較します。スコアは4つの次元(ソーシャル、アクセス、証明、経済)にわたる観測可能な不可逆的作業から構成されているため、新規のシビル攻撃者が1分でスコアを稼ぐことはできません。

完全な失敗モードの表は@powforge/mcp-l402-gate READMEにあります。

ファイル

  • server.js - MCPサーバー、約110行。

  • .env.example - .envにコピーして記入してください。

  • package.json - expressおよび@powforge/mcp-l402-gateに依存しています。

リンク

ライセンス

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