Skip to main content
Glama

LiveAuth MCP Server

npm version MIT license L402 MCP

Authentifizierung, Pay-per-Call-Metering und signierte Quittungen für KI-Agenten und MCP-Tools: Bitcoin-nativ, Lightning-gestützt und L402-kompatibel.

Dieser MCP-Server ermöglicht es jedem KI-Agenten, sich über Proof-of-Work (kostenlos, ohne Konto) oder Lightning-Netzwerk-Mikrozahlungen (Sats) bei Ihrer API zu authentifizieren und anschließend nachfolgende Tool-Aufrufe mit Preis pro Aufruf, idempotenten Umsatzereignissen und HMAC-signierten Quittungen zu messen und zu monetarisieren, die Prüfer offline verifizieren können.

Verwenden Sie ihn, wenn Sie:

  • Eine API oder ein MCP-Tool hinter echte Rechenkosten oder echte Sats stellen möchten (Anti-Spam durch Design, nicht durch CAPTCHA).

  • KI-Agenten pro Aufruf belasten möchten, ohne sie für ein Konto anzumelden.

  • Eine manipulationssichere Prüfspur (signierte mcp-call-receipt-v1) für jeden bezahlten Tool-Aufruf ausstellen möchten.

  • Lightning-gestützten L402-Bundle-Zugang für vorausbezahlte MCP-Sitzungen anbieten möchten.

In 5 Sekunden ausprobieren – kein Konto, kein API-Schlüssel:

npx @liveauth-labs/mcp-server

Ohne Konfiguration verwendet der Server das anonyme Demo-Projekt von LiveAuth und den echten PoW-Ablauf. Fügen Sie LIVEAUTH_API_KEY nur hinzu, wenn Sie die Richtlinie, Preisgestaltung oder Zuordnung eines bestimmten Projekts benötigen.


Verfügbare Tools (Glama / MCP automatisch erkannt)

Tool

Zweck

liveauth_mcp_start

Eine Sitzung beginnen. Gibt eine PoW-Herausforderung, eine Lightning-Rechnung oder einen L402-Bundle-Hinweis zurück.

liveauth_mcp_confirm

Eine gelöste PoW-Herausforderung, eine bezahlte Lightning-Rechnung oder ein L402-Macaroon einreichen → ein JWT erhalten.

liveauth_mcp_charge

Nutzung nach einem Aufruf messen. Mit toolName wird die registrierte Tool-Preisgestaltung aufgelöst und ein bezahltes Umsatzereignis aufgezeichnet.

liveauth_mcp_refresh

Ein Refresh-Token gegen ein neues JWT austauschen – keine erneute Authentifizierung erforderlich.

liveauth_mcp_status

Sitzungs-/Zahlungsstatus abfragen (Lightning-Bestätigung, Ablauf).

liveauth_mcp_lnurl

Die BOLT11-Rechnung für eine Sitzung abrufen (lnget-kompatibel).

liveauth_mcp_usage

Verbleibendes Budget, verwendete Aufrufe und Rate-Limit-Fenster abfragen.

Vollständige Parameter- und Antwortschemata finden Sie in der Tool-Referenz unten.


Related MCP server: Agent Receipts

5-Minuten-Schnellstart

Option 1 – Ohne Anmeldedaten PoW (kein Konto, kein Schlüssel, keine Wallet)

npx @liveauth-labs/mcp-server

Rufen Sie in einem MCP-Client liveauth_mcp_start auf, dann liveauth_mcp_confirm mit nur der zurückgegebenen quoteId. Das Paket verwendet seinen vorhandenen PoW-Löser lokal erneut und die LiveAuth-API verifiziert die signierte Herausforderung, bevor sie ein kurzlebiges Sitzungs-JWT ausstellt.

Option 2 – Produktionsmodus

  1. Holen Sie sich einen API-Schlüssel unter liveauth.app.

  2. Fügen Sie ihn zur claude_desktop_config.json von Claude Desktop hinzu:

