UNPKG

@getalby/paidmcp

Version:

Charge for your MCP Server tools using Nostr Wallet Connect

33 lines (32 loc) 1.4 kB
import { ServerOptions } from "@modelcontextprotocol/sdk/server/index.js"; import { McpServer, RegisteredTool, ToolCallback } from "@modelcontextprotocol/sdk/server/mcp.js"; import { Implementation, ToolAnnotations } from "@modelcontextprotocol/sdk/types.js"; import "websocket-polyfill"; import { ZodRawShape } from "zod"; import { ChargeCallback } from "./callbacks.js"; import { IStorage } from "./storage/storage.js"; export declare class PaidMcpServer extends McpServer { private _wallet; private _storage; constructor(serverInfo: Implementation, /** * @property nwcUrl the connection secret for your wallet - ideally receive-only * @property storage configure storage for paid, unused tool access (default: in-memory) */ paidArgs: { nwcUrl: string; storage?: IStorage; }, options?: ServerOptions); /** * Registers a paid tool with a config object, charge callback and tool callback. * * @param charge configure how much to charge based on the request */ registerPaidTool<InputArgs extends ZodRawShape, OutputArgs extends ZodRawShape>(name: string, config: { title?: string; description?: string; inputSchema?: InputArgs; outputSchema?: OutputArgs; annotations?: ToolAnnotations; }, charge: ChargeCallback<InputArgs>, cb: ToolCallback<InputArgs>): RegisteredTool; }