Skip to main content
Glama

LiveAuth MCP 서버

npm version MIT license L402 MCP

AI 에이전트와 MCP 도구를 위한 인증, 호출당 과금(페이퍼콜 미터링), 서명된 영수증: 비트코인 네이티브, 라이트닝 기반, L402 호환.

이 MCP 서버는 모든 AI 에이전트가 작업 증명(proof-of-work)(무료, 계정 불필요) 또는 라이트닝 네트워크 마이크로결제(sats)를 통해 API에 인증한 다음, 호출당 과금, 멱등 수익 이벤트, 감사자가 오프라인에서 검증할 수 있는 HMAC 서명 영수증으로 후속 도구 호출을 미터링하고 수익화할 수 있게 해줍니다.

다음과 같은 경우에 사용하세요:

  • API 또는 MCP 도구를 실제 컴퓨팅 비용 또는 실제 sats 뒤에 게이트하세요(CAPTCHA가 아닌 설계상 안티스팸).

  • 계정을 만들지 않고 AI 에이전트에게 호출당 과금하세요.

  • 모든 유료 도구 호출에 대해 변조 방지 감사 추적(서명된 mcp-call-receipt-v1)을 발급하세요.

  • 선불 MCP 세션을 위해 라이트닝 기반 L402 번들 액세스를 제공하세요.

5초 만에 체험하기 — 계정 없음, API 키 없음:

npx @liveauth-labs/mcp-server

구성 없이 서버는 LiveAuth의 익명 데모 프로젝트와 실제 PoW 흐름을 사용합니다. 특정 프로젝트의 정책, 가격 또는 귀속(attribution)이 필요할 때만 LIVEAUTH_API_KEY를 추가하세요.


사용 가능한 도구 (Glama / MCP 자동 발견)

도구

용도

liveauth_mcp_start

세션을 시작합니다. PoW 챌린지, 라이트닝 인보이스 또는 L402 번들 힌트를 반환합니다.

liveauth_mcp_confirm

해결된 PoW 챌린지, 결제된 라이트닝 인보이스 또는 L402 macaroon을 제출 → JWT를 받습니다.

liveauth_mcp_charge

호출 후 사용량을 미터링합니다. toolName과 함께 사용하면 등록된 도구 가격을 확인하고 유료 수익 이벤트를 기록합니다.

liveauth_mcp_refresh

재인증 없이 리프레시 토큰을 새 JWT로 교환합니다.

liveauth_mcp_status

세션/결제 상태를 폴링합니다(라이트닝 확인, 만료).

liveauth_mcp_lnurl

세션의 BOLT11 인보이스를 가져옵니다(lnget 호환).

liveauth_mcp_usage

남은 예산, 사용된 호출 수, 속도 제한 창을 조회합니다.

전체 매개변수 및 응답 스키마는 아래 도구 참조에 있습니다.


Related MCP server: Agent Receipts

5분 빠른 시작

옵션 1 — 자격 증명 없는 PoW (계정 없음, 키 없음, 지갑 없음)

npx @liveauth-labs/mcp-server

MCP 클라이언트에서 liveauth_mcp_start를 호출한 다음, 반환된 quoteId만 사용하여 liveauth_mcp_confirm을 호출하세요. 패키지는 기존 PoW 솔버를 로컬에서 재사용하며 LiveAuth API는 단기 세션 JWT를 발급하기 전에 서명된 챌린지를 검증합니다.

옵션 2 — 프로덕션 모드

  1. liveauth.app에서 API 키를 받으세요.

  2. Claude Desktop의 claude_desktop_config.json에 추가하세요:

{
  "mcpServers": {
    "liveauth": {
      "command": "npx",
      "args": ["-y", "@liveauth-labs/mcp-server"],
      "env": {
        "LIVEAUTH_API_BASE": "https://api.liveauth.app",
        "LIVEAUTH_API_KEY": "la_pk_your_public_key"
      }
    }
  }
}
  1. Claude를 다시 시작하세요. 완료입니다.

옵션 3 — 프로그래매틱 (CLI / SDK)

export LIVEAUTH_API_KEY=la_pk_xxx
npx @liveauth-labs/mcp-server

이 패키지는 TypeScript SDK이기도 합니다 — 아래 SDK 사용법을 참조하세요. CLI 바이너리는 liveauth-mcp입니다.

왜 LiveAuth인가?

API 제공자 / 도구 개발자에게:

  • 프로토콜 계층에서 봇을 차단하세요. PoW와 라이트닝 sats는 재사용 불가능하고, 피싱 불가능하며, 사용자 계정이 필요 없습니다.

  • sats 단위로 호출당 과금하세요. 감사자, 고객 또는 회계사에게 보여줄 수 있는 영수증에 서명합니다.

  • 한 줄(createMcpGate)로 모든 MCP 도구를 래핑하면 도구별 수익, 도구별 최소/최대 가격, 멱등 재시도를 얻을 수 있습니다.

