链上支付服务

MCPay是一个开源基础设施,通过x402协议为Model Context Protocol (MCP)服务器添加链上支付功能,支持按次付费请求,适用于AI代理和应用。

  • by The400MillionDollarCorp
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 The400MillionDollarCorp/mcpay

使用说明

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注册表 或 以编程方式.


快速入门

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 所有旗帜。


构建