mcpField
R
Region Fetch

Region Fetch

Local
regionfetch.devBrowser Automation0Updated 8w ago

About Region Fetch

Region Fetch is an MCP server that retrieves public HTTPS URLs as they appear to visitors in a selected country. It returns an Ed25519-signed receipt and verifies the receipt and response body before passing results to a model.

Key features

  1. 01Fetch public HTTPS URLs from a chosen country
  2. 02Supports HTTP and browser modes
  3. 03Creates Ed25519-signed receipts
  4. 04Verifies receipt signatures and response bodies

Use cases

  1. 01Check how a website appears in different countries
  2. 02Verify the origin and integrity of a retrieved response

MCP support

The stdio MCP server exposes one `regionfetch` tool to retrieve URLs from a selected country and return a verified receipt.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"dev-regionfetch": {
"command": "npx",
"args": [
"-y",
"regionfetch-mcp"
],
"env": {
"REGION_FETCH_WALLET_PRIVATE_KEY": "<REGION_FETCH_WALLET_PRIVATE_KEY>",
"REGION_FETCH_MAX_PAYMENT": "<REGION_FETCH_MAX_PAYMENT>",
"REGION_FETCH_BASE_URL": "<REGION_FETCH_BASE_URL>",
"REGION_FETCH_PAYMENT_SIGNATURE": "<REGION_FETCH_PAYMENT_SIGNATURE>"
}
}
}
}
Run commandnpx -y regionfetch-mcp
Environment variables to set
REGION_FETCH_WALLET_PRIVATE_KEYSecretPrivate key of a funded Base wallet. The server signs one fresh x402 authorization per tool call. Keep it in the host's env block; it is never a tool argument.
REGION_FETCH_MAX_PAYMENTPer-payment ceiling, for example "$0.10". Use "off" to disable the cap.
REGION_FETCH_BASE_URLDeployment origin.
REGION_FETCH_PAYMENT_SIGNATURESecretA single pre-made x402 authorization. Funds exactly one request, so this is for one-shot testing only; prefer the wallet key.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmregionfetch-mcp0.1.1

Tools

1

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
urlstringYesPublic HTTPS URL to fetch.
modeenumNohttp for a lightweight request; browser to render JavaScript. Defaults to http.http | browser
countryenumYesCountry the request should originate from.US | DE | JP | BR | IN

Details

From the project README

regionfetch-mcp

MCP server for Region Fetch — fetch a public HTTPS URL as a visitor in a specific country would see it, with a signed Ed25519 receipt proving where the retrieval came from.

Pre-release. Not yet published to npm. Build from source: https://github.com/regionfetch/regionfetch

npx -y regionfetch-mcp

Node 20.11+. stdio transport. Exposes exactly one tool: regionfetch.

Configuration

Wallet mode (recommended)
{
  "mcpServers": {
    "regionfetch": {
      "command": "npx",
      "args": ["-y", "regionfetch-mcp"],
      "env": {
        "REGION_FETCH_BASE_URL": "https://regionfetch.dev",
        "REGION_FETCH_WALLET_PRIVATE_KEY": "0x...",
        "REGION_FETCH_MAX_PAYMENT": "$0.10"
      }
    }
  }
}

The server signs one fresh x402 authorization per tool call. This is the only configuration that keeps working past the first request.

Static signature (testing only)
"env": { "REGION_FETCH_PAYMENT_SIGNATURE": "<one x402 authorization>" }

One authorization funds one request, so the second tool call will fail. The server says so on stderr at startup. Useful for a one-shot compatibility check, not for a running server.

Wallet mode wins when both are configured.

Environment variables

VariableDefaultPurpose
REGION_FETCH_BASE_URLhttps://regionfetch.devDeployment origin. A trailing /api is stripped.
REGION_FETCH_WALLET_PRIVATE_KEY—Funded Base wallet key. Enables wallet mode.
REGION_FETCH_MAX_PAYMENT$0.10Per-payment ceiling. off disables it.
REGION_FETCH_PAYMENT_SIGNATURE—A single pre-made authorization.
REGION_FETCH_RPC_URL—RPC endpoint for on-chain reads during payment construction.
REGION_FETCH_TIMEOUT_MS120000Per-request timeout.
REGION_FETCH_ALLOW_INSECURE_HTTP0Permit an http:// base URL. Development only.

Legacy GEOFETCH_BASE_URL, GEOFETCH_PAYMENT_SIGNATURE, and PAYMENT_SIGNATURE are still read, with the canonical names taking precedence. Their use is reported as deprecated on stderr.

The tool

regionfetch — url (https, ≤ 2048 chars), country (US | DE | JP | BR | IN), mode (http | browser, default http).

Results use the v1 envelope:

{
  "status": 200,
  "ok": true,
  "response": { "data": { "...": "..." }, "receipt": { "...": "..." } },
  "verification": { "valid": true, "signatureValid": true, "bodyHashMatches": true }
}

verification is an additive field: the server verifies each receipt against the deployment's published key and the returned body before handing it to the model. Consumers reading only status, ok, and response are unaffected.

Non-2xx responses keep the upstream status and JSON body verbatim and set isError: true. Terminal paid failures (502, 504) keep their signed receipts — they are the evidence the paid attempt happened.

Security

  • Wallet keys and payment authorizations are never accepted as tool arguments, never written to stdout or stderr, and never returned in tool output.
  • stdout carries JSON-RPC only; all diagnostics go to stderr through a redacting logger. Tests assert both.
  • Only the tools capability is advertised. No resources, prompts, or subscriptions are implemented or claimed.

Full documentation: https://github.com/regionfetch/regionfetch

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.