intercept-mcp
intercept-mcp
AI에게 웹을 읽을 수 있는 능력을 부여하세요. 명령어 하나면 충분하며, API 키가 필요 없습니다.
이 도구가 없으면 AI가 URL에 접속할 때 403 오류, 차단 화면, 또는 원시 HTML 덩어리만 보게 됩니다. intercept를 사용하면 거의 항상 깔끔한 마크다운 형식으로 콘텐츠를 가져와 바로 사용할 수 있습니다.
트윗, 유튜브 영상(가능한 경우 자막 포함), arXiv 논문, PDF, 위키백과 문서, GitHub 저장소를 처리합니다. 첫 번째 전략이 실패하면 최대 14번까지 추가 시도한 후 포기합니다.
Claude Code, Claude Desktop, Codex, Cursor, Windsurf, Cline 등 모든 MCP 클라이언트와 호환됩니다.
설치
Claude Code
claude mcp add intercept -s user -- npx -y intercept-mcpCodex
codex mcp add intercept -- npx -y intercept-mcpCursor
설정 → MCP → 서버 추가:
{
"mcpServers": {
"intercept": {
"command": "npx",
"args": ["-y", "intercept-mcp"]
}
}
}Windsurf
설정 → MCP → 서버 추가 → 위와 동일한 JSON 설정.
Claude Desktop
claude_desktop_config.json에 추가하세요:
{
"mcpServers": {
"intercept": {
"command": "npx",
"args": ["-y", "intercept-mcp"]
}
}
}기타 MCP 클라이언트
stdio MCP 서버를 지원하는 모든 클라이언트는 npx -y intercept-mcp를 실행할 수 있습니다.
fetch 도구 사용 시 API 키가 필요하지 않습니다.
Related MCP server: urltomarkdown-mcp
작동 원리
URL은 네 단계로 처리됩니다:
1. 사이트별 핸들러
알려진 URL 패턴은 대체 파이프라인 이전에 전용 핸들러로 라우팅됩니다:
패턴 | 핸들러 | 결과물 |
| Twitter/X | 트윗 텍스트, 작성자, 미디어, 참여 통계 (타사 API 경유) |
| YouTube | 제목, 채널, 길이, 조회수, 설명, 자막 (자막 제공 시) |
| arXiv | 논문 메타데이터, 저자, 초록, 카테고리 |
| 추출된 텍스트 (텍스트 레이어가 있는 PDF만 해당) | |
| Wikipedia | Wikimedia REST API를 통한 깔끔한 문서 콘텐츠 |
| GitHub | 원시 README.md 콘텐츠 |
2. 공유 캐시 (agentsweb.org)
모든 요청은 페처(fetcher)에 도달하기 전에 AI 에이전트를 위한 글로벌 공유 마크다운 캐시인 agentsweb.org를 확인합니다. 다른 에이전트가 이미 해당 URL을 가져왔다면 50ms 이내에 결과를 얻을 수 있습니다.
성공적인 모든 가져오기 작업은 자동으로 기여됩니다. 항목은 자가 치유 합의 모델을 통해 신뢰도를 얻습니다. 독립적인 인스턴스가 동일한 URL을 가져와 동일한 콘텐츠를 확인하면 신뢰도가 증가합니다.
INTERCEPT_SHARED_CACHE=false로 완전히 거부하거나, INTERCEPT_CACHE_READ_ONLY=true로 읽기 전용 모드(기여하지 않고 소비만 함)를 사용할 수 있습니다.
agentsweb.org API
agentsweb.org는 직접 사용할 수 있는 독립형 엔드포인트도 제공합니다:
/web?q=— 웹 검색/research?q=— 검색 + 가져오기 + 캐싱을 한 번에 수행/fetch?url=— 요청 시 가져오기, 자동 캐싱
전체 API 문서는 agentsweb.org/docs를 참조하세요.
3. 대체 파이프라인
일치하는 핸들러가 없거나 핸들러가 결과를 반환하지 않으면, URL은 다단계 파이프라인으로 진입합니다:
단계 | 페처 | 전략 |
0 | agentsweb.org | 글로벌 공유 마크다운 캐시 — 다른 에이전트가 이미 가져왔다면 즉시 반환 |
1 | Cloudflare Browser Run | JS 렌더링 + 마크다운 추출 (선택 사항, API 토큰 필요) |
1 | Jina Reader | 깔끔한 마크다운 추출 서비스 |
2 | Wayback Machine | archive.org의 아카이브 버전 |
2 | archive.ph | timemap API + 스텔스 TLS 페치를 통한 아카이브 스냅샷 |
2 | Google Cache | Google의 캐시된 페이지 버전 |
2 | Arquivo.pt | 포르투갈 웹 아카이브 (광범위한 국제적 커버리지) |
2 | Codetabs | CORS 프록시 |
3 | Raw fetch | 브라우저 헤더를 사용한 직접 GET + Turndown 마크다운 변환 |
3 | Stealth fetch | got-scraping을 통한 브라우저 TLS 지문 위장 (옵트인, 아래 참조) |
4 | RSS, CrossRef, Semantic Scholar, HN, Reddit | 메타데이터 / 토론 대체 |
5 | OG Meta | Open Graph 태그 (보장된 대체 수단) |
2단계 페처는 병렬로 실행됩니다. 여러 개가 성공하면 가장 품질이 높은 결과가 선택됩니다. 다른 모든 단계는 순차적으로 실행됩니다.
모든 페처는 일반 텍스트가 아닌 Turndown을 통해 적절한 마크다운(제목, 링크, 굵게, 표, 코드 블록)을 반환합니다.
4. 캐싱
결과는 TTL(성공 시 30분, 실패 시 5분)과 함께 메모리에 캐시됩니다. LRU 퇴거 정책을 사용하여 최대 100개 항목을 저장합니다. 실패한 URL도 캐시되어 죽은 URL에 대한 재시도를 방지합니다.
도구
fetch
URL을 가져와 깔끔한 마크다운으로 반환합니다.
url(문자열, 필수) — 가져올 URLmaxTier(숫자, 선택 사항, 1-5) — 속도가 중요한 경우 이 단계에서 중단
search
웹을 검색하고 결과를 반환합니다.
query(문자열, 필수) — 검색어count(숫자, 선택 사항, 1-20, 기본값 5) — 결과 개수
BRAVE_API_KEY가 설정되어 있으면 Brave Search API를 사용하고, SEARXNG_URL이 설정되어 있으면 SearXNG를 사용하며, 마지막 수단으로 신뢰할 수 없는 DuckDuckGo를 사용합니다.
프롬프트
research-topic
주제를 검색하고 다중 소스 요약을 위해 상위 결과를 가져옵니다.
topic(문자열) — 조사할 주제depth(문자열, 기본값 "3") — 가져올 상위 결과 개수
extract-article
URL을 가져와 콘텐츠의 핵심 요점을 추출합니다.
url(문자열) — 가져와서 요약할 URL
환경 변수
변수 | 필수 | 설명 |
| 아니오 | 검색을 위한 Brave Search API 키 |
| 아니오 | 자체 호스팅 SearXNG 인스턴스 URL (권장) |
| 아니오 | "Browser Rendering - Edit" 권한이 있는 Cloudflare API 토큰 |
| 아니오 | Cloudflare 계정 ID ( |
| 아니오 | 스텔스 페처를 활성화하려면 |
| 아니오 | agentsweb.org 공유 캐시를 비활성화하려면 |
| 아니오 | 공유 캐시를 소비만 하고 기여하지 않으려면 |
| 아니오 | 성공적인 가져오기에 대한 메모리 내 캐시 TTL (ms 단위, 기본값 |
| 아니오 | 실패한 가져오기에 대한 메모리 내 캐시 TTL (ms 단위, 기본값 |
| 아니오 | 최대 메모리 내 캐시 항목 수 (기본값 |
| 아니오 | 표준 프록시 패스스루 — 모든 아웃바운드 가져오기(스텔스 포함)를 프록시를 통해 라우팅. |
검색: DuckDuckGo 대체 수단이 있지만 속도 제한이 있고 신뢰할 수 없습니다. 프로덕션 환경에서는 SearXNG를 자체 호스팅하고 SEARXNG_URL을 설정하거나 Brave Search API 키를 받으세요.
가져오기: 키 없이도 작동합니다. JavaScript가 많은 페이지(SPA, React 사이트)를 위해 Cloudflare Browser Run(이전의 Browser Rendering)을 활성화하려면 CF_API_TOKEN + CF_ACCOUNT_ID를 설정하세요.
스텔스 페치 (USE_STEALTH_FETCH)
사용 시 위험은 본인 책임입니다. 활성화하면 got-scraping을 사용하여 실제 브라우저 TLS 지문(Chrome/Firefox 암호화 제품군, HTTP/2 설정, 헤더 순서)을 위장하는 페처가 추가됩니다. 이는 자동화된 요청을 차단하는 사이트에서 봇 탐지 및 CAPTCHA 트리거를 우회할 수 있습니다.
이 페처는 일반 원시 페치 이후 3단계에서 실행됩니다. 원시 페치가 차단되면(CAPTCHA, Cloudflare 챌린지, 403) 스텔스 페처가 브라우저 위장을 통해 재시도합니다.
이는 일부 웹사이트의 서비스 약관을 위반할 수 있습니다. intercept-mcp의 저자는 이 기능의 사용 방식에 대해 어떠한 책임도 지지 않습니다. 기본적으로 비활성화되어 있으며 명시적으로 선택해야 합니다.
프록시 사용 (HTTPS_PROXY)
원시 페치가 차단되기 시작하면 가장 효과적인 해결책은 일반적으로 더 정교한 지문이 아니라 깨끗한 아웃바운드 IP입니다. intercept-mcp는 표준 HTTPS_PROXY / HTTP_PROXY / NO_PROXY 환경 변수를 준수하므로, 이미 보유한 프록시를 통해 모든 아웃바운드 트래픽을 라우팅할 수 있습니다:
HTTPS_PROXY=http://user:pass@proxy.example.com:8080 npx intercept-mcp이는 자체 호스팅 Squid, Tailscale 종료 노드, 3proxy를 실행하는 $5 VPS, 또는 상용 주거용 프록시(Bright Data, Oxylabs 등) 등 모든 HTTP(S) 프록시와 작동합니다. 스텔스 페처와 got-scraping 호출도 이를 자동으로 감지합니다.
SearXNG 자체 호스팅
안정적인 검색을 위해 Docker로 SearXNG를 자체 호스팅하세요. 설정 파일은 저장소에 포함되어 있습니다:
git clone https://github.com/bighippoman/intercept-mcp.git
cd intercept-mcp/searxng && docker compose up -d그런 다음 SEARXNG_URL=http://localhost:8888을 설정하세요. 속도 제한이나 CAPTCHA 없이 Google + Bing + DuckDuckGo + Wikipedia + Brave를 통합합니다.
또는 기존 SearXNG 인스턴스를 사용해도 됩니다. SEARXNG_URL을 해당 URL로 설정하기만 하면 됩니다.
URL 정규화
수신된 URL은 자동으로 정리됩니다:
60개 이상의 추적 매개변수(UTM, 클릭 ID, 분석, A/B 테스트 등) 제거
해시 조각 제거
HTTPS로 업그레이드
AMP 아티팩트 정리
기능적 매개변수(
ref,format,page,offset,limit) 보존
콘텐츠 품질 감지
각 페처 결과는 품질 점수가 매겨집니다. 다음의 경우 자동으로 실패 처리됩니다:
CAPTCHA / Cloudflare 챌린지
로그인 차단
본문에 HTTP 오류 페이지 포함
200자 미만의 콘텐츠
요구 사항
Node.js >= 18
기본 사용 시 API 키 불필요
Available Tools
2 toolsfetchFetch URLA
Fetch a URL and return its content as clean markdown. Handles Twitter/X tweets, YouTube videos, arXiv papers, and PDFs directly. Falls back to a multi-tier chain: Jina Reader, Wayback Machine, raw fetch, RSS, CrossRef, Semantic Scholar, HackerNews, Reddit, OG meta. Results are cached for the session.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to fetch | |
| maxTier | No | Stop at this tier (1-5, default 5). Lower = faster but fewer fallbacks. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully describes the multi-tier fallback behavior, special handling for certain content types, and session caching. It lacks mention of authentication, rate limits, or error handling, but still provides good transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (approximately 100 words) and front-loaded with the main purpose. Each sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core functionality, special cases, fallback chain, and caching. It does not detail error behavior or output format beyond 'clean markdown', but for a fetch tool this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaning by explaining the tier fallback system, which gives context to the maxTier parameter. The description complements the schema well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it fetches a URL and returns content as clean markdown, with specific handling for Twitter, YouTube, arXiv, and PDFs. It distinguishes from sibling tool 'search' by focusing on fetching a specific URL rather than searching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by explaining the fallback chain and caching, but does not explicitly state when to use this vs. search or when not to use it. Given the sibling is 'search', the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchWeb SearchA
Search the web and return results. Uses Brave Search API if BRAVE_API_KEY is set, otherwise falls back to SearXNG. Set BRAVE_API_KEY for best results (free tier: 2,000 queries/month).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of results (1-20, default 5) | |
| query | Yes | Search query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the dual backend (Brave/SearXNG) and mentions the free tier limit, but omits details on error behavior, pagination, latency, or result structure. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with a clear front-loaded purpose. No wasted words, though the information about API key could be more structurally separated. Still effective and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should explain what 'results' contains (e.g., titles, URLs, snippets) but does not. It also lacks constraints like max count reasons or result ordering. Incomplete for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters (query and count) with descriptions. The description adds backend context but no additional parameter insight beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search the web and return results,' specifying a concrete verb and resource. It implicitly differentiates from sibling 'fetch' (which retrieves specific URLs) by focusing on general web search, though not explicitly stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on backend choice and recommends setting BRAVE_API_KEY for best results, offering practical guidance. However, it does not explicitly state when to use this tool over 'fetch' or provide exclusion criteria (e.g., when not to use).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v1.0.2- Added
fetch - Added
search
TDQS
fetch and search have clearly distinct purposes: one retrieves content from a specific URL, the other performs web searches. No overlap or ambiguity.
Both tool names are single-word verbs ('fetch', 'search'), following a simple and consistent pattern.
With only 2 tools, the server is minimal but appropriate for its focused scope of fetching and searching. Could potentially benefit from a few more, but not necessary.
The tool surface covers the core operations of fetching content from URLs and searching the web. No obvious missing operations for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Fetch any URL and get clean Markdown. Web scraping for AI agents.
Read any web page as clean Markdown for AI agents: fetch, search, metadata, links. SSRF-safe.
Web scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass.
Clean Markdown and AI-readability scoring for any URL. Built for AI agents.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that provides access to Jina AI's powerful web services (page reading, web search, fact checking) through Claude.317828MIT
- AlicenseAqualityDmaintenanceConverts URLs and raw HTML to clean Markdown, enabling AI assistants to read web pages for summarization, analysis, or ingestion.2191MIT
- AlicenseAqualityBmaintenanceEnables AI agents to read web pages reliably, returning clean markdown content, hyperlinks, and metadata without navigation or ad noise.37MIT
- AlicenseAqualityCmaintenanceEnables AI agents to fetch any web page as clean markdown or screenshot it, turning URLs into LLM-ready context.211MIT
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/bighippoman/intercept-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server