MCP server for Claude Code that fetches web content using real browser TLS/HTTP2 fingerprints. Bypasses Cloudflare, Akamai, and other bot detection systems that block standard HTTP clients.
Built on koon — a browser impersonation library using Rust + BoringSSL.
Standard fetch, curl, or built-in web tools get blocked by bot detection on many popular websites (403 Forbidden, CAPTCHAs, empty responses). koon-mcp solves this by making requests that are indistinguishable from a real browser at the TLS and HTTP/2 protocol level.
| Site | Category | Standard fetch | koon-mcp |
|---|---|---|---|
| medium.com | Articles / Blog | 403 | Full content |
| bloomberg.com | Financial news | 403 | Full content |
| ticketmaster.com | Events / Tickets | 403 | Full content |
| zillow.com | Real estate | 403 | Full content |
| glassdoor.com | Jobs / Salaries | 403 | Full content |
| stockx.com | E-Commerce | 403 | Full content |
| tripadvisor.com | Travel / Reviews | 403 | Full content |
| bestbuy.com | Electronics | Timeout | Full content |
| nike.com | E-Commerce | JS skeleton only | Full content |
| linkedin.com | Social / Jobs | Restricted | Full content |
- Browser impersonation — Chrome, Firefox, Safari, Edge fingerprints (175+ profiles)
- HTML → Markdown — Clean extraction using Readability + Turndown (no images, scripts, iframes)
- JSON handling — Auto-formats JSON responses as fenced code blocks
- 15-minute cache — Self-cleaning in-memory cache to avoid redundant requests
- Content truncation — Large pages capped at 100k characters to stay within context limits
- Auto HTTPS upgrade —
http://URLs are automatically upgraded tohttps://
claude plugin install koon-fetchOr add the marketplace first if not yet available in the official directory:
claude plugin marketplace add scrape-hub/koon-mcp
claude plugin install koon-fetch@scrape-hub/koon-mcpAdd to your Claude Code MCP config (~/.claude/settings.json or project .mcp.json):
{
"mcpServers": {
"koon-fetch": {
"command": "npx",
"args": ["-y", "koon-mcp"]
}
}
}Fetches a URL and returns the content as markdown.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | yes | The URL to fetch |
prompt |
string | no | Hint for what information to extract |
Example usage in Claude Code:
"Fetch the pricing page from example.com"
Claude will call koon_fetch with url: "https://example.com/pricing" and return clean markdown content.
- koonjs opens a TLS connection with a real browser fingerprint (JA3, AEAD, ALPN, HTTP/2 frames)
- The response HTML is parsed with JSDOM
- Readability extracts the main article content (falls back to full body)
- Turndown converts HTML to clean markdown
- Result is cached for 15 minutes
- Node.js 18+
- koon native binaries are bundled with
koonjs(no extra install needed)
MIT