
Agentpay
io.github.up2itnow0822Published by GitHub account up2itnow0822v3.1.0Updated Oct 27, 2026
Non-custodial x402 payment MCP server for AI agents. Wallets and payments on 17 chains.
The publisher's own server: AgentPay — Pay-per-call AI Microservices
Overview
Non-custodial x402 payment and wallet MCP server that lets an AI assistant deploy wallets, send payments and tokens, swap, bridge and manage spend policy on…
- What you can do
- Deploy and inspect agent wallets, queue approvals and read wallet contract history
- Quote and pay x402 resources, including payment sessions, with bound payee, asset and network
- Set and check spend policy and budget limits, including OTel budget tools
- Look up tokens, register custom tokens, read balances and send token transfers
- Swap tokens, bridge USDC and create mutual-stake escrow
- Check ERC-8004 identity, reputation and UAID verification
- When to use it
- Useful when an assistant must pay for x402-gated resources or move funds on Base mainnet or Base Sepolia under operator-defined limits. Suited to agentic payment experiments and paid MCP gateway flows, starting on testnet with bounded values.
- Requirements
- Runs locally over stdio via the npm package agentpay-mcp (Node.js). Wallet tools need AGENT_PRIVATE_KEY and AGENT_WALLET_ADDRESS; optional CHAIN_ID, RPC_URL, FACTORY_ADDRESS, NFT_CONTRACT_ADDRESS and SESSION_TTL_SECONDS. Spending requires at least one AGENTPAY_POLICY_* variable or AGENTPAY_ALLOW_UNPOLICED_SPEND=1. Outbound network access to an RPC endpoint and x402 hosts is needed.
Installation
In SourceWeft
- Open Agentpay in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
AgentPay MCP
AgentPay MCP is a stdio Model Context Protocol server for x402 payments and wallet operations. It exposes Agent Wallet SDK functions as MCP tools and loads a caller-controlled signing key from the local process environment.
The current npm package is agentpay-mcp v5.0.0.
Start without funds
Check the installed command without loading wallet credentials:
Use the AgentPay Wallet Starter for a no-funds verification of allowed, approval-required, and blocked policy outcomes.
MCP client configuration
Wallet tools read the following environment variables:
Operator safety variables. They are read from the server environment only and cannot be changed through MCP:
Without at least one AGENTPAY_POLICY_* variable, or
AGENTPAY_ALLOW_UNPOLICED_SPEND=1, every value-moving tool refuses to spend.
Example MCP configuration:
Do not commit a real signing key. Use the client or operating system's secret mechanism where one exists. Start on Base Sepolia before using Base mainnet.
Tool groups
The tool registry in src/index.ts exposes these groups:
Tool schemas and handlers live under src/tools/.
Security boundaries
These boundaries matter more than the feature list:
- The server reads
AGENT_PRIVATE_KEYinto its local Node.js process and uses viem for signing. Protect the process, environment, and MCP client config. - Spend policy is default-deny. The operator policy comes from
AGENTPAY_POLICY_*environment variables, is loaded once, and cannot be changed or cleared through MCP. Without it, value movement is refused unless the operator setsAGENTPAY_ALLOW_UNPOLICED_SPEND=1. set_spend_policycan only tighten. Each call adds a layer to its scope; a request that raises a limit, drops a constraint, or widens an allowlist is refused, and earlier layers keep their rolling-window accounting. Loosening requires an operator restart. All policy state is still in-process and is reset by a restart.x402_payandx402_session_startrequiremax_payment_ethandpay_to. The asset is always bound: it defaults to the chain's USDC unlessassetnames another;networkcan be bound too. A 402 that names another payee, asset, or network, the zero address, or a debit (principal plus the 0.77% protocol fee) above the cap is refused before any wallet write.AGENTPAY_X402_MAX_PAYMENTis a USDC ceiling; with it set, non-USDC payments are refused. Usex402_quoteto read the offered terms first.- If a payment settles but its response is not delivered — the response fails, or the paid request is answered with any non-2xx status — every new x402 payment to that host (any path, port or spelling of the name) and to that payee (behind any host) is locked until an operator reconciles it. The lock is written before the wallet call, so a crash cannot lose it.
- Caller-selected outbound requests (x402, quote, sessions, OTel kill
callback) use a safe transport:
httpsonly (a kill callback may usehttponly for a host inAGENTPAY_KILL_CALLBACK_ALLOWED_HOSTS), private, loopback, link-local and metadata destinations refused, DNS resolved once with the socket pinned to the validated address, no automatic redirects, and response bodies capped at 2 MiB (1 MiB rendered). send_payment,send_token,swap_tokens,bridge_usdc,create_escrow,x402_pay, andx402_session_startrun inside a spend intent. Identical retries replay;idempotencyKeydistinguishes equal payments; an unclear post-broadcast outcome locks the intent with no timer. Locks are process-local unlessAGENTPAY_STATE_DIRjournals them. Reconcile withagentpay-mcp spend-intents listandresolve <id> settled|unsettled, which is a local CLI, never an MCP tool.<id>is the shell-safeid:handlelistprints for each intent.settled(the value moved) clears the lock and retires a keyed intent'sidempotencyKeyfor good; a keyless intent has no key to retire, so an identical new request is a new payment (useidempotencyKeyfor retry safety).unsettled(nothing moved) clears the lock so a retry may pay. Only one process may use a state directory at a time: stop the server beforeresolve(listshows a read-only snapshot while it runs), and give each server its ownAGENTPAY_STATE_DIR.idempotencyKeymay not contain control, invisible formatting, or line-separator characters; keys are printed escaped and shell-inert.send_paymenttakes decimals from the token registry or the token contract; a differingtoken_decimalsis refused before signing.- On-chain limits exist only when the wallet owner configures them directly on
AgentAccountV2. The application policy does not write those contract limits, and an over-limit transaction is a human gate only when the owner key is kept separate from the agent key. get_transaction_historyreads on-chain wallet events and, for unscopedallqueries, also lists x402 settlements made by this server process (final URL of the paid response, which may differ from the 402 issuer under redirects, method, amount, token, payee, tx hash, replay count). Those x402 receipts mean the payment was broadcast (a tx hash was returned), not that a receipt was confirmed. They are kept in memory only, capped at 256, and lost on restart. They are omitted from block-scoped queries. This is not an MCP request log: it does not record rejected pre-chain attempts or read-only calls.- Runtime wallet configuration currently supports Base mainnet and Base
Sepolia. Unsupported chain IDs fail closed in
src/utils/client.ts. - Swap, bridge, escrow, and payment tools can move funds and consume gas. Test with bounded values and independent wallet limits.
Read docs/security-posture.md for the detailed
control map and known limitations.
Upgrading from 4.x
v5.0.0 is a breaking security release. Before upgrading:
- Set an operator policy (
AGENTPAY_POLICY_*) or explicitly opt out withAGENTPAY_ALLOW_UNPOLICED_SPEND=1; otherwise every spend is refused. - Pass
max_payment_ethandpay_toto everyx402_payandx402_session_startcall. Usex402_quoteto read the terms first. - Stop relying on
set_spend_policyto raise or clear limits. - Move any
httpor private-network x402 endpoint tohttps, or allow it withAGENTPAY_ALLOWED_PRIVATE_HOSTS(production) orAGENTPAY_ALLOW_PRIVATE_NETWORK=1(development only). - Set
AGENTPAY_STATE_DIRon long-lived servers.
docs/security-remediation-2026-10.md
maps every finding to its fix and test.
Technical proof index
The repository keeps deeper interoperability and buyer-safety evidence in versioned documents:
docs/agentpay-buyer-flow-parity.mdcovers typed payment errors and buyer flow behavior.docs/paid-mcp-gateway-hardening.mdcovers default-deny controls and quota envelopes.docs/agentpay-five-tool-parity-proof.mdrecords the five-tool parity check.docs/agentpay-escrow-reputation-boundary.mddefines the escrow and reputation boundary.docs/paid-mcp-proxy-discovery-readiness.mdrecords discovery readiness evidence.docs/x402-chain-neutral-gateway-profile.mddefines the packaged chain-neutral profile.docs/x402-dynamic-paid-mcp-manifest-drift.mddocuments checks for stale paid-tool metadata.docs/mcp-registry-listing-proof.mdandllms.txtexpose directory metadata.docs/smithery-paid-mcp-installation.mdandexamples/smithery-paid-mcp-installationdocument the packaged Smithery path without asserting a live listing.docs/paid-provider-health-proof.mddefines provider-health evidence.docs/hosted-x402-proxy-verification.mddefines hosted-proxy preflight checks.docs/x402-native-vs-stripe-proxy.mdseparates local spend control from hosted proxy billing.docs/dependency-pin-policy.mddefines the release gate for payment-critical packages.
AgentPay pins viem exactly at 2.57.4.
The directory comparison was captured against [email protected]; the
package version at the top of this README is the current release.
Verify a clean checkout
The CI workflow is separate from scheduled daily review and repair workflows. A scheduled-review failure is not a product-test result, and a repair success does not replace CI.
Related repositories
- Agent Wallet SDK provides the wallet and policy library used by this server.
- AgentPay Wallet Starter provides the combined no-funds onboarding path.
- NVIDIA NeMo Agent Toolkit Examples PR 17 is an independently merged integration example.
Support and disclosure
- File product bugs through the GitHub issue queue.
- Report security issues through
SECURITY.md. - Contribution rules live in
CONTRIBUTING.md.
License
MIT. See LICENSE.
Source: README.md at commit e9bba91
Tools
0Version history
1- v3.1.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Agentpay integrations
AgentPay — Pay-per-call AI Microservices
help.agentpayOfficial publisher
AgentPay offers 34 pay-per-call AI and data microservices over x402, settled in USDC on Base, with no API keys required.

AgentPay Doc Tools
Published by GitHub account noah-silver
Remote MCP server offering paid per-call document and web utilities: PDF-to-text, RSS/Atom/JSON feed parsing, and sitemap URL listing.

AgentPay Domain & Network Lookup
Published by GitHub account noah-silver
Remote MCP server for paid DNS, WHOIS/RDAP, IP ownership and combined domain reports, billed per call in USDC or prepaid credits.

AgentPay Web Extract
Published by GitHub account noah-silver
A remote pay-per-call MCP server that fetches a web page and returns clean markdown, metadata and links for an assistant.

AgentPay (all tools)
Published by GitHub account noah-silver
Remote pay-per-call MCP server offering web page extraction, DNS/WHOIS/IP lookups, and PDF, feed and sitemap tools, billed in USDC or prepaid credits.