mcpField
W
websearch

websearch

ローカル
github.com/SK-DEV-AI検索12 日前に更新

websearch について

websearchは、ウェブ、ニュース、参考資料、専門ソースを横断して調査するMCPサーバーです。並列検索、ページ取得、ブラウザー操作に加え、重複排除、任意のローカル再ランキング、Groqによる回答生成に対応します。

主な機能

  1. 01複数エンジンでの並列検索
  2. 02ブラウザーへフォールバックするページ取得
  3. 03ブラウザー操作とスクリーンショット
  4. 04ページとPDFの構造化抽出
  5. 05重複排除と任意の再ランキング
  6. 06引用付きのGroq回答生成

活用シーン

  1. 01複数の検索エンジンでテーマを調査
  2. 02ウェブページの読み取りと情報抽出
  3. 03ブラウザー操作が必要なページの確認
  4. 04論文、脆弱性、コードの検索

MCP 対応

検索、取得、ブラウザー操作、抽出、ソース別機能をstdio経由のMCPツールとして提供します。MCPクライアントは`run`スクリプトまたは`websearch-mcp`コマンドで接続できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sk-dev-ai-websearch": {
"command": "uvx",
"args": [
"skdev-websearch-mcp"
],
"env": {
"GROQ_API_KEYS": "<GROQ_API_KEYS>",
"TAVILY_KEYS": "<TAVILY_KEYS>",
"NV_KEY": "<NV_KEY>",
"SE_KEY": "<SE_KEY>",
"S2_KEY": "<S2_KEY>"
}
}
}
}
起動コマンドuvx skdev-websearch-mcp
設定が必要な環境変数
GROQ_API_KEYSシークレットOptional. Groq keys for synthesis and query rewriting.
TAVILY_KEYSシークレットOptional. Tavily search lane.
NV_KEYシークレットOptional. NVIDIA embeddings for ranking.
SE_KEYシークレットOptional. Stack Exchange key (10k/day instead of 300).
S2_KEYシークレットOptional. Semantic Scholar key (1 RPS).

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiskdev-websearch-mcp1.10.0

ツール

11

掲載時のツール一覧 · 3 日前に更新

パラメーター型必須説明
probe_networkbooleanいいえ送信 HTTPS チェックを実行します(約 1 秒追加)

詳細

websearch MCP サーバー

mcp-name: io.github.SK-DEV-AI/websearch

skills.sh · npx skills add SK-DEV-AI/skills

複数の検索エンジンに対応したウェブ検索+取得用 MCP サーバーです。DuckDuckGo、Bing Web/News RSS、Tavily、Wikipedia、arXiv、Google News RSS、Brave(一部のネットワークではレート制限されるため、最後の手段)、Google AI Mode、および意図に応じて利用する垂直検索レーン(MDN、Stack Exchange、GitHub、HN、Semantic Scholar、OSV 脆弱性情報、grep.app/Sourcegraph のコード検索、GDELT ニュース)に並列で検索を振り分けます。結果はコンセンサスに基づいて重複を統合し、ローカルのクロスエンコーダーで再ランキングしたうえで、グラウンディングチェック付きの Groq による統合結果を生成します。

ツール(10)

  • search — オープンな調査の質問に使用します。depth=1 ではスニペットを返し、depth≥2 ではページ全体を取得して再ランキングします。synthesize は [N] 形式の引用付きで Groq の回答を返します。
  • fetch — URL を Markdown/テキストに変換します。直接取得し、ブロックされたページや JavaScript が必要なページでは Helium CDP ブラウザーに自動でフォールバックします。PDF/EPUB/DOCX に対応しています。ページネーション(offset)にも対応します。構造化 JSON を取得する場合は extract を使用してください。
  • screenshot — ARIA アクセシビリティスナップショットを取得します(LLM が読み取れるページテキストとインタラクティブな構造)。
  • browser_action — 実際のブラウザーページを操作します(移動、クリック、入力、キーの押下、JS の評価、HTML/テキストの読み取り、ARIA ツリー、スクリーンショット)。ページの操作が必要な場合に使用してください。通常の読み取りには fetch を使用してください。
  • wikipedia — Wikipedia API クライアントの全機能に対応します。記事、要約、カテゴリ、リンク、ページビュー、改訂履歴、バックリンク、地理検索、最近の変更、ランダムなページを利用できます。
  • arxiv — ブール演算子/フレーズ/ワイルドカード構文を使った arXiv 論文検索に対応します(単一ソース。複数ソースの論文検索は codesearch の papers にあります)。
  • extract — CSS(高速・無料)、LLM、または正規表現の各方式で、ページから構造化 JSON を取得します。繰り返しの呼び出しはキャッシュされます。
  • pdf_extract — PDF を Markdown/JSON/HTML に変換します。テキストレイヤー付き PDF には PyMuPDF の高速処理を使用し、スキャンされた PDF には Docling+OCR でフォールバックします。
  • map_site — サイトマップ XML(優先)と HTML リンクのフォールバックを使ってサイトのページを調査してから、個別に取得します。
  • ping — インターネットと主要な検索エンドポイントへの接続を確認します。確信が持てない場合、高コストの呼び出しの前に使用してください。

