MCP Web Search Pro
MCP Web Search Pro
拡張されたセルフホスト型のWebリサーチサーバーで、MCP互換クライアント向けです。AIアシスタントに、Webページの発見、読みやすいコンテンツの抽出、JavaScriptアプリケーションのレンダリング、ページが利用できない場合のInternet Archiveの活用、YouTubeのキャプション読み取りといったツールを提供します。
このサービスはローカルまたは信頼できるネットワークでの使用を想定しています。ステートレスで、APIキーは不要で、MCP Streamable HTTPトランスポートをポート8082で公開します。別のポートで動作する軽量なWeb検索MCPサーバーと並べて実行できます。
軽量なmcp-web-search(ポート8081)とともに別のコンテナとしてポート8082で動作します。タスクに応じてクライアントをどちらかに向けてください — Proが遅く感じられたとしても、軽量版はそのまま手つかずで存在しています。
機能
DuckDuckGoによるWeb検索、結果数の制限とリージョン選択に対応。
ナビゲーションや定型文を除去した、読みやすいHTMLのMarkdown抽出。
PDFの自動検出とテキスト抽出。
React、Vue、SPAなどJavaScriptを多用するページ向けのヘッドレスChromiumレンダリング。
利用不可または変更されたページのWayback Machineスナップショット。
URLまたは動画IDからのYouTubeトランスクリプト、タイムスタンプのオプション付き。
コンテナとプロセスの確認用
/healthエンドポイント。ステートレスなStreamable HTTPおよびstdio MCPトランスポート。
Related MCP server: Basic MCP Tools
MCPツール
ツール | 説明 |
| DuckDuckGo (ddgs) でWeb検索。引数: |
| URLを取得 → Markdown。PDFを自動検出しテキスト抽出。trafilaturaを使用してクリーンな記事抽出(ナビ/広告/定型文を除去)。引数: |
| ヘッドレスChromiumでJavaScript多用/SPAページをレンダリングし、テキスト抽出。 |
| Wayback MachineからURLの最新(またはタイムスタンプ指定)のアーカイブスナップショットを取得。一時的な503でリトライ。引数: |
| YouTube動画のトランスクリプトを取得。完全なYouTube URLまたは11文字の動画IDを受け付け。引数: |
通常のページにはweb_fetchを使用してください(高速)。web_fetchが空のシェルや不完全なコンテンツを返す場合、サイトがクライアントサイドJavaScriptに依存しているためweb_fetch_jsを使用します。
Dockerで実行
docker compose up -d --build確認:
curl http://localhost:8082/health # → {"status":"ok"}ログ / 再起動 / 停止:
docker compose logs -f
docker compose restart
docker compose down初回ビルドはChromiumをPlaywright用にダウンロードするため大きい(約400MB)。以降のビルドはキャッシュされたレイヤーを再利用します。
クライアントの接続
任意のMCP互換クライアントを以下に向けてください:
http://<server-host>:8082/mcpヘッダーやAPIキーは不要です。サーバーはステートレスモードで動作します。
Dockerなしでローカル実行
Python 3.12を推奨:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
playwright install --with-deps chromium
python server.pyHTTPトランスポートを直接実行:
python server.py --sse --host 127.0.0.1 --port 8082歴史的な--sseオプション名ですが、HTTP実装はステートレスなMCP Streamable HTTPトランスポートを使用しています。
パフォーマンスに関する注意
実行時に重いのは
web_fetch_jsのみ — 呼び出しごとにChromiumを起動します(約5–15秒)。他の4つのツールは軽量なPure Pythonで、応答性は良好です。docker-compose.yml内のshm_size: 1gbにより、コンテナ内でのChromiumサンドボックスクラッシュを防止します。通常の非JSページには
web_fetch(高速)を使用し、web_fetch_jsはJavaScriptでコンテンツをレンダリングするReact/Vue/SPAサイトのために確保してください。
設定
ポートを変更するには、docker-compose.yml内のports:マッピングとcommand:の両方を編集します。デバッグ用に生のリクエスト/レスポンスログを有効にするには、コメントアウトされた--verboseのcommand:行に切り替えてください。
検証
このリポジトリはソースコードとDockerビルド設定としてプッシュされることを意図しています。現在、自動テストスイートはありません。推奨されるプロジェクトチェック:
git diff --check
docker compose config
docker compose up -d --build
curl http://localhost:8082/health
docker compose logs --tail=100
docker compose down認証を追加したり、信頼できるリバースプロキシの背後に配置したりせずに、このサービスを直接パブリックインターネットに公開しないでください。HTTPモードは0.0.0.0にバインドし、APIキーなしでリクエストを許可し、すべてのオリジンを許可します。これはローカルのMCPクライアントには便利ですが、アクセス制御層ではありません。
セキュリティと運用上の注意
web_fetchとweb_fetch_jsは任意のHTTP(S) URLをリクエストできます。信頼できないユーザーがサービスを呼び出せる場合は、ネットワークアクセスを制限するか、URL/DNSの保護を追加してください。--verboseはリクエストとレスポンスのボディをログに記録するため、短いローカルデバッグセッション以外では無効にしておいてください。依存関係は最小バージョン制約を使用しています。再現可能なプロダクションビルドに依存する前に、バージョンを固定またはロックしてください。
ファイル
server.py— MCPサーバー(5ツール)requirements.txt—mcp,httpx,beautifulsoup4,markdownify,ddgs,trafilatura,pypdf,youtube-transcript-api,playwrightDockerfile— Python 3.12-slim + Playwright Chromiumdocker-compose.yml— ポート8082のサービス、shm_size: 1gb
ライセンス
現在ライセンスファイルは含まれていません。外部からのコントリビューションを受け入れたり、プロジェクトを再配布したりする前にライセンスを追加してください。
This server cannot be deployed
Maintenance
Related MCP Connectors
Docs: https://docs.keenable.ai/mcp-server Keenable is a free, remote MCP server that gives agents access to the web index. Search the web with ranked results and date/site filters, then fetch any indexed page as clean markdown. Works out of the box with no account or API key.
MCP server for Firecrawl — web search, scraping, and biomedical/arXiv paper search.
Turn any public website into an MCP server for agents to search, read and navigate.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceZero-auth multi-source research MCP server that enables web search, reading URLs, PDFs, GitHub repos, and querying Hacker News, Stack Overflow, Semantic Scholar, and YouTube transcripts without API keys.11Apache 2.0
- FlicenseNot gradedqualityCmaintenanceA self-hosted MCP server providing private web search, web page fetching, and current date/time tools, powered by a bundled SearXNG instance for API-key-free local search.2-
- AlicenseNot gradedqualityDmaintenanceA fully local MCP server that provides web search via self-hosted SearXNG and page-to-markdown conversion (static and JS-rendered), all aggregated behind a single endpoint for use with AI assistants.MIT
- AlicenseNot gradedqualityFmaintenanceMCP server enabling local-first web search, fetch, extract, and caching with citeable excerpts, no API key required. Supports research workflows for agents and apps.105 npm1MIT