AI 에이전트 / 에이전트 빌더에게:

  • 유료 API에 대한 허가 없는 액세스 — PoW를 풀거나 sats를 지불하고 JWT를 받으세요. 가입 없음, 이메일 없음, OAuth 절차 없음.

  • 에이전트 액세스에 PoW, 라이트닝 인보이스 또는 L402 번들 macaroon을 사용하세요.

  • 프로젝트는 구성 시 사용자 지정 라이트닝 노드를 통해 정산할 수 있습니다. 그렇지 않으면 결제는 LiveAuthCore 구성 노드를 사용합니다.

중요한 수학: 도구가 봇에 의해 스크래핑되고 있다면, 호출당 1 sat를 청구하는 것만으로 스크래퍼가 수익성을 잃게 만들 수 있습니다. 우리는 이를 *공격 비용 경제학(cost-of-attack economics)*이라고 부르며, 이것이 우리가 존재하는 이유입니다.

설치

npm install -g @liveauth-labs/mcp-server

또는 npx로 직접 사용:

npx @liveauth-labs/mcp-server

Goose

LiveAuth for Goose는 다른 모든 클라이언트와 동일한 표준 기반 stdio MCP 서버를 사용합니다 — Goose 래퍼, 데몬 또는 중복 인증 런타임이 없습니다.

Goose에 설치

또는 공식 딥 링크와 현재 대체 방법을 출력하세요:

npx @liveauth-labs/mcp-server setup goose

일회성 Goose CLI 세션의 경우:

goose session --with-extension "liveauth:npx -y @liveauth-labs/mcp-server"

딥 링크를 사용할 수 없을 때의 수동 Goose stdio 구성:

extensions:
  liveauth:
    type: stdio
    name: LiveAuth
    enabled: true
    cmd: npx
    args: ["-y", "@liveauth-labs/mcp-server"]
    env_keys: []
    envs: {}
    timeout: 300

기존 Goose 구성을 파괴적으로 편집하지 마세요. 딥 링크 또는 goose configure를 선호하세요. 나중에 프로젝트 구성을 추가하는 경우 공유 일반 텍스트 YAML이 아닌 Goose의 확장 비밀 설정을 통해 입력하세요.

Goose 빠른 테스트

Goose에게 물어보세요:

LiveAuth를 사용하여 기본 인증 흐름을 시작하세요. 반환된 견적을 확인한 다음 내 LiveAuth 사용량을 보여주세요.

초기 흐름은 익명 데모 프로젝트의 PoW 챌린지를 사용하며 지갑이 필요 없습니다. 프로젝트 공개 키는 선택 사항입니다:

변수

설정 시점

LIVEAUTH_API_KEY

프로젝트별 정책, 가격 및 귀속.

LIVEAUTH_API_BASE

https://api.liveauth.app 대신 자체 호스팅 LiveAuth API.

LIVEAUTH_DEMO=true

이전의 로컬 시뮬레이션 라이트닝 데모에 명시적으로 옵트인.

유료 흐름이 요청되면 도구 결과는 기존 인보이스 필드를 유지하면서 휴대용 구조화 데이터도 포함합니다:

{
  "lightning": {
    "invoice": "lnbc...",
    "lightningUri": "lightning:lnbc...",
    "amountSats": 21,
    "expiresAt": "2030-03-17T17:46:40.000Z",
    "status": "pending"
  }
}

MCP Apps를 지원하는 클라이언트는 포함된 QR, Open Wallet 작업, 만료 시간, 실시간 결제됨/대기 중/만료됨 상태를 렌더링할 수 있습니다. 다른 클라이언트는 JSON과 QR 이미지 콘텐츠를 일반 MCP 결과로 받습니다.

Goose 문제 해결

  • 링크가 열리지 않으면 npx @liveauth-labs/mcp-server setup goose를 실행하고 일회성 세션 또는 수동 대체 방법을 사용하세요.

  • npx를 사용할 수 없으면 최신 Node.js 릴리스(Node 18 이상)를 설치하세요.

  • 제공된 프로젝트 키가 거부되면 키를 제거하여 익명 PoW 흐름을 확인하세요. 유효하지 않거나 해지된 키는 의도적으로 데모로 대체되지 않습니다.

  • 라이트닝 인보이스가 만료되면 liveauth_mcp_start를 다시 호출하여 새 견적을 받으세요.

  • 리프레시 토큰과 비공개 자격 증명을 로그와 일반 텍스트 구성에 남기지 마세요.

LiveAuth는 에이전트가 모든 도구에 사전에 영구 자격 증명을 프로비저닝할 필요 없이 런타임에 권한을 획득할 수 있게 해줍니다.

SDK 사용법

이 패키지는 TypeScript/JavaScript SDK로도 가져올 수 있습니다. 패키지를 가져와도 stdio MCP 서버가 시작되지 않습니다. CLI는 liveauth-mcp 바이너리에 있습니다.

클라이언트 인증 헬퍼

import { createMcpClient } from '@liveauth-labs/mcp-server';

const liveauth = createMcpClient({
  publicKey: 'la_pk_xxx',
  baseUrl: 'https://api.liveauth.app',
  onInvoice(invoice) {
    // Render invoice.bolt11 as a QR code for a paid Lightning test.
    console.log(invoice.bolt11);
  },
});