{
  "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. Starten Sie Claude neu. Fertig.

Option 3 – Programmatisch (CLI / SDK)

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

Das Paket ist auch ein TypeScript-SDK – siehe SDK-Nutzung unten. Das CLI-Bin ist liveauth-mcp.

Warum LiveAuth?

Für API-Anbieter / Tool-Entwickler:

  • Stoppen Sie Bots auf der Protokollebene. PoW und Lightning-Sats sind nicht wiederverwendbar, nicht phishbar und erfordern keine Benutzerkonten.

  • Berechnen Sie pro Aufruf in Sats. Wir signieren eine Quittung, die Sie Prüfern, Kunden oder Ihrem Buchhalter zeigen können.

  • Wickeln Sie jedes MCP-Tool mit einer Zeile (createMcpGate) und Sie erhalten Umsatz pro Tool, Mindest-/Höchstpreise pro Tool und idempotente Wiederholungen.

Für KI-Agenten / Agent-Entwickler:

  • Erlaubnisfreier Zugriff auf kostenpflichtige APIs – PoW lösen oder Sats zahlen, ein JWT erhalten. Keine Anmeldung, keine E-Mail, kein OAuth-Tanz.

  • Verwenden Sie PoW, Lightning-Rechnungen oder L402-Bundle-Macarons für den Agentenzugriff.

  • Projekte können bei Konfiguration über einen eigenen Lightning-Knoten abrechnen; andernfalls verwenden Zahlungen den von LiveAuthCore konfigurierten Knoten.

Die Mathematik, die zählt: Wenn Ihr Tool von einem Bot abgegriffen wird, reicht eine Gebühr von 1 Sat pro Aufruf aus, um den Scraper unrentabel zu machen. Wir nennen das Kosten-des-Angriffs-Ökonomie, und das ist der eigentliche Grund, warum wir existieren.

Installation

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

Oder direkt mit npx verwenden:

npx @liveauth-labs/mcp-server

Goose

LiveAuth für Goose verwendet denselben standardbasierten stdio-MCP-Server wie jeder andere Client – es gibt keinen Goose-Wrapper, keinen Daemon und keine doppelte Authentifizierungslaufzeit.

In Goose installieren

Oder den offiziellen Deep-Link und aktuelle Fallbacks ausgeben:

npx @liveauth-labs/mcp-server setup goose

Für eine einmalige Goose-CLI-Sitzung:

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

Manuelle Goose-stdio-Konfiguration, wenn der Deep-Link nicht verfügbar ist:

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

Bearbeiten Sie eine vorhandene Goose-Konfiguration nicht destruktiv. Bevorzugen Sie den Deep-Link oder goose configure; wenn Sie später Projektkonfiguration hinzufügen, geben Sie sie über die Erweiterungs-Geheimniseinstellungen von Goose ein, nicht über gemeinsames Klartext-YAML.

Goose-Schnelltest

Fragen Sie Goose:

Verwenden Sie LiveAuth, um den Standard-Authentifizierungsablauf zu starten. Bestätigen Sie das zurückgegebene Angebot und zeigen Sie dann meine LiveAuth-Nutzung.

Der anfängliche Ablauf verwendet die PoW-Herausforderung des anonymen Demo-Projekts und erfordert keine Wallet. Ein Projekt-öffentlicher Schlüssel ist optional:

Variable

Wann setzen?

LIVEAUTH_API_KEY

Projektspezifische Richtlinie, Preisgestaltung und Zuordnung.

LIVEAUTH_API_BASE

Eine selbst gehostete LiveAuth-API anstelle von https://api.liveauth.app.

LIVEAUTH_DEMO=true

Explizit für die ältere lokal simulierte Lightning-Demo entscheiden.

Wenn ein bezahlter Ablauf angefordert wird, behalten die Tool-Ergebnisse die vorhandenen Rechnungsfelder bei und enthalten auch portable strukturierte Daten:

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

Clients mit MCP-Apps-Unterstützung können den enthaltenen QR-Code, die Open-Wallet-Aktion, den Ablauf und den Live-Status bezahlt/ausstehend/abgelaufen rendern. Andere Clients erhalten die JSON- und QR-Bildinhalte als normale MCP-Ergebnisse.

Goose-Fehlerbehebung

  • Wenn der Link nicht geöffnet wird, führen Sie npx @liveauth-labs/mcp-server setup goose aus und verwenden Sie dessen Ein-Sitzungs- oder manuellen Fallback.

  • Wenn npx nicht verfügbar ist, installieren Sie eine aktuelle Node.js-Version (Node 18 oder neuer).

  • Wenn ein bereitgestellter Projektschlüssel abgelehnt wird, entfernen Sie ihn, um den anonymen PoW-Ablauf zu verifizieren; ungültige und widerrufene Schlüssel fallen absichtlich nicht auf die Demo zurück.

  • Wenn eine Lightning-Rechnung abläuft, rufen Sie liveauth_mcp_start erneut auf, um ein frisches Angebot zu erhalten.

  • Bewahren Sie Refresh-Tokens und alle nicht öffentlichen Anmeldedaten von Protokollen und Klartextkonfiguration fern.

LiveAuth ermöglicht es Agenten, Autorisierung zur Laufzeit zu erwerben, anstatt dass jedes Tool im Voraus mit dauerhaften Anmeldedaten ausgestattet werden muss.

SDK-Nutzung

Das Paket kann auch als TypeScript/JavaScript-SDK importiert werden. Das Importieren des Pakets startet nicht den stdio-MCP-Server; die CLI befindet sich im liveauth-mcp-Bin.

Client-Auth-Helfer

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);

