Brave Search MCP Server について
Brave Search MCP Server は、Brave Search API を利用して Web・画像・動画・ニュース・ローカル検索および LLM コンテキスト検索を提供する MCP サーバーです。stdio と Streamable HTTP の両方で動作し、環境変数または TOML ファイルで設定できます。
主な機能
- 01Web・画像・動画・ニュース検索ツール
- 02ローカルの関心地点・店舗検索
- 03抽出済みページ本文を返す LLM コンテキスト検索
- 04stdio と Streamable HTTP のモード
- 05任意のレート制限・監査ログ・ポリシーフィルター
- 06OpenAI Apps と MCP Apps の UI モード
活用シーン
- 01AI アシスタントに最新の Web 検索結果を渡す
- 02近隣のレストランやサービス店舗を調べる
- 03RAG パイプライン向けに Web コンテンツを取得する
MCP 対応
本プロジェクトは MCP サーバーであり、brave_web_search、brave_image_search、brave_news_search、brave_video_search、brave_local_search、brave_llm_context_search をツールとして MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| count | number | いいえ | 検索する画像の数。最小 1、最大 20 |
| searchTerm | string | はい | 画像を検索するための検索語 |
詳細
Brave Search MCP サーバー
Brave Search APIと連携する MCP サーバーの実装です。ウェブ検索、ローカルの見どころ検索、動画検索、画像検索、ニュース検索、LLM コンテキスト検索機能を提供します。
機能
- ウェブ検索:ウェブを通常検索します
- 画像検索:ウェブで画像を検索します。
- ニュース検索:ウェブでニュースを検索します
- 動画検索:ウェブで動画を検索します
- ローカルの見どころ検索:近くの実店舗、企業、レストラン、サービスなどを検索します
- LLM コンテキスト検索:情報源の閲覧や要約に最適化された、ウェブページ全体のコンテンツを取得して抽出します
ツール
-
brave_web_search
- Brave の API を使用してウェブ検索を実行します
- 入力:
query(string):インターネットで検索する語句count(number、任意):返す結果の数(最大 20、デフォルト 10)offset(number、任意、デフォルト 0):ページネーションのオフセットfreshness(enum、任意):検索結果を発見時期で絞り込みます- 次の値をサポートしています
- pd:過去 24 時間以内に発見されたもの。
- pw:過去 7 日以内に発見されたもの。
- pm:過去 31 日以内に発見されたもの。
- py:過去 365 日以内に発見されたもの
- YYYY-MM-DDtoYYYY-MM-DD:カスタムの日付範囲(例:2022-04-01to2022-07-30)
- 次の値をサポートしています
-
brave_image_search
- クエリに関連する画像をウェブから取得します
- 入力:
query(string):画像を検索する語句count(number、任意):返す画像の数(最大 50、デフォルト 10)
-
brave_news_search
- ウェブでニュースを検索します
- 入力:
query(string):ニュース記事、トレンドのトピック、最近の出来事を検索する語句count(number、任意):返す結果の数(最大 20、デフォルト 10)offset(number、任意、デフォルト 0):ページネーションのゼロベースのオフセット(最大 9)freshness(enum、任意):検索結果を発見時期で絞り込みます- 次の値をサポートしています
- pd:過去 24 時間以内に発見されたもの。
- pw:過去 7 日以内に発見されたもの。
- pm:過去 31 日以内に発見されたもの。
- py:過去 365 日以内に発見されたもの
- YYYY-MM-DDtoYYYY-MM-DD:カスタムの日付範囲(例:2022-04-01to2022-07-30)
- 次の値をサポートしています
-
brave_local_search
- 地元の企業、サービス、見どころを検索します
- 場所の検索結果が見つからない場合、最初のページで brave_web_search にフォールバックします
- 入力:
query(string):ローカル検索語句count(number、任意):返す結果の数(最大 20、デフォルト 5)offset(number、任意、デフォルト 0):ページネーションのゼロベースのオフセット(最大 9)
-
brave_video_search
- ウェブで動画を検索します
- 入力:
query:(string):動画を検索する語句count:(number、任意):返す動画の数(最大 20、デフォルト 10)offset(number、任意、デフォルト 0):ページネーションのゼロベースのオフセット(最大 9)freshness(enum、任意):検索結果を発見時期で絞り込みます- 次の値をサポートしています
- pd:過去 24 時間以内に発見されたもの。
- pw:過去 7 日以内に発見されたもの。
- pm:過去 31 日以内に発見されたもの。
- py:過去 365 日以内に発見されたもの
- YYYY-MM-DDtoYYYY-MM-DD:カスタムの日付範囲(例:2022-04-01to2022-07-30)
- 次の値をサポートしています
-
brave_llm_context_search
- AI エージェント、LLM のグラウンディング、RAG パイプライン向けに最適化された、抽出済みのウェブコンテンツです。
compactモードでは Brave のbalancedコンテキストしきい値モードを使用し、fullモードでは Brave の関連性フィルタリングを無効にします。- 入力:
query(文字列):検索クエリです。最大 400 文字、50 語です。url(文字列、省略可):対象とする URL です。指定すると、クエリと URL を組み合わせて検索し、この URL と完全に一致するページのスニペットのみを返します。count(数値、省略可、既定値 8):検索結果の最大検討数です。最小 1、最大 50 です。maximumNumberOfUrls(数値、省略可、既定値 8):応答に含める URL の最大数です。最小 1、最大 50 です。maximumNumberOfTokens(数値、省略可、既定値 2048):返されるコンテキストのトークン数のおおよその上限です。最小 1024、最大 32768 です。maximumNumberOfSnippets(数値、省略可、既定値 16):すべての URL を通じたスニペットの最大数です。最小 1、最大 100 です。maximumNumberOfTokensPerUrl(数値、省略可、既定値 512):URL ごとのトークン数の最大値です。最小 512、最大 8192 です。maximumNumberOfSnippetsPerUrl(数値、省略可、既定値 2):URL ごとのスニペットの最大数です。最小 1、最大 100 です。responseMode(列挙型、省略可、既定値compact):compactは Brave のbalanced関連性フィルタリングに加えて、ローカルでのスニペットのフィルタリングと切り詰めを行います。fullは Brave の関連性フィルタリングを無効にし、ローカルでのフィルタリングや切り詰めを行わずに、生のスニペットを返します。maxSnippetChars(数値、省略可、既定値 400):compactモードでのスニペットあたりの最大文字数です。最小 80、最大 4000 です。maxOutputChars(数値、省略可、既定値 8000):compactモードでのシリアライズ後の応答サイズのおおよその上限です。最小 1000、最大 100000 です。
OpenAI Apps & MCP Apps のサポート
この MCP サーバーでは、OpenAI Apps と MCP Apps をサポートするようになりました。各ツールで UI モードを有効にすると、モデルのコンテキストに追加する内容を制御できる UI ウィジェットが表示されます。ChatGPT での使用方法の手順を参照してください。
設定
API キーの取得
- Brave Search API アカウントに登録します
- プランを選択します
- 開発者ダッシュボードで API キーを生成します
実行モード
既定では、MCP サーバーは stdio モードで実行されます。
BRAVE_API_KEY="your_key_here" npx -y brave-search-mcp
Streamable HTTP モードを有効にするには:
BRAVE_API_KEY="your_key_here" npx -y brave-search-mcp --http
既定では、サーバーはポート 3001 でリッスンします。 URL は次のとおりです:
http://0.0.0.0:3001/mcp
設定モードは 2 種類あります:
- 環境変数モード:
BRAVE_MCP_CONFIGが設定されていません。機能の切り替えは、以前のリリースと同様に環境変数から取得されます。 - ファイルモード:
BRAVE_MCP_CONFIG=/path/to/config.tomlが設定されています。TOML ファイルが機能設定の唯一の信頼できる情報源となり、重複する機能環境変数は警告とともに無視されます。
環境変数のみの設定
モードにかかわらず、これらの設定は常にプロセス環境から読み込まれます:
BRAVE_API_KEY(必須):Brave Search API キーです。PORT(省略可):HTTP ポート(既定値:3001)。HOST(省略可):バインドするインターフェース(既定値:0.0.0.0)。BRAVE_MCP_CONFIG(省略可):機能設定用の TOML 設定ファイルへの絶対パスまたは相対パスです。
Env モードの機能設定
BRAVE_MCP_CONFIG が設定されていない場合、以下の機能環境変数がサポートされます。
ALLOWED_HOSTS(HTTP モードのみ):Host ヘッダーの検証で許可するホスト名を、カンマ区切りで指定します。- 例:
ALLOWED_HOSTS=localhost,127.0.0.1,my-app.ngrok-free.app - ホスト名のみを使用してください(スキームやパスは含めません)。例:
https://my-app.ngrok-free.app/mcpではなくmy-app.ngrok-free.app
- 例:
BRAVE_MCP_POLICY_FILE:JSON ポリシーファイルのパスです。BRAVE_MCP_POLICY_REDACT:trueにすると、該当するテキストをブロックする代わりにマスキングします。BRAVE_MCP_REQUEST_LIMIT:リクエスト数の上限を表す正の整数です。BRAVE_MCP_WINDOW_SECONDS:ローリングウィンドウの長さを表す非負の整数です。BRAVE_MCP_COOLDOWN_SECONDS:上限を超えた後のクールダウン時間を表す非負の整数です。BRAVE_MCP_AUDIT_LOG:trueにすると、監査ログを出力します。BRAVE_MCP_AUDIT_LOG_RAW:trueにすると、監査ログにクエリの生テキストを含めます。BRAVE_MCP_REQUIRE_JUSTIFICATION:trueにすると、justification文字列を含まないツール呼び出しを拒否します。
例:
# Local only
HOST=127.0.0.1 ALLOWED_HOSTS=localhost,127.0.0.1 BRAVE_API_KEY="your_key_here" npx -y brave-search-mcp --http
# Local with ngrok tunnel
HOST=127.0.0.1 ALLOWED_HOSTS=localhost,127.0.0.1,my-app.ngrok-free.app BRAVE_API_KEY="your_key_here" npx -y brave-search-mcp --http --ui
ファイルモード(BRAVE_MCP_CONFIG)
BRAVE_MCP_CONFIG が設定されている場合、HTTP のホスト許可リストを含む機能設定はファイルで管理されます。
[auth]
httpApiKey = "sk-..."
requireAuth = true
callerId = "team-a"
[auth.jwt]
jwksUri = "https://idp.example.com/.well-known/jwks.json"
audience = "brave-search-mcp"
clockSkewSeconds = 30
[auth.oauth]
issuer = "https://idp.example.com"
audience = "brave-search-mcp"
clientId = "client-123"
clientSecret = "super-secret"
verifyStrategy = "jwks"
[audit]
enabled = true
logRaw = false
hmacSecret = "audit-secret"
[policy]
file = "/etc/brave-mcp/policy.json"
redact = false
[guardrail]
requestLimit = 100
windowSeconds = 60
cooldownSeconds = 10
requireJustification = false
[server]
allowedHosts = [
"localhost",
"127.0.0.1",
"my-app.ngrok-free.app",
]
注:
- ファイルモードでも、
BRAVE_API_KEY、PORT、HOSTは引き続き環境変数のみで設定します。 BRAVE_MCP_CONFIGと併せてBRAVE_MCP_REQUEST_LIMITやALLOWED_HOSTSなど、重複する機能環境変数を設定すると、起動時に無視される旨の警告が表示されます。- 不明な TOML キーについても警告が表示されるため、
[guardrails]のようなタイプミスに気付き、実行時の動作を調査する前に修正できます。
サーバーを起動せずに設定ファイルを検証するには、アプリのワークスペースをビルドした後、パッケージ化されたエントリーポイントを使用してください。
pnpm -C apps/brave-search-mcp run build
node apps/brave-search-mcp/dist/index.js --check-config ./apps/brave-search-mcp/test/fixtures/config.valid.toml
ビルド済みのローカルエントリーポイントをファイルモードで実行するには:
pnpm -C apps/brave-search-mcp run build
BRAVE_API_KEY="your_key_here" BRAVE_MCP_CONFIG="$PWD/apps/brave-search-mcp/test/fixtures/config.valid.toml" node apps/brave-search-mcp/dist/index.js --http
ChatGPT での使用方法
Brave Search MCP Server は、ChatGPT のウェブ UI で使用できます。いくつかの手順が必要です。
1. ChatGPT で開発者モードを有効にする
設定 → アプリ → 詳細設定 → 開発者モード
詳しい手順はこちらをご覧ください。
2. Brave Search MCP を HTTP モードと UI モードで実行する
BRAVE_API_KEY="your_key_here" npx -y brave-search-mcp --http --ui
3. ChatGPT に MCP Server を公開するためのローカルトンネルを作成する
ngrok に登録して設定します。無料プランで利用できます。
ngrok http 3001
転送 URL を控えておきます。
...
Forwarding https://john-joe-asdf.ngrok-free.dev -> http://localhost:3001
...
4. Brave Search MCP を ChatGPT のコネクターとして追加する
ChatGPT アプリの設定を開きます。
「アプリ」をクリックします。
「アプリを作成」をクリックします。
手順 3 の URL を MCP Server URL としてフォームに入力し、末尾に /mcp を追加します。
https://john-joe-asdf.ngrok-free.dev/mcp
認証では「認証なし」を選択します。
「理解したうえで続行します」のチェックボックスをオンにします。
次に「作成」をクリックします。
5. Brave Search MCP Server を使用する
ChatGPT の UI で「+」ボタンをクリックし、「…その他」までスクロールして、作成した Brave Search アプリを選択し、クエリを入力します。
Claude Code での使用方法
Claude Code のユーザーは、次のコマンドを実行してください。
Windows:
claude mcp add-json brave-search '{"command":"cmd","args":["/c","npx","-y","brave-search-mcp"],"env":{"BRAVE_API_KEY":"YOUR_API_KEY_HERE"}}'
Linux/macOS:
claude mcp add-json brave-search '{"command":"npx","args":["-y","brave-search-mcp"],"env":{"BRAVE_API_KEY":"YOUR_API_KEY_HERE"}}'
YOUR_API_KEY_HERE を実際の Brave Search API キーに置き換えてください。
Claude Desktop での使用方法
MCP バンドル(MCPB)
- Releasesから
mcpbファイルをダウンロードします。 - Claude Desktop で開きます。 または 「ファイル」→「設定」→「拡張機能」に移動し、.mcpb ファイルをウィンドウにドラッグしてインストールします。
Docker
- リポジトリをクローンします。
- リポジトリのルートからイメージをビルドします。
docker build -t brave-search-mcp:latest -f apps/brave-search-mcp/Dockerfile .
- HTTP モードを使用する場合は、直接実行します。
docker run --rm -p 3001:3001 -e BRAVE_API_KEY="YOUR_API_KEY_HERE" brave-search-mcp:latest --http
- stdio モードの場合は、これを
claude_desktop_config.jsonに追加します。
{
"mcp-servers": {
"brave-search": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BRAVE_API_KEY",
"brave-search-mcp"
],
"env": {
"BRAVE_API_KEY": "YOUR API KEY HERE"
}
}
}
}
NPX
これを claude_desktop_config.json に追加します。
{
"mcp-servers": {
"brave-search": {
"command": "npx",
"args": [
"-y",
"brave-search-mcp"
],
"env": {
"BRAVE_API_KEY": "YOUR API KEY HERE"
}
}
}
}
LibreChat での使用方法
これを librechat.yaml に追加します。
brave-search:
command: sh
args:
- -c
- BRAVE_API_KEY=API KEY npx -y brave-search-mcp
コントリビューション
コントリビューションを歓迎します。開発環境のセットアップ、モノレポの構成、リリース手順については、CONTRIBUTING.mdをご覧ください。 エントリーポイントオーケストレーターを含む UI ビルドのワークフローの詳細については、UI Build Orchestratorをご覧ください。
免責事項
このライブラリは Brave Software との公式な関連はありません。Brave Search API と MCP サーバーのサードパーティー実装です。
ライセンス
このプロジェクトは GNU General Public License v3.0 の下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。