使用说明
MCP支付服务器
具有HTTP+SSE传输的模型上下文协议(MCP)服务器的独立实现,包括基本的预付费信用系统。
特性
- 显示MCP工具、资源和提示
- 支持HTTP+SSE双向通信
- 在Base(或Base Sepolia)上使用USDC存款实施简单的支付层
- 使用 Express、TypeScript、Viem 和 Zod 构建
设置
-
安装依赖项:
npm install -
配置环境变量: 创建一个
.env根目录中的文件(mcp-pay-server/.env)具有以下内容:# Required: Public address of the wallet the server will watch for USDC deposits SERVER_DEPOSIT_ADDRESS=0xYourServerWalletPublicAddress # Optional: RPC URL for Base or Base Sepolia (defaults provided) # BASE_RPC_URL=https://your-base-rpc-url # Optional: Port for the server (defaults to 3000) # PORT=3001SERVER_DEPOSIT_ADDRESS:公众0x...服务器应监控的USDC存款地址。BASE_RPC_URL:用于与Base区块链(主网或Sepolia)交互的RPC端点。PORT:HTTP服务器将侦听的端口。
用法
启动服务器:
npm start
这将启动MCP服务器,并开始监视配置的USDC存款 SERVER_DEPOSIT_ADDRESS.
支付系统概述
此服务器使用通过加密签名验证的预付费信用系统。客户端在连接后单独获取支付功能。
- 连接: 客户端连接到服务器。
- 获取功能: 客户致电
payments/getCapabilities接收方法:- 提供存款信息的资源的URI(例如。,
mcp-pay://server/payment/info). - 用于检查余额的工具的名称(例如。,
payments_getBalance). - 需要付款的工具及其相关成本(以字符串形式)的列表。
- 提供存款信息的资源的URI(例如。,
- 存款信息: 客户端读取存款信息资源(从功能中获得的URI)以获取服务器的USDC存款地址。
- 学分: 客户将USDC(在配置的网络上)发送到存款地址。服务器监控此地址,并将发件人的帐户记入其内部分类账。
- 付费工具使用: 当客户调用功能中标识为付费的工具时:
- 它 必须 包含
__payer(其0x...地址)和__signature(规范请求的ECDSA签名)params.arguments. - 服务器的中央中间件验证签名,并根据工具的成本检查付款人的余额 之前 执行工具逻辑。
- 如果验证成功,则执行该工具。如果工具执行成功,则从付款人的余额中扣除成本。
- 它 必须 包含
- 余额检查: 客户使用余额检查工具(名称从功能中获得)
payerAddress作为一个论点。此工具不需要签名。
可用端点
POST /mcp-对于客户端对服务器的请求(需要mcp-session-id头球处理一般MCP方法和payments/getCapabilities.GET /mcp-对于SSE(服务器发送事件)流(需要mcp-session-id头球
支付能力(通过支付/getCapabilities暴露)
- 存款信息资源URI:
mcp-pay://server/payment/info(默认情况下) - 平衡检查工具:
payments_getBalance(默认情况下) - 付费工具(示例):
greet:0.05美元(默认)- (其他可配置)
可用工具
greet:一个简单的问候工具(默认需要付款)。payments_getBalance:返回呼叫钱包的信用余额(免费)。
可用资源
mcp-pay://server/payment/info:返回服务器的存款地址。
发展
构建TypeScript代码:
npm run build