Claude Media
ExaのMCPサーバーでClaudeにWeb検索を追加する

ExaのMCPサーバーでClaudeにWeb検索を追加する

ExaのMCPサーバーをClaude CodeやDesktop・Web・Coworkに接続する手順と、認証方式・ツールの使い分け、公式ページ間で食い違うagent_runの扱いをまとめます。

Exa MCPとは

Exa MCPは、Web検索エンジンExaが提供するMCPサーバーです。ClaudeにWeb検索とページ読み取りのツールを追加し、社内文書だけでなく現在のWeb上の情報も参照させられるようにします。

Exaはホスト型のMCPサーバーをhttps://mcp.exa.ai/mcpで公開しており、APIキーなしでも接続できます。サーバー自体はMITライセンスのオープンソースで、GitHubリポジトリは5,000以上のスターを集めています。ローカルで動かすnpmパッケージ版も配布されていますが、Claudeから使うだけならホスト型サーバーに直接繋ぐ方が手数は少なく済みます。

Claude Code・Claude Desktop・Claude Web・Coworkのいずれからも接続でき、使う製品によって追加方法が異なります。

Claude Codeにプラグインとして追加する

Claude Codeでは、Agent Pluginとして配布されているExaをターミナルからインストールできます。

claude plugin install exa@claude-plugins-official

Claude Code内で/pluginを実行し、Exaを検索してインストールする方法でも同じ結果になります。インストール後は新しいセッションを開始してからでないとプラグインが読み込まれないため、既存のセッションで試す場合は再起動が必要です。

プラグイン経由ではなく、MCPサーバーとして直接追加したい場合はclaude mcp addが使えます。

claude mcp add --transport http exa https://mcp.exa.ai/mcp

どちらの方法でも設定ファイルを手で編集する必要はありません。claude mcp addが書き込む内容は、一時ディレクトリで--scope projectを付けて実行すると目で見られます(Claude Code v2.1.287)。

claude mcp add --transport http --scope project exa https://mcp.exa.ai/mcp
cat .mcp.json
Added HTTP MCP server exa with URL: https://mcp.exa.ai/mcp to project config
File modified: <作業ディレクトリ>/.mcp.json
{
  "mcpServers": {
    "exa": {
      "type": "http",
      "url": "https://mcp.exa.ai/mcp"
    }
  }
}

--scopeを省くと既定のlocalに保存されます。projectはリポジトリ直下の.mcp.jsonに書き込むので、チームで共有する設定に向きます。Exaのドキュメントに載っている汎用の設定例はurlだけの形ですが、Claude Codeが生成するファイルには"type": "http"が付きます。

APIキーを使う場合は、--headerでx-api-keyヘッダーを渡します。コマンドの出力ではキーが[REDACTED]に伏せられる一方、.mcp.jsonにはキーがそのまま保存されます。

claude mcp add --transport http --scope project exa-keyed https://mcp.exa.ai/mcp --header "x-api-key: YOUR_EXA_API_KEY"
"exa-keyed": {
  "type": "http",
  "url": "https://mcp.exa.ai/mcp",
  "headers": {
    "x-api-key": "YOUR_EXA_API_KEY"
  }
}

キーがファイルに平文で残るので、projectスコープで共有リポジトリにコミットする使い方とは相性がよくありません。個人のキーはlocalかuserスコープに置く選択肢があります。GitHubのREADMEには、キーをURLの?exaApiKey=で渡す方法とAuthorization: Bearerヘッダーで渡す方法も載っています。

