Web Search MCP — 高性能分散型ウェブ検索サービス
概要
Web Search MCP は、Camoufox(反検知ブラウザ)と FastAPI を組み合わせて実装された高性能な Web 検索マイクロサービスです。主な目的は検索エンジンの SERP(検索結果ページ)を構造化し、必要に応じて各結果ページの本文抽出や本文中の外部リンクをたどって追加情報を取得することにあります。Google、Bing、DuckDuckGo をサポートし、結果は JSON または Markdown で返却。ブラウザプール+asyncio セマフォで並列実行を制御し、ジオロケーションや人間らしさを付与するブラウザ指紋で検出回避を図ります。Dockerfile によるコンテナ化とクラスタ化のサポートにより、サービスとしての外部提供や水平スケールも想定されています。
リポジトリの統計情報
- スター数: 9
- フォーク数: 1
- ウォッチャー数: 9
- コミット数: 17
- ファイル数: 14
- メインの言語: Python
主な特徴
- 複数検索エンジン対応(Google / Bing / DuckDuckGo)と自動フォールバック
- SERP解析→本文抽出→外部リンク追跡の多層深度クロール(depth 1–3)
- Camoufox による反検知ブラウザ指紋(geoip、humanize、locale)
- ブラウザプール+asyncio セマフォで並列実行を安全に制御
技術的なポイント
Web Search MCP は「構造化出力」「反検知ブラウザ」「並列実行制御」「スケーラブルなデプロイ」の4点にフォーカスしています。まず、SERP の解析で取得したタイトル、スニペット、リンクを JSON/Markdown に整形するパイプラインを持ち、必要に応じてリンク先の本文を抽出(Readability 等の手法を想定)して付加します。深度を上げると本文中の外部リンクを再帰的に取得することで関連情報を拡張できますが、深度3以降はコストと重複が増えるためセマフォやブラウザプールで並行数を制限しています。
Camoufox は実ブラウザの振る舞いやヘッダ、ロケール、GeoIP をカスタマイズして人間らしさを付与することで検索エンジンやサイト側の検出を回避します。これによりヘッドレスブラウザ単体より安定した取得が期待できます。また、エンジン自動回退機能により、主エンジンで結果が得られない場合は予め定義した代替エンジンへフェイルオーバーします。ネットワークやページ構造の差異に対処するため、リトライやバックオフ、タイムアウト設定も重要です。
バックエンドは FastAPI で実装され、非同期 I/O による高スループットを確保しています。Dockerfile と Dockerfile.dev が用意され、コンテナ化/開発用イメージの切り分けが可能。クラスタ化(MCP = マイクロサービス・コントロールポイント)を前提にしており、水平スケール、ロードバランシング、プロキシ/VPN 経由の geo-dispatch などの導入で実運用に耐える設計が見て取れます。課題としては検索エンジンやサイトの利用規約、robots.txt の尊重、法的リスクや IP レート制限の管理、キャッシュや重複排除の実装などが挙げられます。
プロジェクトの構成
主要なファイルとディレクトリ:
- .dockerignore: file
- .gitignore: file
- CLAUDE.md: file
- Dockerfile: file
- Dockerfile.dev: file
…他 9 ファイル
(注)リポジトリは Python 製で、非同期処理を中心とした実装と Docker ベースのデプロイ準備がされています。README によると SERP 解析→本文抽出→外部リンク追跡のワークフローが主要な流れです。
使いどころと運用のヒント
- リサーチ支援ツール:クエリに対する複数エンジンの要約・全文抽出に向く
- ナレッジ収集パイプライン:特定トピックの一次情報を体系的に収集可能
- API サービス化:FastAPI による HTTP インターフェイスで内部・外部に提供 運用時はプロキシ/IP ローテーションとリクエストレート管理、ログとメトリクス(成功率、平均レスポンスタイム、エラー種別)の収集を導入すると良いでしょう。深度を上げるほどクロール量が指数的に増えるため、キャッシュ、重複判定、コンテンツフィルタリングを必ず設計してください。
まとめ
反検知ブラウザと非同期 API を組み合わせた実用的な検索クロール基盤。拡張と運用を見据えた実装。
リポジトリ情報:
- 名前: web-search-fast
- 説明: 一个简单的本地 web search mcp ,可以集群规模化进行对外提供服务。
- スター数: 9
- 言語: Python
- URL: https://github.com/uk0/web-search-fast
- オーナー: uk0
- アバター: https://avatars.githubusercontent.com/u/19545292?v=4
READMEの抜粋:
Web Search MCP
基于 Camoufox + FastAPI 的高性能 Web 搜索服务,将搜索引擎结果转换为结构化 JSON / Markdown 输出。支持多层深度抓取与并发执行。
功能特性
- 三大搜索引擎:Google、Bing、DuckDuckGo
- 多层深度抓取:SERP 解析 → 正文提取 → 外链抓取
- 双格式输出:JSON / Markdown
- 反检测浏览器:Camoufox 真实浏览器指纹(geoip、humanize、locale)
- 并发执行:浏览器池 + asyncio 信号量控制
- 引擎自动回退:主引擎无结果时自动切换备选引擎
搜索深度
| depth | 行为 | 说明 |
|---|---|---|
1 | SERP 解析 | 默认。提取标题、链接、摘要 |
2 | SERP + 正文 | 进入每个结果链接,提取页面正文 |
3 | SERP + 正文 + 外链 | 继续抓取正文中的外部链接内容 |
##…