プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。Google でログインするとレビューを書けます。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Agent Pay MCP

作者:DeepFirstHQバージョン 0.2.1i★ 1iパソコンで動く
レジストリ名com.deepfirstsearch/agent-pay-mcp

インストール方法

概要

作者による説明(英語の原文)

x402 payments in USDC on Base inside an owner-signed, on-chain budget the model can't change

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: 暗号資産・ブロックチェーン
  • 入力が必要なもの:AGENT_PAY_BURNER_SEED, AGENT_PAY_AGENT_KEY

インストール

使っているAIアプリを選んで、設定をコピーしてください。

チェック 3/3 合格 · あなたのパソコンで動きます

まず:どの AI を使っていますか?

使っているアプリを選ぶと、下に手順が表示されます。

Claude につなげますが、先に準備が必要です

Agent Pay MCP のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. Agent Pay MCP に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。費用がかかる場合があります。

    キーの取り方は下の提供元 README にあります

  3. パソコン版 Claude アプリの設定ファイルを開く

    SettingsDeveloperEdit Config

  4. この設定を貼り付けて保存

    {
      "mcpServers": {
        "agent-pay": {
          "command": "npx",
          "args": [
            "-y",
            "@deepfirstsearch/agent-pay-mcp"
          ],
          "env": {
            "AGENT_PAY_BURNER_SEED": "your-value",
            "AGENT_PAY_AGENT_KEY": "your-value"
          }
        }
      }
    }

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  5. Claude を終了してもう一度開く

  6. 試してみる

    Agent Pay MCP を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude が Agent Pay MCP を使っていると言うか、回答に Agent Pay MCP のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

ChatGPT はまだ Agent Pay MCP につなげません

Agent Pay MCP はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません

代わりにできること

A · Agent Pay MCP につなげるアプリを使う

  • Agent Pay MCP のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
  • Agent Pay MCP のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ)
  • Agent Pay MCP のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ) · ワンクリックのボタンはありません。設定を貼り付けて値を自分で入力します
  • Agent Pay MCP のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ) · ワンクリックのボタンはありません。設定を貼り付けて値を自分で入力します

B · 暗号資産・ブロックチェーン の中で ChatGPT につなげる別のサーバー

同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました

Claude Code につなげますが、先に準備が必要です

Agent Pay MCP のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ)

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. Agent Pay MCP に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。費用がかかる場合があります。

    キーの取り方は下の提供元 README にあります

  3. ターミナルを開く

    Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く

  4. このコマンドを貼り付けて Enter

    claude mcp add agent-pay --env AGENT_PAY_BURNER_SEED=your-value --env AGENT_PAY_AGENT_KEY=your-value -- npx -y @deepfirstsearch/agent-pay-mcp

    Enter の前に「your-value」を自分のキーに書き換えてください

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  5. Claude Code で /mcp と入力

    Agent Pay MCP が一覧にあり、接続済みと表示されれば OK です

  6. 試してみる

    Agent Pay MCP を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude Code が Agent Pay MCP を使っていると言うか、回答に Agent Pay MCP のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Cursor につなげますが、先に準備が必要です

Agent Pay MCP のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ) · ワンクリックのボタンはありません。設定を貼り付けて値を自分で入力します

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. Agent Pay MCP に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。費用がかかる場合があります。

    キーの取り方は下の提供元 README にあります

  3. Cursor の MCP 設定ファイルを開く

    ~/.cursor/mcp.json

    この設定を貼り付け、空いている値を入力して保存

    {
      "mcpServers": {
        "agent-pay": {
          "command": "npx",
          "args": [
            "-y",
            "@deepfirstsearch/agent-pay-mcp"
          ],
          "env": {
            "AGENT_PAY_BURNER_SEED": "your-value",
            "AGENT_PAY_AGENT_KEY": "your-value"
          }
        }
      }
    }
  4. キーを入力

    Agent Pay MCP の設定で AGENT_PAY_BURNER_SEED, AGENT_PAY_AGENT_KEY が空です。自分のキーを入れて保存します

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  5. Cursor の AI チャットを Agent モードで開く

  6. 試してみる

    Agent Pay MCP を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Cursor が Agent Pay MCP を使っていると言うか、回答に Agent Pay MCP のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

