local402
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
๐ local402
One-command local paywall for AI agents
Turn any local server into a payable resource in seconds. Perfect for testing agents that need to pay before they can access your API or MCP tool.

npx local402 --target http://localhost:3000 --price 0.001
Website ยท npm ยท Report a bug
What is this?
local402 drops an x402-style HTTP 402 Payment Required paywall in front of any local HTTP server or MCP tool โ with a single command, zero config, and no blockchain.
Requests without payment get a clean 402. Requests that "pay" get proxied straight through to your real server. That's it.
It runs in fully simulated mode by default: no wallets, no gas, no external services, no waiting. Just instant, deterministic 402s you can build and test against locally.
agent โโโถ local402 (402 paywall) โโโถ your server
โ
โโโ no payment? โ 402 Payment Required
paid? โ proxied response โ
Related MCP server: x402 MCP Proxy
๐ธ Why local402?
Agents are learning to pay for things โ API calls, tool invocations, data, compute. The x402 protocol makes HTTP-native payments real. But there's a gap:
How do you test a paying agent without spending real money, standing up a wallet, or wiring a whole payment stack โ every single time?
You don't want to deploy a facilitator and fund a testnet wallet just to check that your agent notices a 402 and retries with payment. You want a paywall you can throw up in one command and tear down just as fast.
That's local402.
Without local402 | With local402 |
Stand up a facilitator + wallet + testnet funds |
|
Real transactions on every test run | Instant, free, deterministic |
Blockchain latency in your test loop | 0ms โ it's all local |
Payment logic tangled into your app | One reverse proxy in front of it |
Hard to reproduce the "unpaid" path | Guaranteed |
Use it to:
โ Test that your AI agent handles
402and retries with anx-paymentheaderโ Demo a "pay-per-call" API or MCP tool without touching a chain
โ Develop x402 client logic offline, on a plane, in CI
โ Prototype pricing before committing to real settlement
โก Quick Start
You don't even need to install it.
# 1. Have any local server running (your API, MCP tool, whatever)
# e.g. something on http://localhost:3000
# 2. Put a paywall in front of it
npx local402 --target http://localhost:3000 --price 0.001local402 is now listening on http://localhost:4020 and guarding your server.
# โ No payment โ 402 Payment Required
curl -i http://localhost:4020/
# โ
"Pay" โ request is proxied to your real server
curl -i http://localhost:4020/ -H "x-payment: simulated"Point your agent at http://localhost:4020 instead of your real server, and watch it learn to pay. ๐
๐ Usage
local402 --target <url> [options]Flag | Alias | Default | Description |
|
| (required) | The server to protect, e.g. |
|
|
| Port local402 listens on |
|
| Price advertised in the | |
|
| Currency / asset label for the price | |
|
| Simulated mode โ no blockchain, instant (default) | |
| Reserved for real x402 settlement (coming soon) | ||
| Disable colored console output |
The rule
No
x-paymentheader โ402 Payment Required(with a helpful JSON body + headers).Has
x-payment: simulated(orpaid) โ request is proxied to--target, and the real response comes back untouched.
In simulated mode, any non-empty x-payment value is accepted โ simulated and paid are just the canonical ones.
Examples
# Guard an MCP tool on a custom port, charge 0.01
local402 --target http://localhost:8787 --port 9000 --price 0.01
# Free status check โ always open, never paywalled
curl http://localhost:4020/__local402๐ How it works
local402 is a tiny reverse proxy with one opinion: pay first, then pass through.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ local402 โ
โ :4020 (paywall) โ
โโโโโโโโโโโ โ โ โโโโโโโโโโโโโโโโ
โ agent โ โโโโโโโโถ โ x-payment header present? โ โ your server โ
โ / curl โ โ โ โ :3000 โ
โโโโโโโโโโโ โ NO โโถ 402 Payment Required โ โโโโโโโโโโโโโโโโ
โฒ โ โ โฒ
โ โ YES โโถ proxy the request โโโผโโโโโโโโโโโโโโโโโโ
โ โ return real response โ โ
โโโโโโโโโโโโโโโโโคโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโ
402 or proxied response โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโThe unpaid response (HTTP 402):
{
"x402Version": 1,
"error": "Payment Required",
"message": "This resource costs 0.001 USD. Retry with header 'x-payment: simulated'.",
"accepts": [
{
"scheme": "simulated",
"network": "local",
"maxAmountRequired": "0.001",
"asset": "USD",
"payTo": "local402-simulated",
"resource": "/",
"description": "local402 simulated paywall",
"mimeType": "application/json"
}
],
"hint": "x-payment: simulated"
}Response headers on a 402:
HTTP/1.1 402 Payment Required
x-payment-required: true
x-payment-amount: 0.001
x-payment-asset: USD
x-payment-network: local
accept-payment: x-payment: simulatedOn a paid request, local402 attaches a simulated settlement receipt so your client can verify the flow end-to-end:
x-payment-response: <base64 JSON receipt with a sim txHash>๐บ Roadmap
local402 starts simple on purpose. The plan:
v0.1 โ Simulated mode. Instant, local, blockchain-free
402paywall. (you are here)v0.2 โ Real x402 settlement. Verify actual
X-PAYMENTpayloads via a pluggable facilitator.v0.3 โ MCP-native mode. First-class paywalling for MCP tools/resources, not just HTTP.
v0.4 โ Per-route pricing. Different prices for different paths and methods.
v0.5 โ Usage dashboard. Live TUI of requests, payments, and revenue.
Want to shape it? Open an issue.
๐ค Contributing
Contributions, ideas, and bug reports are all welcome โ this is meant to be a friendly little tool.
git clone https://github.com/wushu75/local402.git
cd local402
npm install
npm run dev -- --target http://localhost:3000 # run from source
npm run build # compile to dist/Fork it ๐ด
Create a branch (
git checkout -b feat/amazing-thing)Commit your changes (
git commit -m 'feat: amazing thing')Push and open a PR
No contribution is too small โ even a typo fix helps.
๐ License
MIT ยฉ the local402 contributors. Do whatever you want with it.
โญ Star the repo if this is useful
If local402 saved you from standing up a payment stack just to test an agent,
drop a star โ it genuinely helps other people find it.
Built for the agents that pay their way. ๐
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogโฆ
This server cannot be deployed
Maintenance
Related MCP Connectors
Monetize any MCP server: x402 paywall, pay-per-call billing in USDC on Base, agent marketplace.
Agent x402 Paywall MCP โ Coinbase HTTP 402 protocol + on-chain settlement. Agents pay per-call
Machine-payable API infrastructure for autonomous agents. Per-call x402 settlement in USDC.
Pay-per-action access to APIs and MCP tools over Lightning L402 and Base USDC x402.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAg402 is the payment layer for Coinbase's x402 protocol. Wrap any API or MCP server with a paywall in one command (ag402 serve), or let your AI agent auto-pay for paid APIs (ag402 run). Zero code changes for both buyers and sellers. Solana USDC, ~0.5s settlement, non-custodial, 648+ tests, MIT licensed. Works with Claude Code, Cursor, OpenClaw, LangChain, AutoGen, CrewAI out of the box.9MIT
- AlicenseNot gradedqualityCmaintenanceA local MCP proxy that connects to remote MCP servers and automatically handles x402 payments, signing USDC on-chain when a tool returns HTTP 402.16 npm1MIT

mcp-x402-acceptofficial
AlicenseNot gradedqualityCmaintenanceProxies an existing MCP server to add an x402 paywall, charging AI agents per tool call without modifying the upstream server.63 npmMIT- AlicenseAqualityBmaintenanceEnables AI agents to discover and pay for x402-gated HTTP APIs, handling 402 Payment Required flows with local signing. Supports EVM and Solana with non-custodial wallet management.3327 npmMIT