Payfetch MCP server
io.github.forum-labs/payfetch·v1.0.0x402 paying-fetch client for AI agents. Spending caps, approval, receipts. Non-custodial.
0 stars
Reviews
Write oneNobody has reviewed Payfetch yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Payfetch tools
No tool declarations could be read from the package source. They show once the server is installed.
Public scan report
scanner v0.1.9 · 2026-09-26 · same rubric, same numbers if you re-run it
- Code scan56 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 78 days ago12/15
- Maintainer identityregistry namespace matches repository owner6/10
How Payfetch compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 75/100
- higher than 45% of 48,255 servers
Install Payfetch in Claude Code, Cursor or VS Code
Runs npx -y @forum-labs/payfetch on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add payfetch -- npx -y @forum-labs/payfetch
What the publisher says
From the Payfetch repository's README, as published. We do not edit it. Read it on GitHub
payfetch
payfetch lets an AI agent fetch a URL and, when the server answers HTTP 402 (the x402 payment protocol), pay for it automatically, but only within a spending policy you control. It is non-custodial: you bring your own wallet, the key stays on your machine, and no MCP tool can raise the limits. It ships as a local stdio MCP server with a small library and CLI alongside it.
The reference x402 clients pay whatever a 402 asks for. payfetch is the opposite: the policy and safety surface is the point. Per-call, per-day, and per-host spend caps; host allow and deny lists; a human-approval threshold; optional pre-payment trust and safety checks; and an append-only local receipt for every attempt, whether it paid, was denied, was a dry run, or failed.
- Website: https://forum-labs.com
- Source: https://github.com/forum-labs/payfetch
Status and scope
and MPP are parsed and then refused with a reason recorded in your receipts.
- Version 1.0.0. Policy schema p3f.policy.v1, client schema p3f-1.0.0.
- x402 only, Base USDC, the exact scheme. Solana-settled x402, the upto scheme,
so a depeg makes the caps wrong by the depeg factor.
- Requires Node 22 or newer. Windows is not supported.
- USD is treated as USDC at 1.00. Budgets are denominated in USD and settle in USDC,
Install
The package ships compiled JavaScript, so there is no build step and no tsx for consumers. Run it on demand with npx:
# Operator CLI (status, verify, clear-autodeny, report):
npx @forum-labs/payfetch status
# MCP server (what an MCP client launches):
npx -p @forum-labs/payfetch payfetch-mcpThe package exposes two binaries: payfetch (the operator CLI) and payfetch-mcp (the stdio MCP server). Because there are two, the server is launched with npx -p @forum-labs/payfetch payfetch-mcp; the -p flag selects the named binary.
Quickstart
1. Configure a wallet (pick exactly one signer)
payfetch refuses to start if zero or more than one signer source is set. It never guesses which wallet to spend from.
Raw private key, the simplest option. Use a dedicated low-balance wallet:
export PAYFETCH_PRIVATE_KEY=0xabc...Key file, which must be mode 600 (payfetch refuses to start otherwise):
printf '0xabc...' > ~/.payfetch-wallet.key && chmod 600 ~/.payfetch-wallet.key
export PAYFETCH_KEY_FILE=~/.payfetch-wallet.keyCoinbase CDP server wallet, where the keys are managed by CDP under your account instead of being pasted into an environment variable:
export PAYFETCH_CDP_API_KEY_ID=...
export PAYFETCH_CDP_API_KEY_SECRET=...
export PAYFETCH_CDP_WALLET_SECRET=...
export PAYFETCH_CDP_ACCOUNT_NAME=payfetch # optional; stable name across restarts2. Wire it into an MCP client
Claude Desktop, in claudedesktopconfig.json:
{
"mcpServers": {
"payfetch": {
"command": "npx",
"args": ["-y", "-p", "@forum-labs/payfetch", "payfetch-mcp"],
"env": {
"PAYFETCH_PRIVATE_KEY": "0xabc...",
"PAYFETCH_TEST_MODE": "1"
}
}
}
}Claude Code:
claude mcp add payfetch \
--env PAYFETCH_PRIVATE_KEY=0xabc... \
--env PAYFETCH_TEST_MODE=1 \
-- npx -y -p @forum-labs/payfetch payfetch-mcpThe examples set PAYFETCHTESTMODE=1 so your first runs settle on Base Sepolia and never touch mainnet. Drop it when you are ready to spend real USDC.
3. First paid fetch
Quote before you pay. paymentquote returns the terms, the selected quote, the trust-check result, your remaining budgets, and the policy decision (wouldpay or would_deny). It signs nothing and reserves nothing:
{ "url": "https://api.example.com/paid-endpoint" }Dry run the whole pipeline. paid_fetch with "dryRun": true runs the exact code path a real payment takes, up to but not including the signature.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Payfetch: common questions
- Is Payfetch MCP server safe?
- Mostly: it is graded B (75/100). Read the Payfetch safety report
- How do I install Payfetch?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Payfetch need an API key?
- Yes. The registry entry asks for
PAYFETCH_PRIVATE_KEY,PAYFETCH_CDP_API_KEY_ID,PAYFETCH_CDP_API_KEY_SECRET,PAYFETCH_CDP_WALLET_SECRET. - Is Payfetch maintained?
- The last commit was 117 days ago (2026-07-10). The latest release is v1.0.0.