VS Code につなげますが、先に準備が必要です

Agent Pay MCP のキーが必要です(提供元のサイトで登録、費用がかかる場合あり) · 先にパソコンへ Node.js を入れてください(1 回だけ) · ワンクリックのボタンはありません。設定を貼り付けて値を自分で入力します

  1. Node.js を入れる

    1 回だけ。Node.js が必要なすべてのサーバーで使えます

    Node.js のダウンロードページを開く ↗

  2. Agent Pay MCP に登録してキーを作る

    提供元のサイトで登録し、次の手順で使う API キーを作ります。費用がかかる場合があります。

    キーの取り方は下の提供元 README にあります

  3. VS Code の MCP 設定ファイルを開く

    MCP: Open User Configuration

    この設定を貼り付け、空いている値を入力して保存

    {
      "servers": {
        "agent-pay": {
          "type": "stdio",
          "command": "npx",
          "args": [
            "-y",
            "@deepfirstsearch/agent-pay-mcp"
          ],
          "env": {
            "AGENT_PAY_BURNER_SEED": "your-value",
            "AGENT_PAY_AGENT_KEY": "your-value"
          }
        }
      }
    }
  4. キーを入力

    Agent Pay MCP の設定で AGENT_PAY_BURNER_SEED, AGENT_PAY_AGENT_KEY が空です。自分のキーを入れて保存します

    キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください

  5. VS Code の AI チャットを Agent モードで開く

  6. 試してみる

    Agent Pay MCP を使って、私に何ができるか教えて、1 つやってみせて

    ✓ VS Code が Agent Pay MCP を使っていると言うか、回答に Agent Pay MCP のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Windsurf、Zed、Gemini CLI など MCP を使える他のアプリは追加方法がそれぞれ違います。アプリ一覧で確認してください

MCP を使えるアプリをすべて見る →

JSON 設定は下の「開発者向け」にあります

つまずいたら?Agent Pay MCP を使っている人に聞いてみましょう💬 ディスカッション →
開発者向け:ターミナルのコマンドと JSON 設定

パソコンにインストール

Claude Code

claude mcp add agent-pay --env AGENT_PAY_BURNER_SEED=your-value --env AGENT_PAY_AGENT_KEY=your-value -- npx -y @deepfirstsearch/agent-pay-mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "agent-pay": {
      "command": "npx",
      "args": [
        "-y",
        "@deepfirstsearch/agent-pay-mcp"
      ],
      "env": {
        "AGENT_PAY_BURNER_SEED": "your-value",
        "AGENT_PAY_AGENT_KEY": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "agent-pay": {
      "command": "npx",
      "args": [
        "-y",
        "@deepfirstsearch/agent-pay-mcp"
      ],
      "env": {
        "AGENT_PAY_BURNER_SEED": "your-value",
        "AGENT_PAY_AGENT_KEY": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "agent-pay": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@deepfirstsearch/agent-pay-mcp"
      ],
      "env": {
        "AGENT_PAY_BURNER_SEED": "your-value",
        "AGENT_PAY_AGENT_KEY": "your-value"
      }
    }
  }
}

自分で入力する値

  • AGENT_PAY_BURNER_SEED 秘密 必須 env
    32-byte hex secret the per-merchant payer addresses are derived from. Never your owner key.
  • AGENT_PAY_AGENT_KEY 秘密 env
    The budget's agent key (needed when a vault is configured).

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

ひと目でわかる

週あたりのダウンロードi
113/週
確認済みドメイン
✓ deepfirstsearch.com
接続方法
パソコンで動く
最新バージョンi
0.2.1
レジストリ公開日i
2026年10月9日
コードの最終更新i
2026年10月27日
作者
DeepFirstHQ
パッケージ
npm: @deepfirstsearch/agent-pay-mcp
レジストリでの状態
有効

使えるアプリ

このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。

パソコン上で動かせるアプリ

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

