Fetch Router

dev.fetchrouterPublished by fetchrouter.devOfficial publisherv0.1.1Updated Nov 3, 2026

Verified web fetch for agents: detects blocks and empty JS pages, falls back, bills only on success.

VerifiedStreamable HTTPWeb executable

Overview

Fetch Router's hosted MCP server (fetchrouter.dev), published by fetchrouter.dev; API key required; Streamable HTTP; 2 tools.

No AI overview yet: these facts come from the registry entry and the server itself.

Publisher
fetchrouter.dev
Endpoint
fetchrouter.dev
Last checked

Installation

In SourceWeft

  1. Open Fetch Router in the dashboard and add it to a workspace.
  2. Connect X-API-Key credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/dev.fetchrouter%2Ffetchrouter-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "fetch-router": {
      "type": "http",
      "url": "https://fetchrouter.dev/mcp",
      "headers": {
        "X-API-Key": "<YOUR_API_KEY>"
      }
    }
  }
}

README

fetchrouter-mcp

MCP server for Fetch Router: web fetch for AI agents that only bills when the page actually loaded.

Agents often get a 200 OK that is really a Cloudflare challenge, a DataDome block or an empty React shell, and then summarise the error page. Fetch Router checks every page for HTTP errors, block and challenge pages (Cloudflare, DataDome, PerimeterX, Akamai, Imperva, Kasada…), login walls, empty JavaScript shells and text you expect to see. If a check fails it retries through another route, such as a headless browser. Failed fetches cost nothing.

When to use it

  • Your agent reads pages it didn't choose: search results, links from users, sites you don't control.
  • You need to know whether a page really loaded, not just that the request returned 200.
  • Some targets are single-page apps that need a browser, and you don't want to run Playwright yourself.
  • You want to pay per page that works, not per request.

When not to use it

  • Crawling a whole site, mapping links or search. Use a crawler (Firecrawl, Crawl4AI, Apify). Fetch Router does one URL at a time.
  • Pages behind a login or paywall. Not supported, by policy.
  • One or two sites you know well. A plain fetch or your own Playwright script is cheaper.
  • Heavily protected retail and travel sites today. Premium unblocking routes aren't live for customer traffic yet. See the benchmark for what passes.

Setup

Get a free key (500 credits, no card) at https://fetchrouter.dev/#signup.

Remote (no install). Streamable HTTP at https://fetchrouter.dev/mcp, with your key in a header:

sh
claude mcp add --transport http fetchrouter https://fetchrouter.dev/mcp --header "Authorization: Bearer fr_..."

Other clients: URL https://fetchrouter.dev/mcp, header Authorization: Bearer fr_... (or X-API-Key: fr_...).

Claude Code plugin (MCP server plus a verified-fetch skill; asks for your key once and stores it securely):

sh
claude plugin marketplace add JonnoGit/fetchrouter-mcpclaude plugin install fetchrouter@fetchrouter

Local (stdio via npx).

json
{  "mcpServers": {    "fetchrouter": {      "command": "npx",      "args": ["-y", "fetchrouter-mcp"],      "env": { "FETCHROUTER_API_KEY": "fr_..." }    }  }}

Claude Code: claude mcp add fetchrouter -e FETCHROUTER_API_KEY=fr_... -- npx -y fetchrouter-mcp

Tools

  • fetch_page (url, mode?, expect_text?, expect_selector?, max_cost?): returns markdown (default) or HTML, plus which route delivered it and what was tried. max_cost caps credits: 1 = plain HTTP only, 2 (default) allows a browser. If the page can't be loaded, the error says why (blocked:cloudflare, http_404, expect_text_missing…) and nothing is billed.
  • domain_reliability (domain): pass rate per route for a site over the last 30 days, from real verified fetches. Free, no key needed.

How well does it work?

A fixed list of 166 public pages in six site types is fetched every night with plain HTTP and with a headless browser, from a datacenter IP. Results, method and CSV: https://fetchrouter.dev/benchmark

Pricing

1 credit ($0.001) per static page, 2 per browser-rendered page, failures free. Details: https://fetchrouter.dev/#pricing

Environment (stdio)

VariableDefault
FETCHROUTER_API_KEYrequired
FETCHROUTER_BASE_URLhttps://fetchrouter.dev
FETCHROUTER_MAX_CHARS60000 (longer pages are truncated)

Development

sh
npm installnpm run buildFETCHROUTER_API_KEY=fr_... node dist/index.js

The tool definitions live in src/tools.ts and are shared with the hosted endpoint at https://fetchrouter.dev/mcp.

MIT licensed. Operated by One + Done LLC. Contact: [email protected]

Source: README.md at commit f75ec4d

Tools

2

fetch_page

Fetch a web page (verified)

Fetch a public URL and get its content only if it really loaded. Checks for block pages, CAPTCHAs, login walls and empty JavaScript shells, and retries through other routes (including a headless browser) automatically. Billed only on success. Returns markdown by default. If ok is false, the reason says why (e.g. blocked:cloudflare, http_404, expect_text_missing): don't retry the same URL with the same settings.

Parametersurlrequiredmodemax_costexpect_textexpect_selector

domain_reliability

Which fetch routes work for a site

Pass rates per route (plain HTTP, browser, providers) for a domain over the last 30 days, from real verified fetches. Use it to choose mode/max_cost before fetching a hard site. Free, no key needed.

Parametersdomainrequired

Version history

1
  1. v0.1.1LatestNov 3, 2026

Score

100% 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 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts