使用说明
MCPay
什么是MCPay?
MCPay是一个开源基础设施,它增加了 链上支付 任何 模型上下文协议(MCP) 服务器使用 x402“需要付款”协议.
它使MCP客户端(如ChatGPT、Cursor等)能够 按通话付费请求 而不是依赖于静态订阅或API密钥。
我们的目标是让人工智能代理和应用程序自动、透明地只为他们使用的东西付费。
为什么选择MCPay(30秒后)
- 客户 → 只为他们使用的东西付费——没有订阅,没有密钥,没有设置。与MCP兼容的应用程序(ChatGPT、Cursor等)开箱即用。
- 开发者 → 使用我们的SDK(或兼容的SDK)、货币化包装器或公共索引进行货币化并立即被发现。设置每次通话、每次代币或动态定价,并自动接收付款。
- 代理 → 执行真实 代理↔服务小额支付,实现对API、推理、数据等的自主访问。
运作原理
MCPay为开发人员和客户透明地处理整个支付生命周期:
- 遵循x402协议,带有结构化价格元数据。
- 接受并验证链上支付,然后在确认后自动重试原始MCP请求。
- 将使用和收入事件流式传输到仪表板和分析端点。
此机制确保任何兼容MCP的应用程序或代理都可以直接(通过钱包)或通过委托的基于策略的代理支付每次通话费用。
sequenceDiagram
participant C as MCP Client
participant CP as Client Proxy + Wallet
participant P as MCPay Proxy (Edge)
participant U as Upstream Service<br/>(Server Proxy / x402 MCP / api2 / mcp2)
participant B as Blockchain (USDC/EUROe)
participant D as Analytics/Dashboard
C->>CP: (1) MCP call
CP->>P: (2) Forward request
%% normal path: proxy upstreams the original call
P->>U: (3) Upstream original request
alt Upstream returns price-gated
U-->>P: (4) 402 + price metadata
alt Proxy is authorized to pay (MCPay Auth/wallet & policy allows)
P->>B: (5a) Pay on-chain
B-->>P: (6a) Payment confirmation
P->>U: (7a) Retry original request
U-->>P: (8a) Result
P-->>CP: (9a) Forward result
CP-->>C: (10a) Deliver result
else Proxy cannot/shouldn't pay
P-->>CP: (5b) Downstream 402 + price metadata
CP->>B: (6b) Client-side payment (sign via wallet/MCPay Auth)
B-->>P: (7b) Confirmation to proxy
P->>U: (8b) Retry original request
U-->>P: (9b) Result
P-->>CP: (10b) Forward result
CP-->>C: (11b) Deliver result
end
else Upstream returns success
U-->>P: (4') Tool result
P-->>CP: (5') Forward result
CP-->>C: (6') Deliver result
end
P-->>D: (✱) Emit usage & revenue events (both branches)
在实践中,这意味着任何MCP服务器都可以成为零摩擦的付费端点。
MCPay代理充当以下各项之间的协调层 客户、钱包和上游服务 --自动处理 402 协商、链上支付和重试。
一旦确认付款,就会透明地重试相同的请求,并将结果与使用情况和收入数据一起流式传输回客户端。
关键组件
1) 注册表
了解MCP服务器及其定价工具,请访问 **mcpay.tech/servers**可搜索、机器可读、对代理友好。
2) 货币化者(代理人)
用以下命令包裹现有的HTTP端点或MCP服务器 MCPay代理 强制执行按次计费。上游服务无代码更改。
快速入门
MCPay允许您为任何MCP或OpenAPI服务器添加链上定价。
无论您是更喜欢从仪表板配置所有内容还是在代码中定义逻辑,这两条路径都使用相同的x402标准。
| Path | 最佳用途 | 它的作用 |
|---|---|---|
| 网站 | 最快上线的现有服务 | 在仪表板中配置每个工具/路线的价格。 |
| 软件开发工具包 | 自定义逻辑和完全控制 | 定义 付费工具 在代码中,设置定价,并交付一台开箱即用x402的MCP服务器。 |
选项A——连接到付费MCP服务器(CLI)
启动一个或多个远程MCP服务器的MCP stdio代理。使用API密钥或钱包私钥。
# Using an API key (recommended)
npx mcpay connect --urls https://mcpay.tech/v1/mcp/05599356-7a27-4519-872a-2ebb22467470 --api-key mcpay_YOUR_API_KEY
# Or using an EVM wallet private key (x402 payments)
npx mcpay connect --urls https://mcpay.tech/v1/mcp/05599356-7a27-4519-872a-2ebb22467470 --evm 0xYOUR_PRIVATE_KEY --evm-network base-sepolia
# Or using an SVM wallet secret key (x402 payments)
npx mcpay connect --urls https://mcpay.tech/v1/mcp/05599356-7a27-4519-872a-2ebb22467470 --svm YOUR_SECRET_KEY --svm-network solana-devnet
您可以通过逗号分隔的列表将多个URL传递给 --urls.
选项B——程序化客户端(SDK)
import { Client } from '@modelcontextprotocol/sdk/client/index.js'
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js'
import { withX402Client } from 'mcpay/client'
import { createSigner } from 'x402/types'
// Create signer for EVM network
const evmSigner = await createSigner('base-sepolia', process.env.EVM_PRIVATE_KEY!) // dev only; secure in prod
const url = new URL('https://mcpay.tech/v1/mcp/05599356-7a27-4519-872a-2ebb22467470')
// Create transport
const transport = new StreamableHTTPClientTransport(url)
// Initialize MCP client
const client = new Client({ name: 'my-mcp-client', version: '1.0.0' }, { capabilities: {} })
await client.connect(transport)
// Wrap client with X402 payment capabilities
const paymentClient = withX402Client(client, {
wallet: { evm: evmSigner },
maxPaymentValue: BigInt(0.1 * 10 ** 6) // limit max on‑chain value (base units, e.g. 6‑decimals for USDC)
})
const tools = await paymentClient.listTools()
console.log('Available tools:', tools)
软件开发工具包
安装:
npm i mcpay # pnpm add mcpay / yarn add mcpay / bun add mcpay
特征:
- 自动
402处理(x402图案)。 - 适用于纯HTTP 和 MCP服务器。
- 可插拔钱包/运输工具;支持多个链/令牌(EVM和SVM)。
- 包括a 命令行界面 用于本地/prod代理。
- 支持Base、Avalanche、IoTeX、Sei(EVM)和Solana(SVM)网络。
看 js-sdk/README.md 获取API详细信息。
构建货币化服务器(Hono)
import { Hono } from "hono"
import { createMcpPaidHandler } from "mcpay/handler"
import { z } from "zod"
const app = new Hono()
const handler = createMcpPaidHandler(
(server) => {
server.paidTool(
"weather",
"Paid tool",
"$0.001",
{ city: z.string() },
{},
async ({ city }) => ({
content: [{ type: "text", text: `The weather in ${city} is sunny` }],
})
)
server.tool(
"free_tool",
"Free to use",
{ s: z.string(), city: z.string() },
async ({ s, city }) => ({
content: [{ type: "text", text: `We support ${city}` }],
})
)
},
{
facilitator: {
url: "https://facilitator.mcpay.tech"
},
recipient: {
"evm": {address: "0xc9343113c791cB5108112CFADa453Eef89a2E2A2", isTestnet: true},
"svm": {address: "4VQeAqyPxR9pELndskj38AprNj1btSgtaCrUci8N4Mdg", isTestnet: true}
}
},
{
serverInfo: { name: "paid-mcp", version: "1.0.0" },
},
)
app.use("*", (c) => handler(c.req.raw))
export default app
命令行界面
启动远程MCP服务器的本地stdio代理:
{
"mcpServers": {
"Paid Server": {
"command": "npx",
"args": [
"mcpay",
"connect",
"--urls",
"https://mcpay.tech/v1/mcp/05599356-7a27-4519-872a-2ebb22467470",
"--api-key",
"mcpay_YOUR_API_KEY"
]
}
}
}
跑 mcpay connect --help 所有旗帜。
构建