Der Client speichert bestätigte JWTs, erneuert sie vor Ablauf, wenn ein Refresh-Token zurückgegeben wird, und stellt das aktuelle Token über liveauth.token bereit. Rufen Sie liveauth.destroy() auf, wenn Ihre Anwendung heruntergefahren wird, um Token-Zustand und Erneuerungs-Timer zu löschen.

Um eine echte bezahlte Rechnung zu verlangen:

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);

Server-Gate-Helfer

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(...) validiert das JWT, belastet die konfigurierten Sats-Kosten oder den Backend-Projektstandard und übergibt context.liveAuth an Ihren Handler. Der ältere Name gate.gateTool(...) wird weiterhin unterstützt.

Bezahlte Tool-Zuordnung

Wenn Ihr MCP-Server eine registrierte LiveAuth-Tool-ID hat, übergeben Sie toolId beim Erstellen des Gates. Belastungen gehen dann an:

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

anstatt an den alten generischen Endpunkt:

POST /api/mcp/charge

Sie können auch einen registrierten Tool-Slug/-Namen als toolName übergeben. In diesem Modus gehen Belastungen an den generischen Endpunkt mit Tool-Identität im Body:

POST /api/mcp/charge

Tool-Belastungen behalten dieselben Sitzungsbudgetprüfungen bei, zeichnen aber auch ein unveränderliches Umsatzereignis mit Brutto-Sats, LiveAuth-Plattformgebühr, Entwickler-Netto-Sats, Tool-Methodennamen, zahlendem Projekt/Sitzung/Token, Metadaten und Idempotenzschlüssel auf. Wenn costSats weggelassen wird, verwendet LiveAuthCore den registrierten Standardpreis des Tools; ohne toolId oder toolName fällt es auf den globalen MCP-Preis des Projekts zurück.

Registrierte Tools können auch eine Webhook-URL für bezahlte Aufrufe haben. Bei jedem erfolgreichen neuen bezahlten Aufruf stellt LiveAuthCore einen liveauth.mcp.tool.paid_call-Webhook mit Tool-Identität, Brutto-/Plattform-/Netto-Sats, Umsatzereignis-ID, Metadaten und der signierten Quittung in die Warteschlange. Wenn die Tool-Webhook-URL leer ist, fällt LiveAuthCore auf die Webhook-URL des Projekts zurück; idempotente Wiederholungen erzeugen keine Duplikate.

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,
    },
  }
);

Wenn toolId oder toolName gesetzt ist, unterstützt GateToolOptions:

Option

Zweck

costSats

Optionale Sats, die für diesen Aufruf belastet werden. Weglassen, um die registrierte Tool-Preisgestaltung oder den globalen Projektpreis zu verwenden.

toolName

Optionaler Tool-Slug/-Name pro Aufruf als Überschreibung bei Verwendung des generischen Endpunkts.

toolMethodName

Methode innerhalb des Tools, z. B. web_fetch oder search.

idempotencyKey

Wiederholungssicherer Schlüssel. Die Wiederverwendung für dasselbe Tool gibt das ursprüngliche Umsatzereignis und die signierte Quittung zurück, anstatt doppelt zu belasten.

agentId

Optionale Kennung des Aufrufers/Agenten für die Berichterstattung.

metadata

Kleines JSON-Objekt für Prüfkontext. Speichern Sie hier keine privaten Tool-Ausgaben.

Tool-Belastungsantworten enthalten die normalen Budgetzähler plus Umsatzbuchhaltung:

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

Die Quittung ist ein signiertes Prüfartefakt pro Aufruf, das von LiveAuthCore für bezahlte Tool-Belastungen zurückgegeben wird. Speichern Sie sie zusammen mit Ihrem Tool-Ergebnis, wenn Sie einen Nachweis der Belastung oder eine spätere Abstimmung benötigen.

Wenn keine toolId oder toolName konfiguriert ist, verwendet das SDK weiterhin /api/mcp/charge für abwärtskompatible Nutzungsmessung.

Konfiguration

Claude Desktop

Fügen Sie zu Ihrer claude_desktop_config.json hinzu:

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

