UNPKG

mcpay

Version:

SDK and CLI for MCPay functionality - MCP servers with payment capabilities

51 lines 2.24 kB
import type { StreamableHTTPClientTransportOptions } from "@modelcontextprotocol/sdk/client/streamableHttp.js"; import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"; import type { Account } from "viem"; import { evm } from "x402/types"; import { type PaymentRequirementsSelector } from "../x402"; /** * Configuration options for payment handling in the PaymentTransport. */ export interface PaymentTransportOptions extends StreamableHTTPClientTransportOptions { /** * The maximum allowed payment amount in base units (defaults to 0.1 USDC) */ maxPaymentValue?: bigint; /** * A function that selects the payment requirements from the response */ paymentRequirementsSelector?: PaymentRequirementsSelector; } /** * PaymentTransport extends StreamableHTTPClientTransport to handle 402 Payment Required responses * by automatically creating and sending payment headers using the x402 payment protocol. * * This implementation uses the x402-fetch library to automatically handle payments. */ export declare class PaymentTransport extends StreamableHTTPClientTransport { private _walletClient; private _maxPaymentValue; private _paymentRequirementsSelector; private _paymentUrl; private _customRequestInit?; private _paymentFetch; constructor(url: URL, walletClient: typeof evm.SignerWallet | Account, opts: PaymentTransportOptions); /** * Override the send method to use our payment-enabled fetch */ private _overrideSendMethod; /** * Extract payment requirements from an error message */ private _extractPaymentRequirementsFromError; /** * Handle a 402 Payment Required response by creating and sending a payment header */ private _handlePaymentRequired; } /** * Creates a PaymentTransport instance that automatically handles 402 Payment Required responses * by creating and sending payment headers using the x402 payment protocol. */ export declare function createPaymentTransport(url: URL, walletClient: typeof evm.SignerWallet | Account, options?: Omit<PaymentTransportOptions, 'walletClient'>): PaymentTransport; //# sourceMappingURL=payment-http-transport.d.ts.map