Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

x402 Universal Payer

by nirholasversion 1.0.2i★ –iRuns on your computer
Registry nameio.github.nirholas/x402-bridge

Install

Overview

Description from the maker (original English)

Pay any x402 endpoint on the open web: auto-paying bridge with Bazaar discovery and spend caps.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Other
  • You need to fill in: MCP_BRIDGE_EVM_PRIVATE_KEY, MCP_BRIDGE_SVM_PRIVATE_KEY

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: MCP_BRIDGE_EVM_PRIVATE_KEY, MCP_BRIDGE_SVM_PRIVATE_KEY, MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC, MCP_BRIDGE_MAX_TOTAL_ATOMIC, MCP_BRIDGE_ALLOWED_PAYTO, MCP_BRIDGE_ALLOWED_HOSTS, MCP_BRIDGE_ALLOW_HTTP, MCP_BRIDGE_DISCOVER_LIMIT, MCP_BRIDGE_BAZAAR_URL, MCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIER, MCP_BRIDGE_MAX_DEPOSIT_ATOMIC, X402_MCP_BRIDGE_CHANNELS_DIR, RPC_URL_8453

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "x402-bridge": {
      "command": "npx",
      "args": [
        "-y",
        "@three-ws/mcp-bridge"
      ],
      "env": {
        "MCP_BRIDGE_EVM_PRIVATE_KEY": "your-value",
        "MCP_BRIDGE_SVM_PRIVATE_KEY": "your-value",
        "MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC": "your-value",
        "MCP_BRIDGE_MAX_TOTAL_ATOMIC": "your-value",
        "MCP_BRIDGE_ALLOWED_PAYTO": "your-value",
        "MCP_BRIDGE_ALLOWED_HOSTS": "your-value",
        "MCP_BRIDGE_ALLOW_HTTP": "your-value",
        "MCP_BRIDGE_DISCOVER_LIMIT": "your-value",
        "MCP_BRIDGE_BAZAAR_URL": "your-value",
        "MCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIER": "your-value",
        "MCP_BRIDGE_MAX_DEPOSIT_ATOMIC": "your-value",
        "X402_MCP_BRIDGE_CHANNELS_DIR": "your-value",
        "RPC_URL_8453": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add x402-bridge --env MCP_BRIDGE_EVM_PRIVATE_KEY=your-value --env MCP_BRIDGE_SVM_PRIVATE_KEY=your-value --env MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC=your-value --env MCP_BRIDGE_MAX_TOTAL_ATOMIC=your-value --env MCP_BRIDGE_ALLOWED_PAYTO=your-value --env MCP_BRIDGE_ALLOWED_HOSTS=your-value --env MCP_BRIDGE_ALLOW_HTTP=your-value --env MCP_BRIDGE_DISCOVER_LIMIT=your-value --env MCP_BRIDGE_BAZAAR_URL=your-value --env MCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIER=your-value --env MCP_BRIDGE_MAX_DEPOSIT_ATOMIC=your-value --env X402_MCP_BRIDGE_CHANNELS_DIR=your-value --env RPC_URL_8453=your-value -- npx -y @three-ws/mcp-bridge

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "x402-bridge": {
      "command": "npx",
      "args": [
        "-y",
        "@three-ws/mcp-bridge"
      ],
      "env": {
        "MCP_BRIDGE_EVM_PRIVATE_KEY": "your-value",
        "MCP_BRIDGE_SVM_PRIVATE_KEY": "your-value",
        "MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC": "your-value",
        "MCP_BRIDGE_MAX_TOTAL_ATOMIC": "your-value",
        "MCP_BRIDGE_ALLOWED_PAYTO": "your-value",
        "MCP_BRIDGE_ALLOWED_HOSTS": "your-value",
        "MCP_BRIDGE_ALLOW_HTTP": "your-value",
        "MCP_BRIDGE_DISCOVER_LIMIT": "your-value",
        "MCP_BRIDGE_BAZAAR_URL": "your-value",
        "MCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIER": "your-value",
        "MCP_BRIDGE_MAX_DEPOSIT_ATOMIC": "your-value",
        "X402_MCP_BRIDGE_CHANNELS_DIR": "your-value",
        "RPC_URL_8453": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "x402-bridge": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@three-ws/mcp-bridge"
      ],
      "env": {
        "MCP_BRIDGE_EVM_PRIVATE_KEY": "your-value",
        "MCP_BRIDGE_SVM_PRIVATE_KEY": "your-value",
        "MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC": "your-value",
        "MCP_BRIDGE_MAX_TOTAL_ATOMIC": "your-value",
        "MCP_BRIDGE_ALLOWED_PAYTO": "your-value",
        "MCP_BRIDGE_ALLOWED_HOSTS": "your-value",
        "MCP_BRIDGE_ALLOW_HTTP": "your-value",
        "MCP_BRIDGE_DISCOVER_LIMIT": "your-value",
        "MCP_BRIDGE_BAZAAR_URL": "your-value",
        "MCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIER": "your-value",
        "MCP_BRIDGE_MAX_DEPOSIT_ATOMIC": "your-value",
        "X402_MCP_BRIDGE_CHANNELS_DIR": "your-value",
        "RPC_URL_8453": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • MCP_BRIDGE_EVM_PRIVATE_KEY secret env
    0x-prefixed 32-byte hex private key that funds USDC payments on EVM chains (Base, Arbitrum, …). At least one of the EVM/SVM keys is required. Treat like cash — use a dedicated low-balance wallet.
  • MCP_BRIDGE_SVM_PRIVATE_KEY secret env
    Solana secret key that funds USDC payments: base58 64-byte secret key (Phantom / solana-keygen format) or a JSON array of 64 integers. At least one of the EVM/SVM keys is required. Treat like cash.
  • MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC env
    Per-call spending cap in atomic units (USDC has 6 decimals). Payments above this abort with a clear reason.
  • MCP_BRIDGE_MAX_TOTAL_ATOMIC env
    Cumulative session spending ceiling in atomic units. Once total spend would exceed it, further payments abort until restart.
  • MCP_BRIDGE_ALLOWED_PAYTO env
    Comma-separated payee allowlist. When set, any payment whose payTo address is not listed is refused.
  • MCP_BRIDGE_ALLOWED_HOSTS env
    Comma-separated hostname allowlist for outbound paid requests. When set, any other host is refused before a request is signed.
  • MCP_BRIDGE_ALLOW_HTTP env
    Set to 1 to allow http:// targets (local development only). https is enforced otherwise.
  • MCP_BRIDGE_DISCOVER_LIMIT env
    Max number of x402 Bazaar resources to register as dynamic tools at startup. Set 0 to disable discovery.
  • MCP_BRIDGE_BAZAAR_URL env
    x402 Bazaar discovery endpoint. Override to point at a self-hosted or alternative bazaar.
  • MCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIER env
    How many request-amounts to deposit at once when opening an EVM batch-settlement channel.
  • MCP_BRIDGE_MAX_DEPOSIT_ATOMIC env
    Hard cap in atomic units on a single batch-settlement channel deposit or top-up.
  • X402_MCP_BRIDGE_CHANNELS_DIR env
    Directory for persisted batch-settlement channel state (survives client restarts).
  • RPC_URL_8453 env
    Per-chain RPC override, one variable per chain id (RPC_URL_ , e.g. RPC_URL_8453 for Base). Defaults to viem's public RPC for that chain.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account nirholas, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Otheri

  • More stars than 0% of the other 32568 servers in this category
  • Published to the registry more recently than 27% of the other 32568 servers in this category
  • Basic checks equal to or better than 100% of the other 32568 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is x402 Universal Payer safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: MCP_BRIDGE_EVM_PRIVATE_KEY, MCP_BRIDGE_SVM_PRIVATE_KEY

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.0.2) reached the registry 3 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Spec Driven Development, Remote Desktop Commander, FlyDocs

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Spec Driven Development

by formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Runs on your computer★ 440MITUpdated 14 months ago
Install

Remote Desktop Commander

by desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Runs in the cloud★ 211Updated yesterday
Install

FlyDocs

by flydocs.ai

Spec-driven development workflow: your agent works issues, sessions and the status lifecycle.

Runs on your computerUpdated today
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

@three-ws/mcp-bridge

One MCP server that can pay any x402-paid endpoint on the open web — the universal x402 payer for AI agents.

Quick start · Security · Tools · Environment · three.ws


A Model Context Protocol server that can pay any x402-paid endpoint on the open web. Point your agent at a URL that answers 402 Payment Required; the bridge signs, pays, retries, and hands back the response plus the settlement receipt — EVM exact, EVM batch-settlement, and Solana exact, all behind hard spending caps. It also pre-loads a tool per service discovered on the Coinbase x402 Bazaar, so the entire paid-API economy shows up in your tool list.

Quick start

Claude Code:

claude mcp add x402-bridge -e MCP_BRIDGE_SVM_PRIVATE_KEY=... -- npx -y @three-ws/mcp-bridge

Use -e MCP_BRIDGE_EVM_PRIVATE_KEY=0x... instead (or as well) to pay on Base and other EVM chains. At least one key is required.

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

{

"mcpServers": { "x402-bridge": { "command": "npx", "args": ["-y", "@three-ws/mcp-bridge"], "env": { "MCP_BRIDGE_EVM_PRIVATE_KEY": "0x…buyer key…", "MCP_BRIDGE_SVM_PRIVATE_KEY": "…base58 64-byte secret key…", "MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC": "100000", "MCP_BRIDGE_DISCOVER_LIMIT": "20" } } } }

Restart the client and ask for something like "pay $0.01 on Base for a weather report" — the model picks a matching Bazaar tool (or call_paid_endpoint), and the bridge auto-pays via x402.

Security and spending controls

This server holds private keys and spends real USDC. Read this section before configuring it.

  • Use a dedicated, low-balance wallet. MCP_BRIDGE_EVM_PRIVATE_KEY / MCP_BRIDGE_SVM_PRIVATE_KEY should never be a main wallet. Fund it with only what you are willing to let an agent spend.
  • Per-call cap. Any payment above MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC (default 100000 = $0.10 USDC) is refused before a payload is signed, with an error naming the network, asset, and cap.
  • Session ceiling. Cumulative spend per process is capped by MCP_BRIDGE_MAX_TOTAL_ATOMIC (default 1000000 = $1.00 USDC). This bounds the damage of a looping or prompt-injected agent: once the ceiling is reached, every further payment aborts until restart. The accumulator reserves atomically, so concurrent calls cannot jointly overshoot it.
  • Payee allowlist. Set MCP_BRIDGE_ALLOWED_PAYTO (comma-separated addresses) to refuse payment to any recipient you have not explicitly trusted.
  • SSRF guard. Every outbound payable URL — whether supplied by the model or by a Bazaar listing — passes one chokepoint that enforces an https-only scheme policy, resolves the hostname, and rejects the request if any resolved address is private, loopback, link-local (including 169.254.169.254 cloud metadata), CGNAT, ULA, or unspecified. Literal-IP hosts are checked directly; redirects are never followed (a public host cannot 3xx the bridge into internal infrastructure). http:// is available only behind the explicit MCP_BRIDGE_ALLOW_HTTP=1 dev opt-in.
  • Host allowlist. Set MCP_BRIDGE_ALLOWED_HOSTS (comma-separated hostnames) for strict mode: only listed hosts can be paid at all.
  • Deposit caps. Batch-settlement channel deposits are bounded by MCP_BRIDGE_MAX_DEPOSIT_ATOMIC (default $5.00) regardless of what a server requests.
  • Honest annotations. Every paying tool is annotated readOnlyHint: false, idempotentHint: false, openWorldHint: true, so MCP hosts apply their strictest confirmation policy. Retrying a paid call is a new charge.

What it exposes

On startup the bridge registers:

ToolWhat it does
call_paid_endpointUniversal fallback: hit any URL, auto-pay if it returns 402. Returns the response + parsed settlement.
list_bazaar_toolsReturns the cached list of Bazaar-discovered tools (name, resource, accepted payment terms). Free.
refresh_bazaarRe-queries the x402 Bazaar and re-registers dynamic tools without restarting. Free.
paid_ …One tool per discovered Bazaar resource (up to MCP_BRIDGE_DISCOVER_LIMIT), with that endpoint's schema.

Tools whose prices all exceed the per-call cap are filtered out at discovery time, so the model never sees a tool it cannot afford.

Tool annotations

Every tool carries MCP ToolAnnotations so hosts can apply the right confirmation policy:

  • call_paid_endpoint and every dynamic paid_* tool: readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true. These spend real USDC — each call settles a payment (capped by MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC), and retrying is a new charge. They never delete or overwrite caller state, hence not destructive.
  • list_bazaar_tools: readOnlyHint: true, idempotentHint: true, openWorldHint: false. Pure in-process cache read; free, no network.
  • refresh_bazaar: readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true. Free (no payment), but it mutates the registered tool set from the live Bazaar feed, so repeat calls can differ.

Tool results that are plain objects are returned as both a JSON text block (backward compatible) and structuredContent for typed clients.

Payment schemes

Payment paths registered on the buyer client:

  • eip155:* → BatchSettlementEvmScheme (preferred when the server advertises it; voucher-based, no per-call gas)
  • eip155:* → ExactEvmScheme (used when the server advertises scheme: "exact")
  • solana:* and the x402 v1 Solana networks (solana, solana-devnet, solana-testnet) → ExactSvmScheme / ExactSvmSchemeV1 (USDC SPL transfer co-signed by the advertised fee payer), registered together by registerExactSvmScheme(). v1 is the wire format most of the open x402 bazaar still speaks; the client always prefers v2 when a seller advertises both. The spending-cap hook reads either amount (v2) or maxAmountRequired (v1) so both are capped the same way.

Batch-settlement channel state is persisted to ~/.x402-mcp-bridge/channels/client/ so client restarts do not re-deposit on the next call.

Environment

VariableRequiredDefaultNotes
MCP_BRIDGE_EVM_PRIVATE_KEYone of EVM/SVM required—0x-prefixed 32-byte hex. Funds USDC payments on Base, Arbitrum, etc.
MCP_BRIDGE_SVM_PRIVATE_KEYone of EVM/SVM required—base58 64-byte secret key (Phantom/solana-keygen format) or 64-int JSON array.
MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMICno100000 (= $0.10 USDC at 6 decimals)Per-call spending cap. Payment aborts above this with a clear reason.
MCP_BRIDGE_MAX_TOTAL_ATOMICno1000000 (= $1.00 USDC)Cumulative session spending ceiling. Aborts further payments once reached.
MCP_BRIDGE_ALLOWED_PAYTOno— (any payee)Comma-separated payee allowlist. When set, unlisted payTo addresses are refused.
MCP_BRIDGE_ALLOWED_HOSTSno— (any public host)Comma-separated hostname allowlist for outbound paid requests.
MCP_BRIDGE_ALLOW_HTTPno0Set 1 to allow http:// targets. Local development only.
MCP_BRIDGE_DISCOVER_LIMITno20Max number of Bazaar tools to register dynamically. Set 0 to disable discovery.
MCP_BRIDGE_BAZAAR_URLnohttps://api.cdp.coinbase.com/platform/v2/x402/discovery/resourcesOverride to point at a self-hosted or alternative bazaar.
MCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIERno5How many request-amounts to deposit at once when opening a batch channel.
MCP_BRIDGE_MAX_DEPOSIT_ATOMICno5000000 (= $5.00 USDC)Hard cap on the deposit amount per channel open / top-up.
X402_MCP_BRIDGE_CHANNELS_DIRno~/.x402-mcp-bridge/channelsOverride the directory used by FileClientChannelStorage.
RPC_URL_ noviem default public RPCPer-chain RPC override. Example: RPC_URL_8453=https://mainnet.base.org.

MCP_BRIDGE_* key vars also fall back to EVM_PRIVATE_KEY / SVM_PRIVATE_KEY if you already have those set.

Spending cap behavior

The pre-payment hook inspects the selected accepts entry and aborts payload creation if the amount exceeds the per-call cap, the payee is outside the allowlist, or the session ceiling would be crossed. The tool result then carries a clear error message naming the network, asset, and the limit that was hit — useful for the model to decide whether to ask you to raise it.

Inspecting without a client

MCP_BRIDGE_SVM_PRIVATE_KEY=... npx -y @modelcontextprotocol/inspector npx -y @three-ws/mcp-bridge

The inspector connects over stdio and lists the static tools (call_paid_endpoint, list_bazaar_tools, `refresh_ba

Only the beginning is shown; read the rest in the repo

Ask PopNx