すべてのアプリと長所・短所 →

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月12日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名はドメイン deepfirstsearch.com で確認済みです(レジストリがドメインの所有を確認しています)

  • ✓ 合格

    今もメンテナンスされている

    コードの最終更新:16 日前

  • ✓ 合格

    ライセンスがある

    MITを使用

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

話し合い

質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。

まだ投稿はありません。最初の質問や共有をどうぞ。

ここの投稿は利用者によるもので、PopNx チームのものではありません。

Google でログインして投稿

ユーザーレビュー

まだレビューはありません

Google でログインしてレビューを書く

暗号資産・ブロックチェーンのほかのサーバーとの比較i

  • このカテゴリのほかの1654件のうち83%よりスターが多い
  • このカテゴリのほかの1654件のうち58%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの1654件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Agent Pay MCPは安全ですか?

当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:AGENT_PAY_BURNER_SEED, AGENT_PAY_AGENT_KEY

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は16 日前、最新バージョン(0.2.1)がレジストリに届いたのは33 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Solana MCP by Vybe, Oracle3 prediction-market arbitrage checks, Polymarket Paper Trader

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Solana MCP by Vybe

Solana MCP developer toolkit: wallets, trades, markets, PnL, transfers, onchain, swaps & API tools.

作者:vybenetwork広く使われている★ 2628 リポジトリ全体のスター6 か月前更新

クラウドで動く

Polymarket Paper Trader

Polymarket paper trading for AI agents: $10k paper money, real order books, official fees.

作者:agent-next成長中↓ 226/週★ 50427 日前更新

パソコンで動く

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

@deepfirstsearch/agent-pay-mcp

An MCP server that lets any MCP agent (Claude Desktop, Claude Code, Cursor, …) pay x402 APIs in USDC on Base without being able to overspend, even if a web page or API response prompt-injects it.

Beta, unaudited. Use Base Sepolia or small amounts on Base mainnet.

The model gets three tools and nothing else:

ToolWhat the model can do
paid_fetch(url, method?, body?, contentType?)Fetch a URL. If it answers 402 Payment Required, the payment goes through only if the merchant, price and budget match your config
check_price(url, method?, body?, contentType?)Free: what paying this URL would do, without paying. The price and payee it would pay, or why it would refuse (payee_mismatch, price_changed, …). Nothing is signed. no_challenge means no terms were shown right now, not that the route is free
list_merchants()See which origins it may pay, their prices and what's left
budget_status()Remaining budget per merchant, window renewal, vault balance

The model cannot choose a payee, an amount, a network or a limit: there is no argument for any of them. Merchants, price pins, caps and the spending plan come from your config file; keys come from environment variables. Responses are returned inside a randomly tagged fence marked as untrusted data. On-chain, the Agent Safe vault enforces your signed per-payment and per-day caps even if this machine is compromised.

Setup

  1. Budget (owner, once): create a vault and sign a budget per merchant with the owner CLI: npx @deepfirstsearch/agent-pay owner create-vault, then owner budget …, which prints the intentId and a ready-to-paste merchants[] entry. (No vault? Leave out vault, tranche and intentId; each merchant then gets its own payer address derived from AGENT_PAY_BURNER_SEED, which you fund with USDC yourself.)
  2. Config: copy config.example.json and fill it in. Amounts are USDC decimal strings. Keep tranche at or below each intent's trancheCap and maxPerTx.
  3. Secrets (environment only):
  • AGENT_PAY_AGENT_KEY: the intent's agent key (only with a vault).
  • AGENT_PAY_MCP_CONFIG: the config path, if you don't pass it as an argument.
  • AGENT_PAY_BURNER_SEED: the 32-byte secret the payer addresses were derived from. Never your owner key.
Claude Code
claude mcp add agent-pay \

-e AGENT_PAY_AGENT_KEY=0x… -e AGENT_PAY_BURNER_SEED=0x… \ -- npx -y @deepfirstsearch/agent-pay-mcp /absolute/path/config.json

OpenClaw
npm install -g @deepfirstsearch/agent-pay-mcp   # or use "command":"npx","args":["-y","@deepfirstsearch/agent-pay-mcp","/absolute/path/config.json"]