const session = await liveauth.start();
const token = await liveauth.confirm(session);

console.log(token.jwt);

클라이언트는 확인된 JWT를 저장하고, 리프레시 토큰이 반환되면 만료 전에 갱신하며, liveauth.token을 통해 현재 토큰을 노출합니다. 앱이 종료될 때 liveauth.destroy()를 호출하여 토큰 상태와 갱신 타이머를 정리하세요.

실제 유료 인보이스를 요구하려면:

const session = await liveauth.start({ forceLightning: true });
console.log(session.invoice?.bolt11);

// Poll this after the invoice is paid.
const token = await liveauth.confirmLightning(session);

서버 게이트 헬퍼

import { createMcpGate } from '@liveauth-labs/mcp-server';

const gate = createMcpGate({
  publicKey: 'la_pk_xxx',
  baseUrl: 'https://api.liveauth.app',
});

const result = await gate.invoke(
  jwtFromYourTransport,
  { message: 'hello' },
  async (input, context) => ({
    content: [{ type: 'text', text: input.message }],
    charge: context.liveAuth.charge,
  }),
  {}
);

gate.invoke(...)는 JWT를 검증하고, 구성된 sats 비용 또는 백엔드 프로젝트 기본값을 청구하며, context.liveAuth를 핸들러에 전달합니다. 이전 이름인 gate.gateTool(...)도 계속 지원됩니다.

유료 도구 귀속

MCP 서버에 등록된 LiveAuth 도구 ID가 있으면 게이트를 만들 때 toolId를 전달하세요. 그러면 청구가 다음으로 전달됩니다:

POST /api/mcp/tools/{toolId}/charge

레거시 일반 엔드포인트 대신:

POST /api/mcp/charge

등록된 도구 슬러그/이름을 toolName으로 전달할 수도 있습니다. 이 모드에서는 청구가 본문에 도구 ID를 포함하여 일반 엔드포인트로 전달됩니다:

POST /api/mcp/charge

도구 청구는 동일한 세션 예산 확인을 유지하면서 총 sats, LiveAuth 플랫폼 수수료, 개발자 순 sats, 도구 메서드 이름, 결제 프로젝트/세션/토큰, 메타데이터 및 멱등성 키가 포함된 불변 수익 이벤트도 기록합니다. costSats가 생략되면 LiveAuthCore는 등록된 도구의 기본 가격을 사용합니다. toolId 또는 toolName이 없으면 프로젝트의 전역 MCP 가격으로 대체됩니다.

등록된 도구는 유료 호출 웹훅 URL을 가질 수도 있습니다. 성공적인 새 유료 호출마다 LiveAuthCore는 도구 ID, 총/플랫폼/순 sats, 수익 이벤트 ID, 메타데이터 및 서명된 영수증이 포함된 liveauth.mcp.tool.paid_call 웹훅을 큐에 넣습니다. 도구 웹훅 URL이 비어 있으면 LiveAuthCore는 프로젝트의 웹훅 URL로 대체합니다. 멱등 재시도는 중복을 큐에 넣지 않습니다.

import { createMcpGate } from '@liveauth-labs/mcp-server';

const gate = createMcpGate({
  publicKey: process.env.LIVEAUTH_PUBLIC_KEY!,
  baseUrl: process.env.LIVEAUTH_API_URL ?? 'https://api.liveauth.app',
  toolName: 'paid-research-tool',
});

const result = await gate.invoke(
  jwtFromYourTransport,
  { url: 'https://example.com' },
  async (input, context) => {
    const page = await fetch(input.url).then(r => r.text());

    return {
      text: page,
      revenueEventId: context.liveAuth.charge.revenueEventId,
      receipt: context.liveAuth.charge.receipt,
      netSats: context.liveAuth.charge.netSats,
    };
  },
  { requestId: 'req_123' },
  {
    toolMethodName: 'web_fetch',
    idempotencyKey: 'req_123',
    agentId: 'agent_abc',
    metadata: {
      urlHost: new URL('https://example.com').hostname,
    },
  }
);

toolId 또는 toolName이 설정되면 GateToolOptions는 다음을 지원합니다:

옵션

용도

costSats

이 호출에 청구할 선택적 sats. 생략하면 등록된 도구 가격 또는 프로젝트 전역 가격을 사용합니다.

toolName

일반 엔드포인트 사용 시 호출별 도구 슬러그/이름 재정의(선택 사항).

toolMethodName

web_fetch 또는 search와 같은 도구 내 메서드.

idempotencyKey

재시도 안전 키. 동일한 도구에 재사용하면 이중 청구 대신 원래 수익 이벤트와 서명된 영수증을 반환합니다.

agentId

보고용 선택적 호출자/에이전트 식별자.

metadata

감사 컨텍스트용 작은 JSON 객체. 개인 도구 출력을 여기에 저장하지 마세요.

도구 청구 응답에는 일반 예산 카운터와 수익 회계가 포함됩니다:

