webscout-mcp
webscout-mcp
AIエージェント向けのWeb検索・取得ツールを、MCPサーバーとして提供します。検索、取得、クロール、構造化データの抽出を実行できます。APIキー不要、リクエストごとの課金なし、すべての処理はお使いのマシン上で完結します。
インストール
pip install webscout-mcpPython 3.10以上が必要です。
Related MCP server: Crawl4AI RAG MCP Server
クイックスタート
MCPクライアント設定(Claude Code、Cursor、Codexなど)に追加します:
{
"mcpServers": {
"webscout": {
"command": "webscout-mcp",
"args": []
}
}
}これだけです。エージェントは6つのツールを利用できます:
web_search- Bingで検索し、自動的にDuckDuckGo HTMLにフォールバック。キー不要web_fetch- ページを取得し、メイン記事を抽出(markdown/text/html)web_crawl- 並行BFSクロール。深さとページ数の制限付き、robots.txtを尊重web_extract- CSSセレクタ、属性、正規表現で構造化データを抽出cache_stats- ローカルキャッシュを検査cache_clear- キャッシュを消去
CLIの使い方
MCPサーバーとして実行するだけでなく、webscout-mcpをコマンドラインから直接使用することもできます:
# Search the web (outputs JSON)
webscout-mcp search "python async libraries" --max-results 5
# Fetch a page (raw content)
webscout-mcp fetch https://example.com --extract --format markdown --raw
# Crawl a site
webscout-mcp crawl https://example.com --depth 2 --pages 10
# Start MCP server (default if no command given)
webscout-mcp serve --transport stdio使用例
検索
web_search(query="best python async libraries", max_results=5)タイトル、URL、スニペット、およびどのバックエンドがリクエストを処理したか(bing または duckduckgo)を含む構造化された結果を返します。Bingが失敗したりマークアップが変更された場合、エンジンは自動的にDuckDuckGoのHTMLバージョンにフォールバックします。設定は不要です。
ページを取得
web_fetch(url="https://example.com", extract=true, output_format="markdown")extract=true を指定すると、trafilatura(readability-lxmlにフォールバック)がナビゲーション、広告、サイドバーを除去します。生のHTMLではなく、クリーンな記事コンテンツが得られます。
構造化データを抽出
web_extract(
url="https://example.com/products",
rules='[
{"name": "titles", "selector": ".product h2", "multiple": true},
{"name": "prices", "selector": ".price", "regex": "\\$([\\d.]+)", "multiple": true},
{"name": "links", "selector": "a.product", "attribute": "href", "multiple": true}
]'
)各ルールは selector、attribute、multiple、regex、default をサポートしています。
サイトをクロール
web_crawl(seed_url="https://example.com", max_depth=2, max_pages=10, concurrency=5)各深さレベルのページは並行して取得されます(concurrency で制御、デフォルト5)。クローラーはデフォルトで robots.txt を尊重します。許可されていないURLはスキップされ、skipped_robots にカウントされます。同一ドメイン制限はデフォルトで有効です。
Pythonライブラリとして使用
import asyncio
from webscout_mcp import Config, Fetcher, SearchEngine
async def main():
config = Config.from_env()
config.ensure_dirs()
fetcher = Fetcher(config)
result = await fetcher.fetch("https://example.com", extract=True)
print(result.title)
print(result.content[:500])
await fetcher.close()
search = SearchEngine(config)
results = await search.search("python async", max_results=5)
for r in results:
print(f"{r.position}. {r.title} - {r.url} ({r.backend})")
await search.close()
asyncio.run(main())仕組み
検索 はまずBingを試し、次にDuckDuckGo HTMLを試します。どちらも直接HTTPスクレイピングで、APIキーは不要です。結果はクエリごとにキャッシュされます。
取得 はhttpxを使用し、指数バックオフのリトライ(すべてのhttpxエラー + HTTP 5xx)、ドメインごとのトークンバケットレート制限、5MBのコンテンツ上限を備えています。
コンテンツ抽出 はtrafilaturaを優先し、readability-lxmlに自動フォールバックします。これは多くの「後で読む」サービスが使用しているのと同じライブラリです。
キャッシュ はTTLとサイズ上限付きのSQLiteで、古いエントリは自動的に削除されます。繰り返しの取得や検索はコストがかかりません。
クロール は並行BFSで、深さ、ページ数、並行度、同一ドメイン制限、robots.txt準拠を設定できます。各ページの二重取得を避けるため、最初の取得からの生HTMLを使用します。
プロキシサポート すべてのHTTP/HTTPSリクエストを、設定または環境変数でプロキシ経由にルーティングします。
ログ は構造化されており、
WEBSCOUT_LOG_LEVEL(DEBUG/INFO/WARNING/ERROR)とWEBSCOUT_LOG_JSON=1(JSON出力用)で設定できます。
すべてローカルで実行されます。データがマシンの外に出ることはありません。
設定
すべての設定には適切なデフォルトがあります。環境変数(WEBSCOUT_ プレフィックス)、TOML設定ファイル、またはCLIフラグで上書きできます。
設定ファイル
~/.config/webscout/config.toml(または $XDG_CONFIG_HOME/webscout/config.toml)を作成します:
[cache]
ttl = 7200
max_size_mb = 512
[fetch]
timeout = 15.0
max_retries = 3
[proxy]
http = "http://proxy:8080"
https = "http://proxy:8080"
[search]
max_results = 10
backends = ["bing", "duckduckgo"]
[crawler]
max_depth = 2
max_pages = 20
concurrency = 5
respect_robots = true
[logging]
level = "WARNING"
json = false環境変数は設定ファイルの値を上書きします。
環境変数
変数 | デフォルト | 説明 |
|
| SQLiteキャッシュの場所 |
|
| キャッシュエントリの有効期間(秒) |
|
| 削除前の最大キャッシュサイズ |
|
| HTTPタイムアウト(秒) |
|
| リクエストごとのリトライ回数 |
|
| ドメインごとの1秒あたりの最大リクエスト数 |
|
| デフォルトの検索結果数 |
|
| カンマ区切りのバックエンド順 |
|
| デフォルトのクロール深さ |
|
| クロールごとのデフォルト最大ページ数 |
|
| 深さレベルごとの並行取得数 |
|
| クローラーがrobots.txtを尊重するか |
|
| デフォルトの抽出出力形式 |
| (空) | HTTPプロキシURL |
| (空) | HTTPSプロキシURL |
|
| ログの詳細度 |
|
|
|
CLIフラグは環境変数を上書きします:
webscout-mcp --cache-ttl 3600 --cache-dir /tmp/webscout serveトランスポート
# stdio (default - works with Claude Code, Cursor, etc.)
webscout-mcp
# SSE (for remote or browser-based clients)
webscout-mcp serve --transport sse --host 0.0.0.0 --port 8000変更履歴
0.3.0
TOML設定ファイルのサポート: 環境変数に加えて
~/.config/webscout/config.tomlで設定可能HTTP/HTTPSプロキシサポート: すべてのリクエストをプロキシ経由でルーティング
二重コンテンツ抽出: trafilaturaを優先し、readability-lxmlに自動フォールバック
検索結果の重複排除: 重複URLを削除し、位置を再番号付け
リージョン対応検索:
regionパラメータが実際にBingとDuckDuckGoに渡されるようになったクローラーのパフォーマンス向上: ページごとの二重取得を排除 - 約2倍高速なクロール
リトライロジックの改善: すべてのhttpxエラーとHTTP 5xxでリトライ
コンテンツタイプ検出の修正: 適切なHTML/XML検出
0.2.0
マルチバックエンド検索: Bing + DuckDuckGo HTML、自動フェイルオーバー
並行クローラー、並列度を設定可能
robots.txt準拠(設定可能、デフォルトでオン)
CLIサブコマンド:
search、fetch、crawl、serveコンソールとJSONフォーマッタによる構造化ログ
エラーハンドリング改善のためのカスタム例外階層
新しい設定:
WEBSCOUT_SEARCH_BACKENDS、WEBSCOUT_CRAWLER_CONCURRENCY、WEBSCOUT_RESPECT_ROBOTS
0.1.0
初回リリース: web_search、web_fetch、web_crawl、web_extract、cache_stats、cache_clear
TTLとサイズベースの削除を備えたSQLiteキャッシュ
ドメインごとのトークンバケットレート制限
指数バックオフリトライ
trafilaturaによるコンテンツ抽出
開発
git clone https://github.com/wxs-lang/webscout-mcp.git
cd webscout-mcp
pip install -e ".[dev]"
pytestライセンス
MIT
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 Servers
- AlicenseBqualityDmaintenanceEnables LLMs and AI agents to access real-time web data, search websites, and navigate the web without getting blocked. Includes 5,000 free monthly requests and supports web scraping, browser automation, and bypassing geo-restrictions.606,1031MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI agents and assistants with advanced web crawling and RAG capabilities, enabling them to scrape websites and perform semantic search over crawled content.1MIT
- AlicenseAqualityFmaintenanceEnables AI agents to crawl, scrape, search, and automate browsers with anti-bot bypass, providing fast web access via 22 tools.22433MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI agents with reliable web fetching capabilities, handling retries, caching, and anti-bot bypass automatically.MIT
Related MCP Connectors
Reliable web access for AI agents: smart HTTP, rotating proxies, and full-browser rendering.
Web search for AI agents — one tool across 6 engines, routed to the cheapest + cached.
Live web search for AI agents. $0.001/call, x402 on Base, no API key.
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/wxs-lang/webscout-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server