ウェブ検索MCPサーバー
高度なボット検出回避機能を備えた Google 検索機能と Web コンテンツの表示を提供する MCP サーバー。
特徴
- 高度なフィルタリング機能を備えた Google カスタム検索
- マークダウン変換によるWebコンテンツ表示
- レート制限とキャッシュ
- ブラウザインスタンスプーリング
- rebrowser-puppeteer を使用したボット検出回避
前提条件
- Bun ランタイム v1.0 以上
- Google API 認証情報(API キーと検索エンジン ID)
インストール
# Install dependencies
bun install
# Build the TypeScript files
bun run build
構成
クッキーの設定
認証されたサイトにアクセスするには、次のことが必要です。
- Get cookies.txt LOCALLY Chrome拡張機能をインストールする
- 認証したいサイトにアクセスしてログインします
- 拡張機能を使用してCookieをJSON形式でエクスポートします
- エクスポートしたCookieファイルを安全な場所に保存します
BROWSER_COOKIES_PATH
環境変数をCookieファイルの絶対パスに設定します。
MCP サーバーの構成
MCP 設定ファイルにサーバー構成を追加します。
- Cline の場合:
%APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.json
- Claude Desktopの場合:
- MacOS/Linux:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"web-search": {
"command": "bun",
"args": [
"run",
"/ABSOLUTE/PATH/TO/web_search_mcp/dist/index.js"
],
"env": {
"GOOGLE_API_KEY": "your_api_key",
"GOOGLE_SEARCH_ENGINE_ID": "your_search_engine_id",
"MAX_CONCURRENT_BROWSERS": "3",
"BROWSER_TIMEOUT": "30000",
"RATE_LIMIT_WINDOW": "60000",
"RATE_LIMIT_MAX_REQUESTS": "60",
"SEARCH_CACHE_TTL": "3600",
"VIEW_URL_CACHE_TTL": "7200",
"MAX_CACHE_ITEMS": "1000",
"BROWSER_POOL_MIN": "1",
"BROWSER_POOL_MAX": "5",
"BROWSER_POOL_IDLE_TIMEOUT": "30000",
"REBROWSER_PATCHES_RUNTIME_FIX_MODE": "addBinding",
"REBROWSER_PATCHES_SOURCE_URL": "jquery.min.js",
"REBROWSER_PATCHES_UTILITY_WORLD_NAME": "util",
"REBROWSER_PATCHES_DEBUG": "0",
"BROWSER_COOKIES_PATH": "C:\\path\\to\\cookies.json",
"LOG_LEVEL": "info",
"NO_COLOR": "0",
"BUN_FORCE_COLOR": "1",
"FORCE_COLOR": "1"
}
}
}
}
/ABSOLUTE/PATH/TO/web_search_mcp
をサーバー ディレクトリへの絶対パスに置き換えます。
ログ構成
次の環境変数はログ動作を制御します。
LOG_LEVEL
: ログレベル(エラー、警告、情報、デバッグ)を設定します。デフォルト: 情報NO_COLOR
: 「1」に設定するとカラー出力が無効になりますBUN_FORCE_COLOR
: Bun ランタイムでカラー出力を制御します (無効にするには「0」に設定します)FORCE_COLOR
: 色付き出力をグローバルに制御します(無効にするには「0」に設定します)
ボット検出回避
このサーバーはボット検出を回避するために rebrowser-puppeteer を使用しています:
- ランタイム.リーク防止を有効にする:
- Runtime.Enable 検出を回避するために addBinding テクニックを使用します
- Webワーカーとiframeで動作します
- メインワールドコンテキストへのアクセスを維持
- ソース URL マスキング:
- Puppeteer のソース URL を正規のスクリプトのように変更します
- 自動化ツールの検出を回避するのに役立ちます
- ユーティリティワールド名:
- 汎用ユーティリティワールド名を使用する
- ワールド名のパターンによる検出を防止
- ブラウザ起動構成:
- 自動化フラグを無効にする
- 最適化されたChrome引数を使用する
- ビューポートとウィンドウの設定を構成します
Claude Desktopでの使用
- Claude Desktopがインストールされ、最新バージョンにアップデートされていることを確認してください。
- Claude Desktop 構成ファイルを開きます。
- MacOS/Linux:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- 上記の構成セクションに示すように、サーバー構成を追加します。
- Claudeデスクトップを再起動します
- ハンマーアイコンを探してください
ツールが利用可能であることを確認する
利用可能なツール
1. 検索ツール
{
name: "search",
params: {
query: string;
trustedDomains?: string[];
excludedDomains?: string[];
resultCount?: number;
safeSearch?: boolean;
dateRestrict?: string;
}
}
2. URL表示ツール
{
name: "view_url",
params: {
url: string;
includeImages?: boolean;
includeVideos?: boolean;
preserveLinks?: boolean;
formatCode?: boolean;
}
}
トラブルシューティング
クロードデスクトップ統合の問題
- ログを確認します:
# MacOS/Linux
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
# Windows
type %APPDATA%\Claude\Logs\mcp*.log
- よくある問題:
- サーバーが表示されない: 設定ファイルの構文とパスを確認してください
- ツールの呼び出しが失敗しました: サーバーログを確認し、Claude Desktop を再起動してください
- パスの問題: 絶対パスを使用していることを確認してください
より詳細なトラブルシューティングについては、 MCP デバッグ ガイドを参照してください。
発達
# Run in development mode with watch
bun --watch run dev
# Run tests
bun run test
# Run linter
bun run lint
重要な注意事項
- ボット検出:
- ボット検出回避機能は、最も一般的な検出方法を防ぐのに役立ちます
- ただし、適切なプロキシやユーザーエージェントなどの追加対策が必要になる場合があります。
- 一部のウェブサイトでは、他の手段で自動化を検出する場合があります。
- パフォーマンス:
- ブラウザインスタンスはプールされ、再利用されます
- アイドル状態のブラウザは自動的にクリーンアップされます
- リソース制限により過負荷を防止
ライセンス
マサチューセッツ工科大学