{
  "status": "ok",
  "callsUsed": 3,
  "satsUsed": 15,
  "grossSats": 5,
  "platformFeeSats": 1,
  "netSats": 4,
  "feeBasisPoints": 500,
  "revenueEventId": "event-guid",
  "toolId": "tool-guid",
  "toolName": "Paid Research Tool",
  "toolSlug": "paid-research-tool",
  "receipt": {
    "version": "mcp-call-receipt-v1",
    "payload": "base64url-canonical-json",
    "signature": "base64url-hmac-sha256",
    "signatureAlgorithm": "HMAC-SHA256",
    "keyId": "liveauth-mcp-receipt-v1",
    "body": {
      "receiptId": "mcp_receipt_eventguid",
      "revenueEventId": "event-guid",
      "mcpToolId": "tool-guid",
      "toolName": "Paid Research Tool",
      "toolSlug": "paid-research-tool",
      "toolMethodName": "web_fetch",
      "grossSats": 5,
      "platformFeeSats": 1,
      "netSats": 4,
      "idempotencyKey": "req_123"
    }
  }
}

영수증은 유료 도구 청구에 대해 LiveAuthCore가 반환하는 서명된 호출별 감사 아티팩트입니다. 청구 증명 또는 추후 조정이 필요할 때 도구 결과와 함께 저장하세요.

toolId 또는 toolName이 구성되지 않으면 SDK는 이전 버전과의 호환성을 위해 /api/mcp/charge를 계속 사용하여 사용량을 미터링합니다.

구성

Claude Desktop

claude_desktop_config.json에 추가하세요:

{
  "mcpServers": {
    "liveauth": {
      "command": "npx",
      "args": ["-y", "@liveauth-labs/mcp-server"],
      "env": {
        "LIVEAUTH_API_BASE": "https://api.liveauth.app",
        "LIVEAUTH_API_KEY": "la_pk_your_public_key"
      }
    }
  }
}

자격 증명 없는 모드: LIVEAUTH_API_KEY를 생략하면 서버는 프로젝트 헤더 없이 일반 MCP 엔드포인트를 호출합니다. LiveAuth는 구성된 익명 데모 프로젝트를 바인딩하고 서명된 PoW 챌린지를 반환하며 일반 검증, JWT, 속도 제한 및 미터링 경계를 유지합니다. LIVEAUTH_DEMO=true는 이전의 로컬 시뮬레이션 라이트닝 미리보기에 대한 명시적 옵트인으로 유지됩니다.

기타 환경 변수:

변수

기본값

용도

LIVEAUTH_API_KEY

(설정 안 됨)

LiveAuth 프로젝트 공개 키(la_pk_…).

LIVEAUTH_API_BASE

https://api.liveauth.app

자체 호스팅 LiveAuth용 재정의.

LIVEAUTH_DEMO

false

레거시 로컬 시뮬레이션 라이트닝 데모를 명시적으로 사용.

기타 MCP 클라이언트

서버는 stdio(JSON-RPC 2.0)를 사용합니다. 다음으로 시작하세요:

liveauth-mcp

또한 MCP 호환 클라이언트(Cursor, VS Code, ChatGPT, Windsurf, Continue, Cline)와도 작동합니다.

도구 참조

각 MCP 도구의 전체 스키마입니다. 각 도구는 JSON-RPC 2.0과 호환되며 src/index.test.tssrc/cli.test.ts에서 테스트됩니다.

liveauth_mcp_start

새 LiveAuth MCP 세션을 시작합니다. 기본적으로 PoW 챌린지를 반환하거나, forceLightning=true인 경우 Lightning 인보이스를 반환합니다.

매개변수:

  • forceLightning (boolean, 선택): true인 경우 PoW 챌린지 대신 Lightning 인보이스를 요청합니다.

  • forceL402 (boolean, 선택): L402 번들 macaroon으로 확인해야 하는 세션을 시작합니다.

반환값 (PoW):

{
  "quoteId": "uuid-of-session",
  "powChallenge": {
    "projectId": "guid",
    "projectPublicKey": "la_pk_...",
    "challengeHex": "a1b2c3...",
    "targetHex": "0000ffff...",
    "difficultyBits": 18,
    "expiresAtUnix": 1234567890,
    "signature": "sig..."
  },
  "invoice": null
}

반환값 (Lightning):

{
  "quoteId": "uuid-of-session",
  "powChallenge": null,
  "invoice": {
    "bolt11": "lnbc...",
    "amountSats": 50,
    "expiresAtUnix": 1234567890,
    "paymentHash": "abc123..."
  },
  "lightning": {
    "invoice": "lnbc...",
    "lightningUri": "lightning:lnbc...",
    "amountSats": 50,
    "expiresAt": "2009-02-13T23:31:30.000Z",
    "expiresAtUnix": 1234567890,
    "status": "pending"
  }
}

반환값 (L402 번들):

{
  "quoteId": "uuid-of-session",
  "powChallenge": null,
  "invoice": null,
  "authHint": "l402_bundle"
}

liveauth_mcp_confirm

