Skip to main content
Glama
zekebuilds-lab

mcp-l402-gate-example

mcp-l402-gate-example

@powforge/mcp-l402-gate의 작동 방식을 보여주는 최소형 MCP 서버입니다.

bitcoin_data라는 하나의 도구가 mempool.space에서 현재 BTC/USD 가격과 권장 멤풀 수수료를 가져옵니다. 각 호출은 다음 두 가지에 의해 게이팅됩니다:

  1. L402 라이트닝 인보이스 (호출자가 호출당 사토시를 지불).

  2. 공개 PowForge 오라클에 대한 Depth-of-Identity 점수 조회. 임계값 미만이면 지불을 해도 통과할 수 없습니다.

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 인보이스를 유지하면서 두 번째 확인을 추가합니다. 마카룬이 검증되면 게이트는 호출자의 퍼블릭 키에 대해 DoI 오라클을 호출하고, Schnorr 서명된 점수를 돌려받아 MIN_SCORE와 비교합니다. 점수는 4가지 차원(사회적, 접근, 보증, 경제적)에 걸쳐 관찰 가능한 돌이킬 수 없는 작업으로 구성되므로, 새로운 시빌(sybil) 공격자가 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