@getalby/paidmcp
Version:
Charge for your MCP Server tools using Nostr Wallet Connect
33 lines (32 loc) • 1.4 kB
TypeScript
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;
}