해결된 proof-of-work 챌린지를 제출하거나, 패키지가 캐시된 챌린지를 해결하도록 하거나, Lightning 결제를 폴링하거나, L402 macaroon을 제시하여 JWT 인증 토큰을 받습니다.

매개변수:

  • quoteId (string): 시작 응답의 quoteId

  • challengeHex (string, 선택, PoW 전용): 시작 응답의 challenge hex

  • nonce (number, 선택, PoW 전용): PoW 챌린지를 해결하는 nonce

  • hashHex (string, 선택, PoW 전용): 결과 해시(projectPublicKey:challengeHex:nonce의 sha256)

  • expiresAtUnix (number, 선택, PoW 전용): 챌린지의 만료 타임스탬프

  • difficultyBits (number, 선택, PoW 전용): 챌린지의 난이도 비트

  • signature (string, 선택, PoW 전용): 챌린지의 서명

  • macaroon (string, L402 전용): L402 번들 클레임 흐름에서 반환된 번들 macaroon

챌린지가 이 MCP 서버에서 온 경우, quoteId만으로 confirm을 호출하면 패키지의 기존 PoW 솔버를 재사용합니다. 명시적 솔루션 필드는 호환성을 위해 계속 지원됩니다.

반환값:

{
  "jwt": "eyJhbGc...",
  "expiresIn": 600,
  "remainingBudgetSats": 10000,
  "refreshToken": "abc123def456..."
}

참고: refreshToken을 안전하게 저장하세요. MCP 도구 데이터로 반환되지만 stderr나 애플리케이션 로그에는 절대 기록되지 않습니다. 재인증 없이 새 JWT를 받으려면 liveauth_mcp_refresh를 사용하세요.

liveauth_mcp_charge

인증된 호출 후 API 사용량을 측정합니다. 번들된 MCP 서버는 일반 /api/mcp/charge 엔드포인트를 호출합니다. toolName을 제공하면 LiveAuth가 등록된 도구를 확인하고, 구성된 가격을 적용하며, 유료 도구 수익 이벤트를 생성합니다. toolName을 생략하면 이전 버전과 호환되는 일반 측정이 유지됩니다.

매개변수:

  • callCostSats (number, 선택): API 호출 비용(sats). 생략하면 백엔드 가격을 사용합니다.

  • toolName (string, 선택): 도구별 가격 책정 및 귀속을 위한 등록된 MCP 도구 slug/이름.

반환값:

{
  "status": "ok",
  "callsUsed": 5,
  "satsUsed": 15
}

예산을 초과한 경우:

{
  "status": "deny",
  "callsUsed": 100,
  "satsUsed": 1000,
  "reason": "budget_exceeded"
}

liveauth_mcp_status

MCP 세션의 상태를 확인합니다. Lightning 결제 확인을 폴링하는 데 사용합니다.

매개변수:

  • quoteId (string): 시작 응답의 quoteId

반환값:

{
  "quoteId": "uuid-of-session",
  "status": "pending",
  "paymentStatus": "pending",
  "expiresAt": "2026-02-17T12:00:00Z"
}

paymentStatus가 "paid"이면 세션이 확인된 것입니다. JWT를 받으려면 liveauth_mcp_confirm을 다시 호출하세요.

liveauth_mcp_lnurl

세션의 Lightning 인보이스를 가져옵니다(lnget 호환). 모든 Lightning 지갑으로 결제할 수 있도록 BOLT11 인보이스를 검색하는 데 사용합니다.

매개변수:

  • quoteId (string): 시작 응답의 quoteId

반환값:

{
  "pr": "lnbc2100n1...",
  "routes": []
}

참고: lnget 및 기타 Lightning 결제 도구와 호환됩니다. liveauth_mcp_confirm이 "payment pending"을 반환할 때 인보이스를 폴링하는 데 사용하세요.

liveauth_mcp_usage

요금을 부과하지 않고 현재 사용량과 남은 예산을 조회합니다. API 호출 전에 상태를 확인하는 데 사용합니다.

매개변수: (필수 없음)

반환값:

{
  "status": "active",
  "callsUsed": 5,
  "satsUsed": 15,
  "maxSatsPerDay": 10000,
  "remainingBudgetSats": 9985,
  "maxCallsPerMinute": 60,
  "expiresAt": "2026-02-17T12:00:00Z",
  "dayWindowStart": "2026-02-17T00:00:00Z"
}

liveauth_mcp_refresh

재인증 없이 JWT 토큰을 갱신합니다. confirm에서 반환된 refreshToken을 사용하여 현재 토큰이 만료될 때 새 JWT를 받습니다.

매개변수:

  • refreshToken (string): confirm 응답의 refreshToken

반환값:

{
  "jwt": "eyJhbGc...",
  "expiresIn": 600,
  "remainingBudgetSats": 9985
}

참고: refreshToken을 안전하게 저장하세요. 새 PoW를 해결하거나 추가 Lightning 결제 없이 세션을 연장하려면 필요합니다.

사용 예시

