@trishchuk/mcp-fetch-server
@trishchuk/mcp-fetch-server
AI 에이전트(Claude Code, Claude Desktop, Cursor, Windsurf, Cline, Antigravity 등)를 위한 안티봇 방어 기능을 갖춘 fetch 도구를 제공하는 고성능 Model Context Protocol (MCP) 서버입니다.
@trishchuk/fetch를 기반으로 구동되며, 실제 브라우저의 TLS (JA3/JA4, ClientHello) 및 HTTP/2 핑거프린트를 정확하게 모방하는 네이티브 curl-impersonate 스타일 HTTP 클라이언트입니다.
🚀 이 서버를 사용해야 하는 이유는?
표준 Node.js/Undici HTTP 클라이언트는 최신 봇 보호 시스템(Cloudflare Turnstile / Under Attack Mode, DataDome, PerimeterX / HUMAN, Akamai, Kasada, AWS WAF)에 의해 즉시 감지되어 차단됩니다.
또한, 표준 MCP 페칭 도구는 대용량 페이로드에서 자주 실패하거나 LLM 토큰 컨텍스트를 폭발시킵니다.
@trishchuk/mcp-fetch-server는 두 가지 문제를 모두 해결합니다:
현실적인 브라우저 가장: 최신 브라우저(Chrome, Safari, Firefox)의 정확한 암호 제품군, TLS 확장, ALPN 순서 및 HTTP/2 설정 프레임을 복제합니다.
LLM 컨텍스트 안전 잘림: 응답 본문을 2MB(
maxResponseBytes)로 스트리밍하고 제한합니다. 초과하는 큰 페이지는 오류와 함께 중단되는 대신 깔끔하게 잘리고"truncated": true로 표시됩니다.상태 저장 세션:
session매개변수를 사용하여 여러 에이전트 도구 호출 간에 쿠키, 로그인 상태 및 연결 풀을 유지합니다.스마트 인코딩: MIME 유형을 자동 감지하여 HTML/JSON/XML의 경우 깨끗한 UTF-8 텍스트를, 바이너리 파일(이미지, PDF, 문서)의 경우 Base64를 반환합니다.
Related MCP server: webfetch-mcp
✅ 요구 사항
Node.js >= 24 —
@trishchuk/fetch에 필요합니다.사전 빌드된 네이티브 바이너리는 macOS (arm64, x64), Linux (x64/arm64, glibc 및 musl) 및 Windows (x64)용으로 제공됩니다. 다른 플랫폼은 기본 클라이언트에서 지원되지 않습니다.
📦 설치 및 설정
옵션 1: npx로 실행 (설치 불필요)
npx를 통해 서버를 직접 실행할 수 있습니다:
npx -y @trishchuk/mcp-fetch-server옵션 2: 전역 또는 로컬 설치
# Global
npm install -g @trishchuk/mcp-fetch-server
# Or clone & install locally
git clone https://github.com/x51xxx/mcp-fetch-server.git
cd mcp-fetch-server
npm install⚙️ MCP 클라이언트 설정
Claude Code
CLI를 통해 직접 추가:
# Using npx (recommended)
claude mcp add fetch -- npx -y @trishchuk/mcp-fetch-server
# Or using local path
claude mcp add fetch -- node /path/to/mcp-fetch-server/src/index.jsClaude Desktop
claude_desktop_config.json에 추가:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"fetch": {
"command": "npx",
"args": ["-y", "@trishchuk/mcp-fetch-server"]
}
}
}Cursor / Windsurf / Antigravity (.mcp.json)
작업 공간에 .mcp.json을 생성하거나 업데이트:
{
"mcpServers": {
"fetch": {
"command": "npx",
"args": ["-y", "@trishchuk/mcp-fetch-server"]
}
}
}🛠️ 도구 참조: fetch
입력 매개변수
매개변수 | 유형 | 기본값 | 설명 |
|
| 필수 | 대상 절대 URL (예: |
|
|
| HTTP 메서드 ( |
|
|
| 키-값 쌍의 요청 헤더 ( |
|
|
| UTF-8 문자열로 전송되는 요청 본문 (JSON, 폼 인코딩, 원시 텍스트). |
|
|
| 브라우저 핑거프린트 프리셋 (예: |
|
|
| 선언된 OS: |
|
|
| 프록시 URL: |
|
|
| 여러 호출 간 클라이언트 연결 및 쿠키 저장소 공유를 위한 세션 ID. |
|
|
| 사용자 정의 DNS 핀 (예: |
|
|
| 리디렉션 모드: |
|
|
| 프로토콜 버전 강제: |
|
|
| 최소 TLS 버전: |
|
|
| 최대 TLS 버전: |
|
|
| 밀리초 단위의 전체 요청 시간 제한. |
|
|
| 본문 제한 (최대 2MB). 이를 초과하는 응답은 안전하게 잘립니다. |
|
|
| 본문 반환 형식: |
응답 스키마
1. 성공적인 HTTP 교환
완료된 모든 HTTP 전송은 표준 JSON 결과를 반환합니다 (redirect: "manual" 아래의 404, 500 또는 3xx 포함):
{
"status": 200,
"statusText": "OK",
"ok": true,
"url": "https://example.com/data",
"redirected": false,
"headers": {
"content-type": "application/json; charset=utf-8",
"cache-control": "max-age=3600"
},
"bodyEncoding": "text",
"body": "{\"message\": \"Hello world\"}",
"truncated": false
}2. 네트워크 / 전송 실패
네트워크 연결이 실패하거나 시간이 초과되거나 URL이 유효하지 않은 경우, 도구는 isError: true를 반환합니다:
{
"error": true,
"code": "TIMEOUT",
"message": "failed to read response body: request or response body error: operation timed out"
}💡 에이전트 사용 예시
1. 보호 대상의 봇 감지 우회
{
"url": "https://protected-site.com/products",
"impersonate": "chrome_147",
"platform": "macos",
"headers": {
"Accept-Language": "en-US,en;q=0.9"
}
}2. 영구 세션(쿠키 저장소)을 사용한 다단계 스크래핑
// Step 1: Login / Obtain Session Cookie
{
"url": "https://example.com/api/login",
"method": "POST",
"session": "agent-crawler-01",
"headers": { "Content-Type": "application/json" },
"body": "{\"user\":\"admin\",\"password\":\"secret\"}"
}
// Step 2: Access protected resource (session cookies automatically preserved)
{
"url": "https://example.com/api/dashboard",
"session": "agent-crawler-01"
}3. SOCKS5 프록시를 통한 라우팅
{
"url": "https://geo-restricted.example.com",
"proxy": "socks5://user:pass@proxy.example.com:1080",
"impersonate": "safari_26"
}4. 바이너리 자산 가져오기 (이미지, PDF)
{
"url": "https://example.com/report.pdf",
"encoding": "base64"
}5. SSRF 안전 수집을 위한 DNS 핀
{
"url": "https://internal-origin.example.com/feed",
"resolve": {
"internal-origin.example.com": "192.0.2.42"
},
"redirect": "manual"
}🔬 가장 프리셋 및 핑거프린트
@trishchuk/mcp-fetch-server는 광범위한 브라우저 핑거프린트를 지원합니다:
Chrome:
"chrome_100"…"chrome_149"(예:"chrome_147","chrome_131","chrome_116")Edge:
"edge_101"…"edge_148"Opera:
"opera_116"…"opera_131"Firefox:
"firefox_109","firefox_133","firefox_147"…,"firefox_private_136"및"firefox_android_135"포함Safari:
"safari_15.3"…"safari_26.4", iOS/iPad 변형 포함 ("safari_ios_26","safari_ipad_26")OkHttp (Android 앱):
"okhttp_3.9"…"okhttp_5"동적:
"random","weighted_random"(핑거프린트를 자동 순환,session별 고정)
버전 번호는 밑줄을 사용합니다 (chrome_147, chrome147 아님). 알 수 없는 이름은 모든 허용된 변형을 나열하는 InvalidArg 오류와 함께 빠르게 실패합니다.
🧪 개발
npm install
npm start # run the server over stdio
npm test # end-to-end smoke tests, no network required
npm run format # format with Biome
npm run lint # lint with Biome
npm run check # format + lint check, also run before publish테스트는 stdio를 통해 실제 서버를 실행하고 로컬 HTTP 서버에 대해 MCP 클라이언트로 구동하여 제한에서의 잘림, 리디렉션 모드, HEAD, base64 본문, 시간 초과 및 전송 오류를 다룹니다.
📄 라이선스
MIT © Taras Trishchuk
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- Alicense-qualityAmaintenanceEnables AI agents to perform undetectable browser automation that bypasses Cloudflare, antibots, and social media blocks. Provides 105 tools for element extraction, network debugging, and real-world web scraping with a 98.7% success rate on protected sites.1,589MIT
- Alicense-qualityCmaintenanceDrop-in MCP replacement for the built-in WebFetch tool. Adds domain-scoped custom HTTP headers via YAML config, with bot-block detection, HTML-to-text extraction, retries, proxies, and prompt-injection sanitization.1MIT
- AlicenseAqualityDmaintenanceContext-aware web fetching for LLMs, providing 7 tools to check page size, fetch with truncation, extract code/sections/links/tables, and paginate large documents.7MIT
- AlicenseAqualityDmaintenanceEnables LLMs to fetch and extract web content as markdown with browser impersonation to bypass basic bot detection.1MIT
Related MCP Connectors
Reliable web access for AI agents: smart HTTP, rotating proxies, and full-browser rendering.
Deterministic AI agent microtools, no accounts/API keys. fetch_extract: 98% token cut. 38 tools.
Web scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/x51xxx/mcp-fetch-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server