openclaw mcp set agent-pay '{"command":"agent-pay-mcp","args":["/absolute/path/config.json"],"env":{"AGENT_PAY_AGENT_KEY":"${AGENT_PAY_AGENT_KEY}","AGENT_PAY_BURNER_SEED":"${AGENT_PAY_BURNER_SEED}"}}' openclaw mcp probe agent-pay # - agent-pay: 3 tools

Full walkthrough: OpenClaw guide.

Claude Desktop / Cursor

claude_desktop_config.json (Claude Desktop) or .cursor/mcp.json (Cursor):

{

"mcpServers": { "agent-pay": { "command": "npx", "args": ["-y", "@deepfirstsearch/agent-pay-mcp", "/absolute/path/config.json"], "env": { "AGENT_PAY_AGENT_KEY": "0x…", "AGENT_PAY_BURNER_SEED": "0x…" } } } }

From source instead of npm: cd integrations/mcp && npm ci && npm run build, then use node /path/to/integrations/mcp/dist/index.js as the command.

Quick start with verified sellers (Base mainnet)

The verified preset ships 35 x402 sellers whose payee and price were confirmed with a real payment, each with a guide. They are re-checked live, without paying, by scripts/verify-preset.ts, and the list is in src/presets.ts. You pick the ones you use and set your total budget:

{

"network": "eip155:8453", "preset": "verified", "presetOnly": ["https://netintel.dev"], "periodBudget": { "amount": "1.00", "hours": 24 } }

Save it as preset.json and start the server with AGENT_PAY_BURNER_SEED=0x$(openssl rand -hex 32) npx -y @deepfirstsearch/agent-pay-mcp ./preset.json. On start it prints the payer address for each seller. Send that address a little USDC on Base (0.10 covers dozens of calls). Then ask your agent to check_price and paid_fetch a seller's URL, for example https://netintel.dev/web/extract?url=https://www.sitemaps.org/protocol.html. Keep the seed: the same seed gives the same payer addresses.

  • Your own entries win: if you list a merchant with the same origin under merchants, the preset's entry is ignored.
  • Choosing sellers: presetOnly limits the preset to those origins; presetExclude leaves some out; presetMaxSpend (default "0.25") caps each seller per plan window.
  • Budget: periodBudget is required with a preset. It's your total across all of them.
  • Vaults: the preset works with payers you fund yourself for now. With a vault, list your merchants with their intentId instead.

Try it offline (1 minute)

No keys to fund, no chain: run a local mock merchant from the SDK and point the server at it.

npm install -g @deepfirstsearch/agent-pay-mcp   # or skip this and use `npx -y @deepfirstsearch/agent-pay-mcp` below

mkdir mock && cd mock && npm init -y >/dev/null && npm install @deepfirstsearch/agent-pay node --input-type=module -e ' import { startMockServer } from "@deepfirstsearch/agent-pay/testing"; const m = await startMockServer({ "/data": { price: 10000n, payTo: "0x1111111111111111111111111111111111111111", body: "{\"ok\":true}" } }); console.log("origin:", m.url);'

Leave it running. In offline.json, use the printed origin: { "network": "eip155:84532", "merchants": [{ "origin": " ", "payTo": "0x1111111111111111111111111111111111111111", "price": "0.01", "maxPerTx": "0.05", "maxSpend": "0.50" }] }. Then start the server with AGENT_PAY_BURNER_SEED=0x$(openssl rand -hex 32) agent-pay-mcp ./offline.json (without a global install: AGENT_PAY_BURNER_SEED=0x$(openssl rand -hex 32) npx -y @deepfirstsearch/agent-pay-mcp ./offline.json), or add it to your MCP client, and call paid_fetch with /data. The mock verifies signatures locally, so the payer needs no funds.

See it work in 5 minutes (Base Sepolia)

sdk/examples/demo-merchant.ts is a tiny x402 API on Base Sepolia with an honest route (/premium, 0.01 USDC) and a hostile one (/malicious: its 402 asks for 5 USDC to an attacker address and its body carries a prompt injection).