PoW 인증

  1. liveauth_mcp_start를 호출하여 PoW 챌린지와 quoteId를 받습니다.

  2. quoteId로 liveauth_mcp_confirm을 호출합니다. MCP 서버가 기존 패키지 솔버로 캐시된 챌린지를 해결합니다.

  3. 고급 클라이언트는 명시적 솔루션(hash = sha256(projectPublicKey:challengeHex:nonce), 여기서 hash < targetHex)을 제출할 수도 있습니다.

  4. API 요청에 Authorization: Bearer <token> 헤더로 JWT를 사용합니다.

  5. 각 일반 API 호출 후 liveauth_mcp_charge를 호출 비용과 함께 호출하거나, 생략하여 프로젝트 전역 MCP 가격을 사용합니다.

  6. 수익화된 MCP 도구의 경우 createMcpGate({ toolId }) 또는 createMcpGate({ toolName })으로 핸들러를 감싸 각 호출이 수익 이벤트와 서명된 영수증을 생성하도록 합니다.

Lightning 인증

  1. forceLightning: trueliveauth_mcp_start를 호출하여 Lightning 인보이스를 받습니다.

  2. liveauth_mcp_lnurl(또는 liveauth_mcp_status 폴링)을 사용하여 BOLT11 인보이스를 가져옵니다.

  3. Lightning 노드/지갑으로 인보이스를 결제합니다.

  4. quoteId로 liveauth_mcp_status를 폴링하여 paymentStatus가 "paid"가 될 때까지 기다립니다.

  5. quoteId만으로 liveauth_mcp_confirm을 호출하여 JWT를 받습니다.

  6. JWT를 일반 liveauth_mcp_charge 측정 또는 SDK 유료 도구 귀속과 함께 사용합니다.

인증 흐름

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  AI Agent       │────▶│  MCP Server     │────▶│  LiveAuth API   │
│                 │     │                 │     │                 │
│ 1. Start       │     │ /api/mcp/start  │     │ Returns PoW    │
│ 2. Solve PoW   │     │                 │     │ challenge       │
│ 3. Confirm     │     │ /api/mcp/confirm│     │ Returns JWT    │
│ 4. API calls   │     │                 │     │                 │
│ 5. Charge      │     │ /api/mcp/charge │     │ Meter usage    │
└─────────────────┘     └─────────────────┘     └─────────────────┘

유료 도구 서버는 동일한 JWT를 사용하지만 귀속 엔드포인트를 통해 요금을 부과합니다:

Agent calls MCP tool
→ Tool server calls POST /api/mcp/tools/{toolId}/charge
  or POST /api/mcp/charge with toolName
→ LiveAuth validates JWT and budget
→ LiveAuth records gross / platform fee / net revenue and returns a signed receipt
→ Tool handler runs and returns the result

L402 번들 흐름

LiveAuthCore는 선불 MCP 액세스를 위한 Lightning 기반 L402 번들을 지원합니다. 번들을 구매하고, 결제 후 macaroon을 클레임한 다음, L402 모드로 MCP 세션을 시작하고 해당 macaroon으로 확인합니다.

# 1. Create a bundle invoice.
curl -X POST https://api.liveauth.app/api/public/l402/bundle/invoice \
  -H "Content-Type: application/json" \
  -d '{"publicKey":"la_pk_xxx","tier":"starter","agentId":"agent_abc"}'

# 2. After the invoice is paid, claim a macaroon.
curl -X POST https://api.liveauth.app/api/public/l402/bundle/claim \
  -H "Content-Type: application/json" \
  -d '{"publicKey":"la_pk_xxx","paymentHash":"payment_hash_from_step_1"}'

# 3. Start and confirm an MCP session with the macaroon.
curl -X POST https://api.liveauth.app/api/mcp/start \
  -H "X-LW-Public: la_pk_xxx" \
  -H "Content-Type: application/json" \
  -d '{"forceL402":true}'

curl -X POST https://api.liveauth.app/api/mcp/confirm \
  -H "X-LW-Public: la_pk_xxx" \
  -H "Content-Type: application/json" \
  -d '{"quoteId":"quote_id_from_step_3","macaroon":"macaroon_from_step_2"}'

개발

# Install dependencies
npm install

# Build
npm run build

# Run locally
node dist/cli.js

리소스

라이선스

MIT


카테고리: authentication · payments · lightning · l402 · bitcoin · pay-per-call · metering · agent-tools · anti-abuse · mcp-server · typescript

Available Tools

7 tools
liveauth_mcp_chargeA

Meter API usage after making an authenticated call. Call this with the cost in sats for each API request made using the JWT.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNameNoOptional registered MCP tool slug or name for per-tool pricing and revenue attribution.
callCostSatsNoOptional cost of the API call in sats. Omit to use LiveAuth project or tool pricing.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits on its own. It mentions the action 'Meter API usage' but does not explain side effects like deducting sats, idempotency (e.g., calling twice), prerequisites beyond JWT authentication, or error behavior. As a monetary/charge operation, the lack of these details is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—two short sentences that front-load the core action ('Meter API usage') and then provide the invocation details. There is no redundant or filler content; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two optional parameters, the description gives a decent overview of purpose and usage. However, with no annotations or output schema, it omits important context such as the expected response, idempotency, and failure modes. It is minimally sufficient but not fully complete for a financial metering operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides full documentation for both parameters (100% coverage). The description adds minor context (e.g., 'cost in sats for each API request') but does not meaningfully enrich the understanding of toolName or callCostSats beyond their schema descriptions. The high schema coverage justifies the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Meter API usage after making an authenticated call.' It identifies a specific verb (meter/charge) and resource (API usage), and the context (after an authenticated call) distinguishes it from sibling tools like liveauth_mcp_usage, which likely queries usage rather than recording it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs when to call the tool: 'Call this with the cost in sats for each API request made using the JWT.' This clearly conveys per-request usage after authentication. However, it doesn't explicitly mention alternatives or conditions when not to use it, preventing a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

