Zum Inhalt

Anleitungen

Rezept: bezahlter MCP-Server

Berechnen Sie die Tools eines MCP-Servers pro Aufruf – mit Credits. Ein Mensch kauft einmal ein Paket; jeder Aufruf bucht erst ab und arbeitet dann.

Als Markdown ansehen

Agenten sollen nicht selbst bezahlen. Ein Mensch kauft im Browser ein Credit-Paket, danach prüft jeder Tool-Aufruf das Guthaben, bucht Credits mit einem Idempotenzschlüssel ab und arbeitet. Sind keine Credits mehr da, antwortet das Tool mit einem Aufladelink, den der Agent dem Menschen zeigt. Kein x402, keine Wallet im Agenten, keine automatischen Abbuchungen.

Mit einem Assistenten: Dieses Rezept setzt der Skill paid-mcp-tools des Perly-Pay-Plugins in Ihrem Projekt um. Ein lauffähiges Beispiel ist examples/paid-mcp-server (MIT) im Repository des Plugins.

So funktioniert es

  1. 1

    Ein Credit-Paket

    Wie bei den API-Credits. Geben Sie jedem Tool einen Preis und schreiben Sie ihn in seine Beschreibung.

  2. 2

    Wer aufruft

    Ein gehosteter Server ordnet den API-Schlüssel jedes Abonnenten der external_id eines Kunden zu. PERLY_PAY_SECRET_KEY gibt es nur auf Ihrem Server.

  3. 3

    Erst abbuchen, dann arbeiten

    credits.consume mit dem Tool-Namen als action und einem frischen Schlüssel, den Ihr Server pro Aufruf erzeugt, dann die Arbeit.

  4. 4

    Zu wenig?

    Geben Sie ein Tool-Ergebnis mit isError: true und dem Aufladelink zurück, keinen Protokollfehler: Clients zeigen es an.

  5. 5

    Kostenlose Helfer

    Die Tools balance und top_up, damit der Agent erklären kann, was los ist.

A paid tool
server.registerTool("summarize", { description: "Costs 3 credits.", inputSchema: { text: z.string() } }, async ({ text }, extra) => {
  const refused = await charge(userId, 3, "summarize", extra.requestId); // credits.consume, or a top-up message
  if (refused) return { isError: true, content: [{ type: "text", text: refused }] };
  return { content: [{ type: "text", text: summarize(text) }] };
});

Beispiel starten

  1. 1

    Installieren

    npm install in examples/paid-mcp-server (Node 20.12+).

  2. 2

    Schlüssel

    Kopieren Sie .env.example nach .env und tragen Sie einen Testschlüssel (sk_test_…) in PERLY_PAY_SECRET_KEY ein.

  3. 3

    Vorbereiten

    npm run setup legt mit Ihrem Schlüssel Produkt und Preis an und gibt ihre IDs für .env aus.

  4. 4

    Starten

    npm start (oder npm run dev), wie seine README sagt.

  5. 5

    Ohne Wallet bezahlen

    Fügen Sie ihn in Claude Code hinzu (claude mcp add paid-tools -- npx tsx "$PWD/src/server.ts") und führen Sie word_stats aus: Die Antwort ist eine Aufladeseite. Wählen Sie ein Paket, klicken Sie auf Simulate payment und führen Sie es erneut aus.

Fallstricke

  • PERLY_PAY_SECRET_KEY in einer MCP-Konfiguration, die andere kopieren. Hosten Sie den Server selbst oder lassen Sie ihn Ihr Backend aufrufen.
  • Nach der Arbeit abbuchen: Eine fehlgeschlagene Abbuchung bedeutet dann Gratisarbeit.
  • Der Abbuchungsschlüssel aus der JSON-RPC-ID: Die wählt der Client, und dieselbe ID liefert die erste Abbuchung zurück, also arbeitet das Tool wieder gratis.