cd sdk && MERCHANT=0xYourMerchantAddress npx tsx examples/demo-merchant.ts

Point the config's merchant at http://127.0.0.1:4021 with that payTo, then ask your agent to fetch /premium and /malicious. Expected: the first is paid and settled on-chain; the second is refused before anything is signed ("payTo … is not the merchant's registered address").

Config reference

FieldMeaning
networkeip155:84532 (Base Sepolia) or eip155:8453 (Base)
rpcUrlOptional RPC URL for that network (vault top-ups and balance reads); defaults to viem's public RPC
vault, trancheAgent Safe vault that tops up each merchant's payer, and the top-up size
merchants[].origin, payToWho may be paid, and the only address the payment can go to
merchants[].intentIdThe owner-signed budget (intent) for this merchant, as printed by owner budget; required for every merchant when vault is set
merchants[].labelOptional display name (up to 80 characters) shown by list_merchants
merchants[].price, tolerancePctExpected price per call; anything above price × (1 + tolerance) is refused
merchants[].maxPerTx, maxSpendHard cap per call, and per merchant per plan window
merchants[].maxTimeoutSecondsLongest authorization this merchant may ask for, 10 to 86400 s (default 300 s). Only that merchant gets the longer window.
merchants[].x402Versionsx402 versions this merchant may be paid with, default [2]. Set [1, 2] for merchants that still speak x402 v1 (e.g. Heurist Mesh).
confirmOnChainDefault true. When a merchant's receipt is missing or unreadable, USDC is asked on-chain (through rpcUrl) whether the payment executed, instead of resending. Needed for merchants with non-standard receipts (CoinMarketCap, JustaName, Glim). Only used on that failure path.
planWindowHoursThe plan is sealed from this file at start and renewed from it every window
periodBudgetTotal across merchants per period: { "amount": "1.00", "hours": 24 }
approvalAbovePayments above this are refused (this server has no approval channel the model can't reach)
sessionHasSensitiveDataIf the agent can also read private data, every payment needs a human (Rule of Two), so all are refused
auditLogHash-chained JSONL log of every decision
maxResponseCharsLongest response body returned to the model, in characters (default 20000, max 1000000); longer bodies are truncated and say so
allowPrivateNetworkDefault false. Set true to let paid_fetch reach http:// URLs and loopback, private, link-local or CGNAT hosts that are not merchants in this file

Unknown keys are rejected, so a typo (approvalabove) stops the server instead of silently dropping a limit.

Since 0.2.0 every tested merchant works through MCP: set x402Versions: [1, 2] for v1 merchants (Heurist Mesh), and leave confirmOnChain on for merchants with non-standard receipts (CoinMarketCap, JustaName, Glim). Without a vault, the server prints each merchant's payer address on start, so you know which address to fund.

A refused payment comes back as an error result, Payment refused by policy: …. From 0.1.8, once the bundled @deepfirstsearch/agent-pay is 0.8.0 or later, the text carries the refusal's stable code and what to do about it, e.g. Payment refused by policy [price_changed → ask the owner]: … (codes listed in the SDK README, "Refusal codes"). Blocks carry codes too (Payment blocked [settlement_pending → …]: …; also settled_not_delivered, rate_limited, kill_switch), with the extra action resend_same: call paid_fetch on the same URL again, and the SDK resends the same signed authorization without signing a new one.

paid_fetch fetches any public https URL the model asks for; only payments are restricted to the merchants in your config. A non-402 response from an unregistered origin is returned as data (fenced as untrusted), so treat it like any fetch tool you give a model. Hosts that are or resolve to loopback, private, link-local or CGNAT addresses, localhost names and plain http are refused unless they are a merchant in your config or you set allowPrivateNetwork; redirects are returned, not followed. Errors other than policy refusals (for example an RPC failure, whose message can contain your rpcUrl) reach the model as a fixed text; the details go to the server's stderr.

Develop

npm ci && npm run typecheck && npm test   # tests drive the server through an MCP client against a mock x402 merchant