liveauth_mcp_confirmA

Submit the solved proof-of-work challenge (or poll for Lightning payment) to receive a JWT. For Lightning, call with just quoteId to check/poll payment status.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoThe nonce that solves the PoW challenge (PoW only)
hashHexNoThe resulting hash hex (PoW only)
quoteIdYesThe quoteId from the start response
macaroonNoL402 bundle macaroon (L402 only)
signatureNoSignature from the challenge (PoW only)
challengeHexNoThe challenge hex from the start response (PoW only)
expiresAtUnixNoExpiration timestamp from the challenge (PoW only)
difficultyBitsNoDifficulty bits from the challenge (PoW only)

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses the dual-mode behavior (PoW vs Lightning), that polling is possible, and the outcome (JWT). However, it does not disclose failure modes, side effects like challenge invalidation, or retry semantics, leaving important behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the main action, and the second provides a specific usage tip. No waste or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 8 parameters and two distinct flows, with no annotations and no output schema. The description covers the core purpose and outcome but lacks details on error conditions, success/failure responses, and safety of repeated calls. It is adequate but not comprehensive for the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds mode-specific guidance: 'call with just quoteId' for Lightning, implying PoW uses the other fields. This clarifies how to select parameters by mode, going beyond the schema's individual descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action: submitting a solved proof-of-work challenge or polling for Lightning payment to receive a JWT. This clearly distinguishes it from siblings like start (which likely initiates) and status (which likely checks overall status).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit guidance: for Lightning, call with just quoteId to check/poll payment status, and PoW requires the challenge-solution fields. It does not explicitly name alternatives or when-not-to-use, but the sibling names and context make it inferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

liveauth_mcp_lnurlB

Get the Lightning invoice for a session (lnget-compatible). Use this to retrieve the BOLT11 invoice for payment.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdYesThe quoteId from the start response

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that the tool retrieves an invoice, but does not clarify side effects, return format, expiration, or whether it is a read-only operation. The mention of 'lnget-compatible' is vague and adds little transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, but the two sentences are somewhat redundant: 'Get the Lightning invoice' is repeated as 'retrieve the BOLT11 invoice.' It could be condensed into a single sentence without losing information, so it is not maximally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has only one parameter with good schema coverage, but no output schema and no annotations. The description does not explain what the response looks like, potential errors, or any behavioral context like payment flow or invoice validity. Given the lack of structured metadata, this is insufficient for an agent to fully understand the tool's role.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage by describing quoteId as 'The quoteId from the start response.' The description adds no additional meaning about the parameter, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Get the Lightning invoice for a session' and also mentions 'retrieve the BOLT11 invoice for payment.' This provides a specific verb and resource, but it does not explicitly differentiate from sibling tools like start, status, or charge, so it does not reach a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Use this to retrieve the BOLT11 invoice for payment,' which implies the tool is for obtaining an invoice after starting a session. However, it does not explicitly state when to use it versus alternatives, nor does it mention any prerequisites or exclusions. This falls under implied usage rather than clear guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

liveauth_mcp_refreshA

Refresh the JWT token without re-authenticating. Use the refreshToken returned from confirm to get a new JWT.

ParametersJSON Schema
NameRequiredDescriptionDefault
refreshTokenYesThe refreshToken from the confirm response

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses a key behavior (no re-authentication required) and the outcome (new JWT). However, it does not mention token rotation, single-use semantics, error handling, or response format, leaving gaps for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, no filler. The main purpose is front-loaded, and the parameter guidance is integrated naturally. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description is nearly complete: it explains the purpose, the input source, and the expected result (new JWT). It lacks only minor details like potential errors or whether the refresh token is reusable, but these are not critical for basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description for refreshToken already provides full coverage (100%), and the tool description essentially restates the same source. Since the schema does the heavy lifting, the description adds minimal extra meaning, hence the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource ('refresh the JWT token') and explicitly states what it achieves ('get a new JWT'). It also distinguishes itself from siblings by referencing the confirm response, making its role in the auth flow clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states when to use this tool: after confirm, using the refreshToken from confirm. It implies it is the alternative to re-authenticating, providing a clear context. It does not explicitly list exclusions or alternatives, but the sibling set makes the intended use obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

liveauth_mcp_startA

