Acts as a proxy to enable paid ReadFetch tools in MCP hosts by automatically signing x402 payment requests using a Base mainnet wallet.
Also known as readfetch/mcp-x402-proxy, mcp-x402-proxy, @readfetch/mcp-x402-proxy
- Stars
- 0
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 0.1.17
- Last commit
- Nov 9, 2026
- License
- MIT
What is readfetch MCP?
readfetch acts as a proxy to enable paid ReadFetch tools in MCP hosts by automatically signing x402 payment requests using a Base mainnet wallet.
Summary generated from the project's README
About readfetch MCP server
Accessing paid web scraping and content extraction tools from within MCP hosts like Claude Desktop or Cursor is made possible by this proxy. It functions as a stdio server that intercepts tool calls and automatically handles x402 payment requests by signing them with a Base mainnet wallet. This allows developers to use premium tools such as readfetch_text, readfetch_crawl, and readfetch_scrape without needing an MCP host that natively supports payment headers.
To set up the server, you must provide an EVM_PRIVATE_KEY in your environment variables and ensure the connected wallet contains USDC on the Base mainnet. You can control spending by setting a READFETCH_MAX_PAYMENT_USD limit, which defaults to 1 USD and can be increased up to 100 USD. The server executes calls against the specified endpoint and manages retries automatically to ensure successful tool execution. Because any invoked tool can spend funds from the provided key, it is recommended to use a dedicated wallet with a low balance.
What you can do with it
- 1Extracting full text from websitesAn AI client can use the readfetch_text tool to retrieve complete content from a URL after a probe indicates it is necessary.
- 2Automating web scraping tasksDevelopers can trigger complex scraping operations like readfetch_scrape or residential scraping through their MCP host.
- 3Reporting integration issuesIf a tool call fails or returns unexpected results, you can send feedback to the developers for free.
Written from the project's README. Every use case is checked against a quote from it.
How to install readfetch MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall readfetch MCP in Claude Code
$ claude mcp add --env 'EVM_PRIVATE_KEY=<YOUR_EVM_PRIVATE_KEY>' mcp-x402-proxy -- npx -y @readfetch/mcp-x402-proxyInstall readfetch MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"mcp-x402-proxy": {
"command": "npx",
"args": [
"-y",
"@readfetch/mcp-x402-proxy"
],
"env": {
"EVM_PRIVATE_KEY": "<YOUR_EVM_PRIVATE_KEY>"
}
}
}
}Install readfetch MCP in VS Code
.vscode/mcp.json
{
"servers": {
"mcp-x402-proxy": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@readfetch/mcp-x402-proxy"
],
"env": {
"EVM_PRIVATE_KEY": "<YOUR_EVM_PRIVATE_KEY>"
}
}
}
}Install readfetch MCP in VS Code CLI
$ code --add-mcp '{"name":"mcp-x402-proxy","type":"stdio","command":"npx","args":["-y","@readfetch/mcp-x402-proxy"],"env":{"EVM_PRIVATE_KEY":"<YOUR_EVM_PRIVATE_KEY>"}}'Install readfetch MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"mcp-x402-proxy": {
"command": "npx",
"args": [
"-y",
"@readfetch/mcp-x402-proxy"
],
"env": {
"EVM_PRIVATE_KEY": "<YOUR_EVM_PRIVATE_KEY>"
}
}
}
}Install readfetch MCP in Codex
$ codex mcp add mcp-x402-proxy --env 'EVM_PRIVATE_KEY=<YOUR_EVM_PRIVATE_KEY>' -- npx -y @readfetch/mcp-x402-proxyInstall readfetch MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.mcp-x402-proxy] command = "npx" args = ["-y", "@readfetch/mcp-x402-proxy"] [mcp_servers.mcp-x402-proxy.env] EVM_PRIVATE_KEY = "<YOUR_EVM_PRIVATE_KEY>"
Install readfetch MCP in Gemini CLI
$ gemini mcp add -s user -e 'EVM_PRIVATE_KEY=<YOUR_EVM_PRIVATE_KEY>' mcp-x402-proxy npx -- -y @readfetch/mcp-x402-proxyInstall readfetch MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"mcp-x402-proxy": {
"command": "npx",
"args": [
"-y",
"@readfetch/mcp-x402-proxy"
],
"env": {
"EVM_PRIVATE_KEY": "<YOUR_EVM_PRIVATE_KEY>"
}
}
}
}Configuration
EVM_PRIVATE_KEYSecretBase mainnet wallet for paid tools; omit for readfetch_probe and tools/list only
READFETCH_DEVSet to 1 for localhost/Sepolia dev only; never with production READFETCH_MCP_URL
READFETCH_MAX_PAYMENT_USDMaximum USD per x402 authorization (default 1, max 100)
READFETCH_MCP_URLUpstream MCP URL for tools/list (default https://readfetch.com/mcp)
SMOKE_TOOL
| Name | Description | |
|---|---|---|
| EVM_PRIVATE_KEY | Base mainnet wallet for paid tools; omit for readfetch_probe and tools/list only | Secret |
| READFETCH_DEV | Set to 1 for localhost/Sepolia dev only; never with production READFETCH_MCP_URL | |
| READFETCH_MAX_PAYMENT_USD | Maximum USD per x402 authorization (default 1, max 100) | |
| READFETCH_MCP_URL | Upstream MCP URL for tools/list (default https://readfetch.com/mcp) | |
| SMOKE_TOOL | — |
Automated checks
Ran Nov 14, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablereadfetch/mcp-x402-proxy is public and reachablegithub.com/readfetch/mcp-x402-proxy ↗Pass
- Package names this repository as its source@readfetch/mcp-x402-proxy names readfetch/mcp-x402-proxy as sourcenpmjs.com/package/@readfetch/mcp-x402-proxy ↗Pass
- Build provenance (Sigstore attestation)No build attestation published for this releaseNot checked
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-11-09github.com/readfetch/mcp-x402-proxy ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from @readfetch/mcp-x402-proxyPass
- No critical advisory in the package or its dependencies115 resolved dependencies checked; no critical advisoryosv.dev ↗Pass
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubreadfetch MCP + x402 signing proxy
Most MCP hosts (Cursor, Claude Desktop, etc.) cannot attach PAYMENT-SIGNATURE on tools/call.
This stdio MCP server lists tools from https://readfetch.com/mcp, executes tools/call against /v1/{endpoint} on the same host (so HTTP 402 triggers @x402/fetch payment), and signs retries automatically.
Requirements
- Node.js 20+
- A wallet on Base mainnet with a little USDC for paid tools (
readfetch_text, …).tools/listdoes not load your key; the firsttools/calldoes. - Private key in env — never commit it
Cursor / Claude MCP config
{
"mcpServers": {
"readfetch": {
"command": "npx",
"args": ["-y", "@readfetch/mcp-x402-proxy@0.1.17"],
"env": {
"EVM_PRIVATE_KEY": "0xYOUR_KEY"
}
}
}
}
From a checkout:
{
"mcpServers": {
"readfetch": {
"command": "node",
"args": ["/absolute/path/to/readfetch/tools/mcp-x402-proxy/index.mjs"],
"env": {
"EVM_PRIVATE_KEY": "0xYOUR_KEY"
}
}
}
}
Optional: READFETCH_MCP_URL (default https://readfetch.com/mcp; https only for readfetch.com / www.readfetch.com, or localhost / 127.0.0.1 / [::1] with READFETCH_DEV=1). Upstream redirects are rejected. READFETCH_MAX_PAYMENT_USD (default 1, max 100) caps each x402 authorization. On readfetch.com upstream, payments must match READFETCH_EXPECTED_PAYTO (default catalog payee). READFETCH_DEV=1 is only for local MCP URLs and enables Sepolia there — never set it when READFETCH_MCP_URL points at production.
Wallet risk: any tool the model invokes (readfetch_crawl, batch, …) can spend USDC from your key until the wallet is empty (subject to the per-payment cap). Use a dedicated low-balance wallet.
Install from a checkout:
cd tools/mcp-x402-proxy
npm ci
npm ci in a git checkout uses the committed package-lock.json. npx @readfetch/mcp-x402-proxy installs exact dependency versions pinned in package.json (npm does not ship the lockfile in the published tarball).
Local smoke (checkout)
npm ci && npm test
npm run smoke # readfetch_probe (free)
SMOKE_TOOL=readfetch_text npm run smoke # paid REST path; needs Base USDC
From this directory — not the repo root:
cd tools/mcp-x402-proxy
npm login # user must own or belong to npm org @readfetch
npm publish --access public # first publish of a scoped package
Wrong: npm publish @readfetch/mcp-x402-proxy from ReadFetch/ (404 — nothing to publish there).
If the @readfetch org does not exist on npmjs.com, create it or temporarily change name in package.json to an unscoped name you control.
Default tool path
readfetch_probewith{ "url": "…" }(free; may includepreview~400 chars when HTML, not a bot wall)readfetch_textwith the sameurl- If probe reports
challenge: true, usereadfetch_scrape(thenreadfetch_scrape_residentialif needed)
Feedback (integration issues)
After a confusing 402, MCP result, or doc mismatch, call readfetch_feedback (free — no EVM_PRIVATE_KEY) with:
{ "request_id": "<X-Request-Id from that call>", "category": "integration", "message": "…" }
Paid delivery disputes use POST /v1/claims, not feedback. Details: readfetch.com/docs#feedback.
Without this proxy
- REST:
awal x402 pay https://readfetch.com/v1/text -d '{"url":"…"}'or@x402/fetchin your app - Direct MCP URL: only works if your host can set payment headers on the HTTP request to
/mcp
See also readfetch integrations and SKILL.md.
Directory: Official MCP Registry io.github.readfetch/mcp-x402-proxy · Glama listing steps in readfetch/readfetch docs/GLAMA.md (operator).
readfetch MCP questions
How do I add readfetch MCP to Claude Code?
Run claude mcp add --env 'EVM_PRIVATE_KEY=<YOUR_EVM_PRIVATE_KEY>' mcp-x402-proxy -- npx -y @readfetch/mcp-x402-proxy in your terminal. Add --scope user to make it available in every project.
How do I add readfetch MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
How do I use paid tools with this server?
You must provide an EVM private key in your environment variables and have a wallet on Base mainnet with USDC.
Can I limit how much money the tools spend?
Yes, you can use the READFETCH_MAX_PAYMENT_USD environment variable to cap each authorization.
What is the risk of using my main wallet?
Any tool invoked by the model can spend USDC from your key until the wallet is empty, though it is subject to your per-payment cap.