mcpField
B
Brave Search MCP Server

Brave Search MCP Server

ローカル
github.com/mikechao検索13022 週間前に更新

Brave Search MCP Server について

Brave Search MCP Server は、Brave Search API を利用して Web・画像・動画・ニュース・ローカル検索および LLM コンテキスト検索を提供する MCP サーバーです。stdio と Streamable HTTP の両方で動作し、環境変数または TOML ファイルで設定できます。

主な機能

  1. 01Web・画像・動画・ニュース検索ツール
  2. 02ローカルの関心地点・店舗検索
  3. 03抽出済みページ本文を返す LLM コンテキスト検索
  4. 04stdio と Streamable HTTP のモード
  5. 05任意のレート制限・監査ログ・ポリシーフィルター
  6. 06OpenAI Apps と MCP Apps の UI モード

活用シーン

  1. 01AI アシスタントに最新の Web 検索結果を渡す
  2. 02近隣のレストランやサービス店舗を調べる
  3. 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 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"brave-search": {
"command": "npx",
"args": [
"-y",
"brave-search-mcp"
],
"env": {
"BRAVE_API_KEY": "<BRAVE_API_KEY>"
}
}
}
}
起動コマンドnpx -y brave-search-mcp
設定が必要な環境変数
BRAVE_API_KEYシークレット

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

パッケージ
npmbrave-search-mcp

ツール

6

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

パラメーター型必須説明
countnumberいいえ検索する画像の数。最小 1、最大 20
searchTermstringはい画像を検索するための検索語

詳細

Brave Search MCP サーバー

Brave Search APIと連携する MCP サーバーの実装です。ウェブ検索、ローカルの見どころ検索、動画検索、画像検索、ニュース検索、LLM コンテキスト検索機能を提供します。

Brave Search MCP サーバー

機能

  • ウェブ検索:ウェブを通常検索します
  • 画像検索:ウェブで画像を検索します。
  • ニュース検索:ウェブでニュースを検索します
  • 動画検索:ウェブで動画を検索します
  • ローカルの見どころ検索:近くの実店舗、企業、レストラン、サービスなどを検索します
  • 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 キーの取得
  1. Brave Search API アカウントに登録します
  2. プランを選択します
  3. 開発者ダッシュボードで 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)
  1. Releasesから mcpb ファイルをダウンロードします。
  2. Claude Desktop で開きます。 または 「ファイル」→「設定」→「拡張機能」に移動し、.mcpb ファイルをウィンドウにドラッグしてインストールします。
Docker
  1. リポジトリをクローンします。
  2. リポジトリのルートからイメージをビルドします。
docker build -t brave-search-mcp:latest -f apps/brave-search-mcp/Dockerfile .
  1. HTTP モードを使用する場合は、直接実行します。
docker run --rm -p 3001:3001 -e BRAVE_API_KEY="YOUR_API_KEY_HERE" brave-search-mcp:latest --http
  1. 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 ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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