Start a new LiveAuth MCP session. Returns a PoW challenge (default), Lightning invoice, or L402 bundle auth hint.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceL402NoIf true, request an L402 bundle auth session
forceLightningNoIf true, request Lightning invoice instead of PoW challenge

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully disclose behavioral traits. It does state the return types and the default PoW challenge, but it omits potential side effects, such as whether starting a new session invalidates existing ones or requires prior authentication. This leaves important behavioral context undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that directly states the action and the possible outcomes. It contains no redundant or filler phrases, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two optional parameters and no output schema, the description covers the core return types and default behavior. While it could provide more detail about the response structure or next steps, the information given is sufficient to understand the tool's basic operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptive definitions for both boolean parameters. The description adds no additional parameter-level meaning, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Start' and resource 'LiveAuth MCP session', making the purpose unambiguous. It distinguishes itself from sibling tools by clearly indicating this is the initialization action, and it enumerates the distinct return types (PoW challenge, Lightning invoice, L402 bundle).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the entry point for starting a session, but it does not explicitly state when to use it versus sibling tools like liveauth_mcp_status or liveauth_mcp_charge. No prerequisites or alternative usage scenarios are provided, so the guidance remains at an implied level.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

liveauth_mcp_statusA

Check the status of an MCP session. Use to poll for Lightning payment confirmation. Also returns the invoice via lnurl compatibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdYesThe quoteId from the start response

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It reveals that the tool returns an invoice via lnurl compatibility and implies a read-only polling nature, but it doesn't explicitly state read-only behavior, side effects, or what constitutes a 'status.' This is adequate but lacks rich safety or state-change disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary purpose, and includes a specific usage example. Every sentence adds value with no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single parameter, no output schema), the description covers the essential context: what it does, when to use it, and a hint about the returned invoice. However, it doesn't describe the full status response structure or possible statuses, which might be useful for a polling tool, but overall it's sufficient for the low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with the only parameter 'quoteId' described as 'The quoteId from the start response.' The description adds no additional parameter-level meaning, but the schema already covers it fully, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Check the status of an MCP session' with a specific use case ('poll for Lightning payment confirmation'). It also distinguishes itself from siblings by focusing on status and polling, and the added detail about lnurl compatibility further clarifies the tool's unique role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use to poll for Lightning payment confirmation,' which provides clear guidance for when to invoke this tool. It doesn't mention alternatives or exclusions, but the polling context is sufficient for a status tool in a payment flow, making it clear this is the follow-up to start/confirm actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

liveauth_mcp_usageA

Query current usage and remaining budget for the MCP session. Use this to check how many sats and calls have been used without making a charge.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It does disclose a key behavioral trait: 'without making a charge' indicates the call is non-destructive and free. However, it doesn't clarify whether the usage query itself counts as a call or affect the budget, nor does it explain any side effects or limit conditions. This is a minor gap for a read-only usage tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the core purpose, and contains no filler. Every word contributes to understanding the tool's function and when to use it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters and no output schema, the description is complete. It clearly states what it queries (usage and remaining budget), the metrics (sats and calls), and the key safety aspect (no charge). No additional context is necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description adds no parameter details, but none are needed. It correctly focuses on the tool's purpose and usage rather than param syntax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Query' and identifies a clear resource: 'current usage and remaining budget for the MCP session.' It also distinguishes itself from siblings like 'status' and 'charge' by focusing on budget/calls usage, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'Use this to check how many sats and calls have been used without making a charge.' This provides clear context and implies it's a non-charging alternative to 'liveauth_mcp_charge'. It doesn't explicitly name alternatives or exclusions, but the guidance is practical and sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv1.0.8
    • First observedliveauth_mcp_charge
    • First observedliveauth_mcp_confirm
    • First observedliveauth_mcp_lnurl
    • First observedliveauth_mcp_refresh
    • First observedliveauth_mcp_start
    • First observedliveauth_mcp_status
    • First observedliveauth_mcp_usage

TDQS

A3.8/5.0
Disambiguation4/5

Each tool maps to a distinct auth lifecycle step: start initiates, lnurl fetches invoice, confirm resolves auth, refresh renews token, charge/usage handle metering, and status reports state. Slight overlap exists between status and confirm when polling payment, but descriptions clarify their primary roles.

Naming Consistency4/5

All tools share the consistent liveauth_mcp_ prefix and snake_case format. Most use verbs (start, confirm, refresh, charge), but status, usage, and lnurl are noun-based, creating minor deviations from a strict verb pattern.

Tool Count5/5

With 7 tools, the set is well-scoped for the server's purpose. Each tool covers a specific function without redundancy, fitting comfortably in the ideal 3-15 tool range.

Completeness5/5

The toolset provides full lifecycle coverage: starting a session, retrieving invoices, confirming authentication, refreshing tokens, and tracking/metering usage. No significant operational gaps are apparent for the stated authentication and payment domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    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
    A
    maintenance
    L402 + x402 client MCP. AI agents discover, pay for, and consume any payment-gated API autonomously. Supports Lightning (NWC), Cashu ecash, stablecoins, and human-in-the-loop payments.
    11
    284
    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
    76
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dulzuradev/liveauth-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server