HTTP接続を持たないクライアント向けに、Exaのドキュメントはmcp-remoteブリッジ(npx -y mcp-remote https://mcp.exa.ai/mcp)を案内しています。ローカルのnpmパッケージも選べます。Claude Codeは--transport httpでホスト型サーバーに直接繋げます。ローカル版を使う場合は、APIキーを環境変数で渡します。

{
  "mcpServers": {
    "exa": {
      "command": "npx",
      "args": ["-y", "exa-mcp-server"],
      "env": {
        "EXA_API_KEY": "your_api_key"
      }
    }
  }
}

追加後は「最新のTailwind v4移行ガイドを検索して、このプロジェクトを移行して」のように、Web上の情報が必要なタスクを依頼できます。

Agent Pluginとしてインストールした場合は、MCPツールに加えてsearchとexa-agentの2つのAgent Skillも一緒に読み込まれます。searchは深い調査・リード獲得・競合分析のような多段階の調査を、exa-agentはagent_runを使った構造化出力やデータ拡張の呼び出しをそれぞれ支援します。claude mcp addでMCPサーバーとしてだけ追加した場合、ツール自体は使えますがこの2つのSkillは付いてきません。

Claude Desktop・Web・Coworkに接続する

Claude Desktop・Web・Coworkの3つは、いずれもExaの公式コネクタを共通で使います。

手順

コネクタの追加手順

  1. 1

    コネクタ一覧を開く

    新しいチャットでプラスボタンを選び、「コネクタを追加(Add connector)」からExaを検索します。

  2. 2

    Claudeに接続する

    Exaを開いて「Connect to Claude」を選び、認可画面で許可します。

  3. 3

    新しいチャットで使う

    Webの最新情報が要る依頼を新しいチャットで投げます。

接続後は「主要なオープンソースのベクトルデータベースについて、マネージド提供の有無・ライセンス・料金を現在の一次情報を使って比較して」のように、複数のページを横断して調べる依頼ができます。ClaudeはExaで検索と読み取りを繰り返しながら、根拠付きの回答にまとめます。

Coworkでも同じコネクタがそのまま使え、ファイルや他の接続済みツールと合わせて作業しながらWeb検索・ページ取得を呼び出せます。「この競合分析の資料にある価格の記載を、各社の現在の料金ページと突き合わせて確認し、出典付きで資料を更新して」のように、手元のファイルとWeb上の情報を組み合わせたタスクにも使えます。Claude Team・Enterpriseプランでは、管理者がIDプロバイダー経由でコネクタを組織全体に一括プロビジョニングする運用も可能です。

認証方式でできることが変わる

Exa MCPの認証は3方式で、使えるレート上限とツールの範囲が変わります。接続先のURLはhttps://mcp.exa.ai/mcpで共通で、接続時の認証情報だけを差し替えます。

認証

3つの認証方式

  • キーなし

    サインインもAPIキーも不要で、https://mcp.exa.ai/mcpにそのまま接続します。無料のレート制限がかかります。

  • OAuth

    https://mcp.exa.ai/mcp?loginに接続し、ブラウザでExaにサインインします。利用量は自分のExaチームに紐づきます。対話型クライアント・マーケットプレイス経由・本番利用向けです。

  • APIキー

    x-api-keyヘッダーにキーを設定します。MCP OAuthに対応しないクライアント向けで、キーはダッシュボードで発行できます。新規アカウントには無料クレジットが付きます。

GitHubのREADMEは認証にOAuthを推奨しており、強制的にログインさせるURLとして/mcp/oauthも載せています。ChatGPTやClaudeのマーケットプレイス経由のインストールでは、必要になった時点でサインインを求められます。

使えるツールとURLパラメータでの有効化

既定で有効になるツールと、明示的に有効化が必要なツールに分かれています。

ツール既定用途
web_search_exa既定有効用途Web検索を行い、整形済みのコンテンツを返す
web_fetch_exa既定有効用途指定したURLのページ内容をMarkdownとして取得する
web_search_advanced_exa既定オプトインで有効用途ドメイン・日付範囲・サブページクロールなどの高度な検索フィルタを使う
agent_run既定OAuthまたはAPIキーの接続が必要(下記)用途複数ステップにまたがる調査・リストの構築・構造化出力を実行する

ツールの有効・無効はtoolsパラメータをMCP URLに付けて切り替えます。パラメータを指定すると既定のツールリストが置き換わるため、使いたいツールはすべて列挙する必要があります。

https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa,web_search_advanced_exa,agent_run

web_search_advanced_exaは認証なしでも使えますが、OAuthやAPIキーで接続している場合はその契約のプランとレート制限がそのまま適用されます。通常の検索ではweb_search_exaのままにしておくと、モデルに見えるツールが少なく、設定も少なく済みます。

web_search_advanced_exaでは、対象ドメインを絞るincludeDomains、公開日で絞り込むstartPublishedDate、本文中のハイライトを付けるenableHighlights、情報の鮮度を指定するmaxAgeHoursといったフィールドが使えます。これらはExaのSearch APIの検索オプションを、MCPツール向けのフィールド名にしたものです。正確な名前はクライアント側のツールスキーマで確認できます。

web_fetch_exaはページのURLが分かっている場合に使う読み取り専用のツールで、指定した1件または複数件のURLをMarkdownとして返します。検索でヒットしたURLをそのまま読み込む使い方に加えて、ドキュメントやリリースノート、issueのURLをClaudeに渡して直接読ませる使い方もできます。

Exa Agentで複数ステップの調査を任せる

agent_runは、1回の検索では終わらない調査(リストの作成・各項目の条件照合・構造化出力の生成など)向けのツールです。単発のweb_search_exaは「1つの質問に対する検索結果」を返します。agent_runは、Claudeからの依頼を受けたExa側のAgentが検索・読み取りを繰り返し、依頼内容と突き合わせて結果をまとめます。利用量に応じた課金が発生するため、OAuthかAPIキーでの接続が前提になります。

くらべる

agent_runは既定で有効か: 公式ページ同士の食い違い

既定で有効

Exa MCPのドキュメント

ツール表に「Enabled by default with OAuth or API key」とあります。認証済みならtoolsパラメータなしで、検索ツールと並んで有効になります。

オプトイン

GitHubのREADME

agent_runをweb_search_advanced_exaと並べて「Optional Tools」に分類し、toolsパラメータで有効にする形で書いています。

どちらのページでも、toolsを明示するならagent_runをリストに含める点は一致しています。次のようにURLへ列挙しておけば、どちらの説明に従っても同じ結果になります。OAuthでの接続は、サインインを求められた時点で進めます。

claude mcp add --transport http exa "https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa,agent_run"

調査がMCPの1回の呼び出しで終わらない場合、agent_runは失敗せずにstatus: "running"と実行IDを返します。Claudeは同じIDをrunIdとして再度呼び出すことで、続きから調査を再開できます。

フィールド用途
systemPrompt用途調査や判定の追加方針をAgentに与える
outputSchema用途結果を特定のJSON形式で返させる
input.data用途手元にある行・エンティティを拡張する
input.exclusion用途既知の結果をスキップする
dataSources用途Exa Connectのプロバイダーを最大5つまで追加する
previousRunId用途完了済みの調査を踏まえて新しいリクエストを組み立てる
effort用途どこまで調査に時間をかけるかを選ぶ

outputSchemaを指定すると、Claudeは調査結果・出典・検証済みのJSON・使用量とコストをひとまとめに受け取ります。要約や比較、ファイルへの保存といった後続の作業は、その内容をもとに進みます。

よくあるつまずき

  • 429エラーでレート制限に達する: キーなし接続の無料レート制限に達した状態です。OAuthでサインインするかAPIキーを設定し、再接続すると自分のプランの上限に切り替わります。
  • agentが見当たらない、または認証を求められる: agent_runは無料のレート制限では使えず、?loginかAPIキーで接続したときに現れます。toolsを明示しているなら、そのリストにagent_runを足します。
  • OAuthのサインイン画面が開かない: クライアントがMCP OAuthに対応しているかを確認し、https://mcp.exa.ai/mcp?loginに接続し直します。対応していないクライアントではAPIキー方式を使います。
  • ツールが増えない・減らない: toolsパラメータを明示すると既定のツールリストがまるごと置き換わります。有効にしたいツールがURLにすべて含まれているか確認し、MCPクライアントを再起動してツール一覧を取得し直します。
  • Claude Desktopで接続できない: コネクタ追加の導線(プラスボタン→「Connectors」タブ→Exaを検索)からやり直します。手動で設定ファイルを編集する場合の対象は、macOSが~/Library/Application Support/Claude/claude_desktop_config.json、Windowsが%APPDATA%\Claude\claude_desktop_config.jsonです。

まとめ

まずキーなしのweb_search_exaとweb_fetch_exaで使い始め、429が出るかagent_runが必要になった時点でOAuthかAPIキーに切り替える進め方が、手戻りが少なくなります。

他のMCPサーバーの選び方はおすすめMCPサーバー10選、claude mcp addのスコープや設定ファイルの詳細はClaude Code MCP設定ガイドにまとめています。接続後にツールが認識されないときの切り分け手順はMCPサーバーに接続できないときの切り分け手順を参照してください。

この記事を共有:XはてブLinkedIn