intercept-mcp
intercept-mcp
AIにウェブを読み込ませる機能を提供します。コマンド1つで、APIキーは不要です。
これがないと、AIがURLにアクセスしても403エラーやアクセス制限、あるいは生のHTMLの壁にぶつかってしまいます。interceptを使えば、ほとんどの場合、すぐに使えるクリーンなMarkdownとしてコンテンツを取得できます。
ツイート、YouTube動画(可能な場合はトランスクリプト付き)、arXiv論文、PDF、Wikipedia記事、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
Settings → MCP → Add Server:
{
"mcpServers": {
"intercept": {
"command": "npx",
"args": ["-y", "intercept-mcp"]
}
}
}Windsurf
Settings → MCP → Add Server → 上記と同じ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は4つの段階で処理されます:
1. サイト固有のハンドラー
既知のURLパターンは、フォールバックパイプラインの前に専用ハンドラーへルーティングされます:
パターン | ハンドラー | 取得内容 |
| Twitter/X | ツイート本文、投稿者、メディア、エンゲージメント統計(サードパーティAPI経由) |
| YouTube | タイトル、チャンネル、再生時間、再生数、説明文、トランスクリプト(字幕が利用可能な場合) |
| arXiv | 論文メタデータ、著者、要約、カテゴリ |
| 抽出されたテキスト(テキストレイヤーを持つPDFのみ) | |
| Wikipedia | Wikimedia REST API経由のクリーンな記事コンテンツ |
| GitHub | 生のREADME.mdコンテンツ |
2. 共有キャッシュ (agentsweb.org)
フェッチャーにアクセスする前に、すべてのリクエストはAIエージェント向けのグローバル共有Markdownキャッシュである agentsweb.org を確認します。他のエージェントがすでにそのURLを取得していれば、50ms以内に結果が得られます。
取得に成功すると、自動的にキャッシュへ貢献されます。エントリは自己修復型のコンセンサスモデルを通じて信頼性を高めます。独立したインスタンスが同じURLを取得し、同じコンテンツを確認すると、信頼度が向上します。
INTERCEPT_SHARED_CACHE=false で完全に無効化するか、INTERCEPT_CACHE_READ_ONLY=true で読み取り専用モード(貢献はしない)に設定できます。
agentsweb.org API
agentsweb.orgは、直接利用できるスタンドアロンのエンドポイントも公開しています:
/web?q=— ウェブ検索/research?q=— 検索 + 取得 + キャッシュを1回の呼び出しで実行/fetch?url=— オンデマンド取得、自動キャッシュ
完全なAPIドキュメントは agentsweb.org/docs を参照してください。
3. フォールバックパイプライン
ハンドラーが一致しない(またはハンドラーが何も返さない)場合、URLはマルチティアのパイプラインに入ります:
ティア | フェッチャー | 戦略 |
0 | agentsweb.org | グローバル共有Markdownキャッシュ — 他のエージェントが取得済みなら即時取得 |
1 | Cloudflare Browser Run | JSレンダリング + Markdown抽出(オプション、APIトークンが必要) |
1 | Jina Reader | クリーンなMarkdown抽出サービス |
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によるMarkdown変換 |
3 | Stealth fetch | got-scrapingによるブラウザTLSフィンガープリントのなりすまし(オプトイン、下記参照) |
4 | RSS, CrossRef, Semantic Scholar, HN, Reddit | メタデータ / ディスカッションのフォールバック |
5 | OG Meta | Open Graphタグ(保証されたフォールバック) |
ティア2のフェッチャーは並列実行されます。複数が成功した場合、最も品質の高い結果が採用されます。他のすべてのティアは順次実行されます。
すべてのフェッチャーは、プレーンテキストではなく、Turndownを介して適切な Markdown(見出し、リンク、太字、テーブル、コードブロック)を返します。
4. キャッシング
結果はメモリ内にTTL付きでキャッシュされます(成功時は30分、失敗時は5分)。LRUエビクションにより最大100エントリまで保持されます。失敗したURLもキャッシュされ、既知のデッドURLへの再試行を防ぎます。
ツール
fetch
URLを取得し、そのコンテンツをクリーンなMarkdownとして返します。
url(string, 必須) — 取得するURLmaxTier(number, オプション, 1-5) — 速度重視の場合、このティアで停止します
search
ウェブを検索し、結果を返します。
query(string, 必須) — 検索クエリcount(number, オプション, 1-20, デフォルト5) — 結果の数
BRAVE_API_KEY が設定されている場合はBrave Search APIを、SEARXNG_URL が設定されている場合はSearXNGを、最後の手段としてDuckDuckGoを使用します。
プロンプト
research-topic
トピックを検索し、複数のソースから要約するために上位の結果を取得します。
topic(string) — リサーチするトピックdepth(string, デフォルト "3") — 取得する上位結果の数
extract-article
URLを取得し、コンテンツから重要なポイントを抽出します。
url(string) — 取得して要約するURL
環境変数
変数 | 必須 | 説明 |
| いいえ | 検索用 Brave Search API キー |
| いいえ | セルフホストしたSearXNGインスタンスのURL(推奨) |
| いいえ | "Browser Rendering - Edit" 権限を持つCloudflare APIトークン |
| いいえ | CloudflareアカウントID ( |
| いいえ |
|
| いいえ |
|
| いいえ |
|
| いいえ | 成功した取得のメモリ内キャッシュTTL(ミリ秒、デフォルト |
| いいえ | 失敗した取得のメモリ内キャッシュTTL(ミリ秒、デフォルト |
| いいえ | メモリ内キャッシュの最大エントリ数(デフォルト |
| いいえ | 標準プロキシパススルー — すべてのアウトバウンド取得(ステルス含む)をプロキシ経由でルーティング。 |
検索: 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を回避できる場合があります。
このフェッチャーは、通常のRawフェッチ後のティア3で実行されます。Rawフェッチがブロックされた場合(CAPTCHA、Cloudflareチャレンジ、403など)、ステルスフェッチャーがブラウザのなりすましで再試行します。
これは一部のウェブサイトの利用規約に違反する可能性があります。 intercept-mcpの作者は、この機能の使用方法について一切の責任を負いません。デフォルトでは無効になっており、明示的に有効にする必要があります。
プロキシの持ち込み (HTTPS_PROXY)
Rawフェッチがフラグ付けされ始めた場合、最も効果的な修正方法は、より高度なフィンガープリントではなく、クリーンなアウトバウンド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インスタンスを使用することもできます。そのURLを SEARXNG_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