klawfetch
Provides tools for geo-distributed web fetching, screenshot, and scraping via the KlawFetch API, enabling OpenAI agents to fetch content from multiple global regions.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@klawfetchFetch https://news.ycombinator.com from Sydney"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@klawfetch/mcp-server
Your agent can't see the web from Tokyo. Now it can.
KlawFetch is a geo-distributed HTTP proxy built for AI agents. Fetch web content from Frankfurt, Sydney, New York, or San Francisco β with one API call.
This MCP server gives any Claude, OpenAI, or MCP-compatible agent instant access to KlawFetch's full capabilities.
Quick Start
# Install and run (needs Node.js 18+)
npx @klawfetch/mcp-serverSet your API key:
KLAWFETCH_API_KEY=your_key npx @klawfetch/mcp-serverGet an API key at klawkeeper.xyz
Related MCP server: Novada Proxy
Add to Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"klawfetch": {
"command": "npx",
"args": ["@klawfetch/mcp-server"],
"env": {
"KLAWFETCH_API_KEY": "your_key_here"
}
}
}
}Restart Claude Desktop. Your agent now has geo-distributed web access.
Add to OpenAI / Other MCP Clients
Any MCP-compatible client works:
{
"mcpServers": {
"klawfetch": {
"command": "npx",
"args": ["@klawfetch/mcp-server"],
"env": {
"KLAWFETCH_API_KEY": "your_key_here"
}
}
}
}Tools
fetch_url
Fetch any URL from a specific global region.
"Fetch https://example.com from Frankfurt"
"GET the homepage of news.ycombinator.com from Sydney"
"POST to https://api.example.com/data with body {key: value}"Parameters:
Parameter | Type | Default | Description |
| string | (required) | URL to fetch |
| string |
| HTTP method |
| object | β | Custom headers |
| any | β | Request body |
| string | auto |
|
| boolean |
| Follow redirects |
| number |
| Timeout in ms |
| boolean |
| Parse response as JSON |
screenshot
Capture a visual screenshot of any web page.
"Screenshot https://example.com at 1920x1080"
"Take a full-page screenshot of the dashboard"scrape
Extract structured data using CSS selectors.
"Scrape all h2 titles and .price elements from https://shop.example.com"render
Fetch with full JavaScript rendering (for SPAs/dynamic content).
"Render https://spa-app.com and wait for network idle"list_regions
Check which regions are online.
"What KlawFetch regions are available?"Direct API Usage (no MCP)
curl
# Fetch a URL from Frankfurt
curl -X POST https://klawfetch.xyz/v1/fetch \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "region": "eu-frankfurt"}'Python
import requests
response = requests.post(
"https://klawfetch.xyz/v1/fetch",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"url": "https://example.com", "region": "eu-frankfurt"}
)
data = response.json()
print(f"Status: {data['status']}, Body: {data['body'][:200]}")TypeScript / Node.js
const res = await fetch("https://klawfetch.xyz/v1/fetch", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
url: "https://example.com",
region: "eu-frankfurt",
}),
});
const data = await res.json();
console.log(`Status: ${data.status}, Body: ${data.body.slice(0, 200)}`);Available Regions
Region | ID | Location |
π©πͺ Frankfurt |
| Germany |
π¦πΊ Sydney |
| Australia |
πΊπΈ San Francisco |
| California |
πΊπΈ New York |
| New York |
Check real-time status: GET https://klawfetch.xyz/v1/regions
Pricing
Operation | Credits |
Fetch | 2 credits |
Screenshot | 10 credits |
Scrape | 5 credits |
JS Render | 15 credits |
~1,000 simple fetches for $1. All regions included.
Free tier: 100 requests/day, no credit card required.
Get credits at klawkeeper.xyz. Pay with USDC, BTC, or card.
Why KlawFetch?
The problem: Your AI agent runs in us-east-1. Every web request comes from the same IP block. Sites geo-restrict content, rate-limit your region, or serve different data based on location.
The solution: KlawFetch routes requests through VPS nodes in 4 global regions. Your agent sees the web the way a human in Frankfurt, Sydney, or San Francisco would.
π 4 regions β fetch from where your users are
β‘ Sub-300ms β optimized proxy, not a browser farm
π No IP leaking β your agent's identity stays hidden
πΈ Screenshots + JS rendering β see what humans see
π€ Built for agents β MCP-native, API-first, pay-per-request
Environment Variables
Variable | Description |
| Your KlawKeeper API key (required) |
| Custom API base URL (default: |
License
MIT
Links
API Docs: klawfetch.xyz
Get API Key: klawkeeper.xyz
Full Stack: klawstack.xyz
This server cannot be deployed
Maintenance
Related MCP Connectors
Reliable web access for AI agents: smart HTTP, rotating proxies, and full-browser rendering.
Web search, browser automation, scraping, crawling and CAPTCHA solving for AI agents.
Reliable web fetching for AI agents with retry, circuit breaker, caching, and anti-bot bypass
Hosted browser for AI agents: screenshots, post-JS DOM, console, WCAG. No install, no API key.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI agents to scrape any website by providing tools for JavaScript rendering, antibot bypass, and automatic captcha solving. It supports synchronous, asynchronous, and batch scraping operations with built-in proxy rotation.5207 npmMIT

Novada Proxyofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to route HTTP requests through millions of real residential IPs, bypassing anti-bot systems and geo-targeting by country or city.4MIT- AlicenseNot gradedqualityDmaintenanceProvides AI agents with reliable web fetching capabilities, handling retries, caching, and anti-bot bypass automatically.MIT
- AlicenseAqualityDmaintenanceEnables AI agents to browse the web, bypass anti-bots, render JavaScript, take screenshots, and perform structured data extraction using the ScrapeOps Proxy API.35 npmMIT