Modus ohne Anmeldedaten: Wenn Sie LIVEAUTH_API_KEY weglassen, ruft der Server die normalen MCP-Endpunkte ohne Projekt-Header auf. LiveAuth bindet sein konfiguriertes anonymes Demo-Projekt, gibt eine signierte PoW-Herausforderung zurück und bewahrt normale Verifizierungs-, JWT-, Rate-Limit- und Messungsgrenzen. LIVEAUTH_DEMO=true bleibt eine explizite Opt-in für die ältere lokal simulierte Lightning-Vorschau.

Andere Umgebungsvariablen:

Variable

Standard

Zweck

LIVEAUTH_API_KEY

(nicht gesetzt)

Ihr LiveAuth-Projekt-öffentlicher Schlüssel (la_pk_…).

LIVEAUTH_API_BASE

https://api.liveauth.app

Überschreibung für selbst gehostetes LiveAuth.

LIVEAUTH_DEMO

false

Explizit die alte lokal simulierte Lightning-Demo verwenden.

Andere MCP-Clients

Der Server spricht stdio (JSON-RPC 2.0). Starten Sie ihn mit:

liveauth-mcp

Es funktioniert auch mit jedem MCP-kompatiblen Client: Cursor, VS Code, ChatGPT, Windsurf, Continue, Cline.

Tool-Referenz

Vollständige Schemas für jedes MCP-Tool. Jedes Tool ist JSON-RPC-2.0-kompatibel und unter src/index.test.ts und src/cli.test.ts getestet.

liveauth_mcp_start

Startet eine neue LiveAuth-MCP-Sitzung. Gibt standardmäßig eine PoW-Challenge zurück, oder eine Lightning-Rechnung, wenn forceLightning=true ist.

Parameter:

  • forceLightning (boolean, optional): Wenn true, Lightning-Rechnung statt PoW-Challenge anfordern

  • forceL402 (boolean, optional): Wenn true, eine Sitzung starten, die mit einem L402-Bundle-Macaroon bestätigt werden soll

Rückgabe (PoW):

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

Rückgabe (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"
  }
}

Rückgabe (L402-Bundle):

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

liveauth_mcp_confirm

Eine gelöste Proof-of-Work-Challenge einreichen, das Paket seine gecachte Challenge lösen lassen, eine Lightning-Zahlung abfragen oder ein L402-Macaroon präsentieren, um ein JWT-Authentifizierungstoken zu erhalten.

Parameter:

  • quoteId (string): Die quoteId aus der Start-Antwort

  • challengeHex (string, optional, nur PoW): Die Challenge-Hex aus der Start-Antwort

  • nonce (number, optional, nur PoW): Die Nonce, die die PoW-Challenge löst

  • hashHex (string, optional, nur PoW): Der resultierende Hash (sha256 von projectPublicKey:challengeHex:nonce)

  • expiresAtUnix (number, optional, nur PoW): Ablaufzeitstempel aus der Challenge

  • difficultyBits (number, optional, nur PoW): Schwierigkeitsbits aus der Challenge

  • signature (string, optional, nur PoW): Signatur aus der Challenge

  • macaroon (string, nur L402): Bundle-Macaroon, das aus dem L402-Bundle-Claim-Ablauf zurückgegeben wurde

Wenn die Challenge von diesem MCP-Server stammt, verwendet der Aufruf von confirm mit quoteId allein den vorhandenen PoW-Solver des Pakets. Explizite Lösungsfelder bleiben aus Kompatibilitätsgründen unterstützt.

Rückgabe:

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

Hinweis: Bewahren Sie das refreshToken sicher auf. Es wird in den MCP-Tool-Daten zurückgegeben, aber niemals in stderr oder Anwendungsprotokolle geschrieben. Verwenden Sie liveauth_mcp_refresh, um ein neues JWT ohne erneute Authentifizierung zu erhalten.

liveauth_mcp_charge

API-Nutzung nach einem authentifizierten Aufruf messen. Der gebündelte MCP-Server ruft den generischen Endpunkt /api/mcp/charge auf. Durch die Angabe von toolName kann LiveAuth ein registriertes Tool auflösen, dessen konfigurierten Preis anwenden und ein Umsatzereignis für bezahlte Tools erstellen; das Weglassen von toolName behält die abwärtskompatible generische Messung bei.

Parameter:

  • callCostSats (number, optional): Kosten des API-Aufrufs in Sats. Weglassen, um die Backend-Preisgestaltung zu verwenden.

  • toolName (string, optional): Registrierter MCP-Tool-Slug/-Name für die Preisgestaltung und Zuordnung pro Tool.

Rückgabe:

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

Wenn das Budget überschritten wird:

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

liveauth_mcp_status

Status einer MCP-Sitzung prüfen. Verwenden Sie dies, um auf die Bestätigung der Lightning-Zahlung zu warten.

Parameter:

  • quoteId (string): Die quoteId aus der Start-Antwort

Rückgabe:

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

Wenn paymentStatus "paid" ist, ist die Sitzung bestätigt. Rufen Sie liveauth_mcp_confirm erneut auf, um das JWT zu erhalten.

liveauth_mcp_lnurl

Die Lightning-Rechnung für eine Sitzung abrufen (lnget-kompatibel). Verwenden Sie dies, um die BOLT11-Rechnung für die Zahlung mit einer beliebigen Lightning-Wallet abzurufen.

Parameter:

  • quoteId (string): Die quoteId aus der Start-Antwort

Rückgabe:

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

Hinweis: Dies ist kompatibel mit lnget und anderen Lightning-Zahlungstools. Verwenden Sie dies, um auf die Rechnung zu warten, wenn liveauth_mcp_confirm "payment pending" zurückgibt.

liveauth_mcp_usage

Aktuelle Nutzung und verbleibendes Budget abfragen, ohne eine Belastung vorzunehmen. Verwenden Sie dies, um den Status vor API-Aufrufen zu prüfen.

Parameter: (keine erforderlich)

Rückgabe:

{
  "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

Das JWT-Token ohne erneute Authentifizierung aktualisieren. Verwenden Sie das refreshToken aus der confirm-Antwort, um ein neues JWT zu erhalten, wenn das aktuelle abläuft.

Parameter:

  • refreshToken (string): Das refreshToken aus der confirm-Antwort

Rückgabe:

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

Hinweis: Speichern Sie das refreshToken sicher. Sie benötigen es, um die Sitzung zu verlängern, ohne eine neue PoW zu lösen oder eine weitere Lightning-Zahlung vorzunehmen.

Verwendungsbeispiel

PoW-Authentifizierung

  1. Rufen Sie liveauth_mcp_start auf, um eine PoW-Challenge und quoteId zu erhalten

  2. Rufen Sie liveauth_mcp_confirm mit der quoteId auf; der MCP-Server löst seine gecachte Challenge mit dem vorhandenen Paket-Solver

  3. Fortgeschrittene Clients können weiterhin eine explizite Lösung einreichen (hash = sha256(projectPublicKey:challengeHex:nonce) wobei hash < targetHex)

  4. Verwenden Sie das JWT im Authorization: Bearer <token>-Header für API-Anfragen

  5. Rufen Sie nach jedem generischen API-Aufruf liveauth_mcp_charge mit einem Aufrufpreis auf, oder lassen Sie es weg, um den globalen MCP-Preis des Projekts zu verwenden

  6. Für monetarisierte MCP-Tools umschließen Sie Handler mit createMcpGate({ toolId }) oder createMcpGate({ toolName }), sodass jeder Aufruf ein Umsatzereignis und eine signierte Quittung erstellt

Lightning-Authentifizierung

  1. Rufen Sie liveauth_mcp_start mit forceLightning: true auf, um eine Lightning-Rechnung zu erhalten

  2. Verwenden Sie liveauth_mcp_lnurl (oder fragen Sie liveauth_mcp_status ab), um die BOLT11-Rechnung zu erhalten

  3. Bezahlen Sie die Rechnung mit Ihrem Lightning-Knoten/-Wallet

  4. Fragen Sie liveauth_mcp_status mit der quoteId ab, bis paymentStatus "paid" ist

  5. Rufen Sie liveauth_mcp_confirm nur mit der quoteId auf, um das JWT zu erhalten

  6. Verwenden Sie das JWT entweder mit generischer liveauth_mcp_charge-Messung oder mit der SDK-Zuordnung für bezahlte Tools

Authentifizierungsablauf

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  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    │
└─────────────────┘     └─────────────────┘     └─────────────────┘

Server für bezahlte Tools verwenden dasselbe JWT, belasten aber über einen zugeordneten Endpunkt:

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-Bundle-Ablauf

LiveAuthCore unterstützt Lightning-gestützte L402-Bundles für den Prepaid-MCP-Zugriff. Kaufen Sie ein Bundle, beanspruchen Sie das Macaroon nach der Zahlung, starten Sie dann eine MCP-Sitzung im L402-Modus und bestätigen Sie sie mit diesem 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"}'

Entwicklung

# Install dependencies
npm install

# Build
npm run build

# Run locally
node dist/cli.js

Ressourcen

Lizenz

MIT


Kategorien: 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