セットアップ

Python 3.14 以降が必要です。

python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp run.example run   # fill in your API keys (run is gitignored — never commit it)
chmod +x run

MCP クライアントで run(stdio)を指定します。

{ "websearch": { "command": "/path/to/websearch/run" } }
API キー(run)
キー用途必須?
GROQ_API_KEYSクエリの書き換え、統合、グラウンディングチェック推奨(キーがなくても検索できますが、統合はできません)
TAVILY_KEYSTavily 検索レーン任意
NV_KEYNVIDIA 埋め込みエンドポイント任意

その他(DDG、Bing RSS、Wikipedia、arXiv、RSS)はすべてキー不要です。Brave の HTML スクレイピングは現在、一部のネットワークでレート制限されるため、一般的なウェブ検索には Bing RSS を主に使用し、Brave は最後の手段としています。

PyPI からインストール

pip install skdev-websearch-mcp          # core install, small
pip install skdev-websearch-mcp[all]     # + browser/OCR/extract extras (multi-GB)

websearch-mcp コンソールスクリプトは、stdio 経由で MCP を使用します。

{ "websearch": { "command": "websearch-mcp" } }

Docker

docker build -t websearch-mcp .
docker run --rm -i websearch-mcp

キーは実行時に渡し、イメージには埋め込みません:-e GROQ_API_KEYS=...。 重い追加機能:docker build --build-arg EXTRAS="[all]" -t websearch-mcp .

注意事項

  • 再ランキング(任意、ローカル): ランキングには、Unix ソケット経由でローカルの gte-reranker-modernbert-base クロスエンコーダーを使用します(RERANKER_MODEL でモデルを上書きできます)。これがない場合、結果はランク付けされず、relevance_score 0.0 が返されます。それでもすべての機能は動作します。
  • Helium CDP(任意): ボット対策でブロックされたページは、利用可能な場合、127.0.0.1:9222 の Chrome DevTools ブラウザーに処理を引き継ぎます。利用できない場合、それらのページはハングせずに最終判定を返します。
  • キャッシュ: 取得結果は1時間キャッシュされます(cache_ttl=0 にすると最新の結果を取得します)。データベースはなく、キャッシュディレクトリ以外に状態を保持しません。
  • 安全性: ユーザー指定URLの取得はすべて SSRF 検証の対象です(プライベートIPのブロック、リダイレクトの各段階での再検証、robots.txt の確認)。
  • Groq モデルの使い分け: 合成、グラウンディング、extract-llm には openai/gpt-oss-120b を使用し、書き換え、分類、拡張、分解には openai/gpt-oss-20b を使用します(以前の llama-3.1-8b-instant は Groq によって廃止され、現在は404を返します)。config.py の定数 GROQ_SMART_MODEL/GROQ_CHEAP_MODEL を参照してください。
  • キー不要の経路(すべて参考情報のみ): OSV.dev の脆弱性検索と NVD の CVE 補完、grep.app MCP コード検索(Sourcegraph を予備として使用)、Bing Web RSS と Bing News RSS(Brave のスクレイピングはレート制限され、GDELT は一部のネットワークで429を返します)、Wikipedia 検索、Jina Reader の CDP 前段階、enrich() における Wayback CDX 履歴の復元、map_site における Common Crawl のドメイン調査支援。
  • ローカル再ランキング: gte-reranker-modernbert-base クロスエンコーダーを、Unix ソケット経由で1つの共有ワーカーとして実行します。どちらのサーバーも必要に応じてワーカーを起動し、アイドル状態になるとアンロードします。任意機能です。これがない場合、結果はエンジンによるランキングのみとなります。
  • 任意のキー(キーなしでも適切にフォールバック): SE_KEY/STACKEXCHANGE_KEY(SEで1日10,000回)、S2_KEY/S2_API_KEY(専用のS2、1 RPS)。
  • Marginalia: ベストエフォートの経路のみです(共有の公開キー・プールを使用し、負荷時には503が発生します)。独立インデックスの再現率を補いますが、専用キーは設定されていません(キーについては [email protected] までお問い合わせください)。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。