MCPサーバ - Exa

提供: MochiuWiki : SUSE, EC, PCB

概要

Exa MCP Server (exa-labs/exa-mcp-server) は、Model Context Protocol (MCP) を通じてAIアシスタントにExa検索APIの機能を統合するサーバである。
Exa Labsが開発・提供するオープンソースプロジェクトであり、MITライセンスの下で公開されている。

対応クライアントは、Claude Desktop、Claude Code、OpenCode、Cursor、VS Code、Windsurf、Zed、Gemini CLI、v0 by Vercel、Warp、Roo Code等、多数のMCPクライアントに対応する。

ホストMCPサーバ (https://mcp.exa.ai/mcp) または npmパッケージとして利用可能であり、APIキー不要で無料利用を開始できる。
オプションでExa APIキーを追加することで、より高度な機能を利用できる。

主な特徴は以下の通りである。

  • MCP標準に準拠したWeb検索インターフェース
  • ホストMCPサーバによるセットアップ不要の導入
  • Web検索、コード検索、企業調査、学術論文検索、ピープルサーチ等の多機能ツール
  • Deep Researcher機能による詳細なリサーチレポート生成
  • URLパラメータによる柔軟なツール選択
  • Windows、MacOS、Linuxの主要なOSで動作



提供ツール

デフォルト有効ツール

ツール指定なしの場合、web_search_exaget_code_context_exa がデフォルトで有効になる。

下表に、デフォルトで有効なツールの一覧を示す。

デフォルト有効ツール一覧
ツール名 説明
web_search_exa 一般的なWeb検索を行い、クリーンで利用可能なコンテンツを返す。
日付フィルタに対応する。
get_code_context_exa GitHub、Stack Overflow、技術ドキュメントからプログラミングソリューションを検索する。
数十億のGitHubリポジトリを検索対象とする。
company_research_exa 企業調査およびニュースリサーチを行う。
企業Webサイトをクロールして詳細情報、資金調達データ、チーム情報等を収集する。


デフォルト無効ツール

以下に示すツールはデフォルトで無効になっており、URLパラメータ ?tools= で有効化できる。

デフォルト無効ツール一覧
ツール名 説明
web_search_advanced_exa Exa検索の全パラメータを使用可能な高度なWeb検索
カテゴリフィルタ、ドメイン制限、日付範囲、テキストフィルタリング、ハイライト、サマリー、サブページクローリングに対応する。
crawling_exa 既知URLの完全なWebページコンテンツを取得する。
people_search_exa LinkedInプロフィールおよび職務経歴情報を検索する。
linkedin_search_exa 企業および個人のLinkedIn情報を検索する。
deep_researcher_start 詳細なリサーチレポート作成タスクを開始する。
タスクIDを返す。
deep_researcher_check deep_researcher_startで開始したリサーチタスクの完了状態を確認し、レポートを取得する。


検索カテゴリ

下表に、web_search_advanced_exa で使用可能なカテゴリを示す。

検索カテゴリ一覧
カテゴリ 説明
financial report 金融レポート (SEC申請書、決算データ)
research papers 研究論文 (arXiv、学術雑誌)
personal site 個人サイトおよびブログ
people ピープルサーチ
company 企業情報
news ニュース記事
tweet ツイートおよびスレッド



動作要件

共通の要件

OS問わず共通して必要な要件を以下に示す。

  • インターネット接続
  • MCPに対応したクライアント (Claude Desktop、Claude Code、OpenCode等)


ホストMCPサーバを使用する場合、ローカルにNode.js等のセットアップは不要である。

npmパッケージを使用する場合は、以下が追加で必要になる。



APIキーの取得

Exa APIキーを取得するには、以下に示す手順を実行する。

  1. https://dashboard.exa.ai/api-keys にアクセスする。
  2. サイドバーから[API Keys]を選択する、
  3. [Create API Key]を選択する。
  4. キー名を入力して、[Create]を選択する。
  5. 表示されたAPIキーをコピーして安全に保管する。(表示は1度のみ)


APIキーのセキュリティに関する注意事項は以下の通りである。

  • .envファイル に保存して、.gitignoreファイル に追加してバージョン管理の対象外にする。
  • 設定ファイルにAPIキーをハードコードしない。
  • 定期的にダッシュボードから新しいキーを生成してキーをローテーションする。



インストール

ホストMCPサーバを使用する場合 (推奨)

Exa公式が提供するホストMCPサーバを使用する方法である。
URLのみで設定が完了するため、ローカルにNode.jsのセットアップが不要である。


npmパッケージを使用する場合

ローカル環境でnpmパッケージを実行する方法である。

npxで実行する場合は以下のコマンドを使用する。

npx exa-mcp-server


グローバルインストールする場合は以下のコマンドを実行する。

npm install -g exa-mcp-server


利用可能なツールの一覧を表示する。

npx exa-mcp-server --list-tools



設定

設定ファイルの場所

各MCPクライアントの設定ファイルの場所は以下の通りである。

Claude Desktopの設定ファイルを以下に示す。

  • Windows
    %APPDATA%\Claude\claude_desktop_config.json
  • MacOS
    ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux
    ~/.config/Claude/claude_desktop_config.json


Claude Codeの設定ファイルを以下に示す。

  • Windows
    %APPDATA%\claude\settings.json
  • MacOS
    ~/Library/Application Support/claude/settings.json
  • Linux
    ~/.config/claude/settings.json


OpenCodeの設定ファイルを以下に示す。

  • グローバル設定
    ~/.config/opencode/opencode.json
  • プロジェクト設定
    /<プロジェクトルート>/opencode.json


Claude Desktopでの設定

Claude Desktopの設定ファイルに以下の内容を追記する。

  • ホストMCPサーバを使用する場合 (推奨)、mcp-remote経由で接続する。
     {
       "mcpServers": {
         "exa": {
           "command": "npx",
           "args": ["-y", "mcp-remote", "https://mcp.exa.ai/mcp"]
         }
       }
     }
    

  • npmパッケージを直接実行する場合
     {
       "mcpServers": {
         "exa": {
           "command": "npx",
           "args": ["-y", "exa-mcp-server"],
           "env": {
             "EXA_API_KEY": "<APIキー>"
           }
         }
       }
     }
    


設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。

Claude Codeでの設定

Claude Codeでは、claude mcp add コマンドを使用してMCPサーバを追加できる。

CLIコマンドでMCPサーバを追加する場合は以下のコマンドを実行する。

# ホストMCPサーバ (推奨)
claude mcp add --transport http exa https://mcp.exa.ai/mcp

# ツール指定版
claude mcp add --transport http exa "https://mcp.exa.ai/mcp?tools=web_search_advanced_exa,crawling_exa"

# npmパッケージ版
claude mcp add -e EXA_API_KEY=<ExaのAPIキー> -- npx -y exa-mcp-server


設定ファイルに直接記述する場合は以下の内容を追記する。

 {
   "mcpServers": {
     "exa": {
       "command": "npx",
       "args": ["-y", "mcp-remote", "https://mcp.exa.ai/mcp"]
     }
   }
 }


OpenCodeでの設定

  • OpenCodeの設定ファイルにリモートMCPサーバとして設定する場合 (推奨)
     {
       "mcp": {
         "exa": {
           "type": "remote",
           "url": "https://mcp.exa.ai/mcp",
           "enabled": true
         }
       }
     }
    

  • npmパッケージをローカルで実行する場合
     {
       "mcp": {
         "exa": {
           "type": "local",
           "command": "npx",
           "args": ["-y", "exa-mcp-server"],
           "env": {
             "EXA_API_KEY": "<APIキー>"
           },
           "enabled": true
         }
       }
     }
    

  • CLIコマンドを使用する場合
     opencode mcp add exa --url https://mcp.exa.ai/mcp
    


OpenCodeはリモートMCPサーバに対して自動的にOAuth認証を処理する。

特定ツールの有効化

URLパラメータ ?tools= を使用して有効にするツールをカンマ区切りで選択できる。

  • 特定ツールを指定する場合
     https://mcp.exa.ai/mcp?tools=web_search_exa,crawling_exa,company_research_exa
    

  • 全ツールを有効化する場合
     https://mcp.exa.ai/mcp?tools=web_search_exa,get_code_context_exa,company_research_exa,web_search_advanced_exa,crawling_exa,people_search_exa,linkedin_search_exa,deep_researcher_start,deep_researcher_check
    


環境変数の設定

npmパッケージを使用する場合、Exa APIキーを環境変数として設定する必要がある。

  • .envファイル で設定する場合
     EXA_API_KEY=<APIキー>
    

  • Linux / MacOSで設定する場合
     export EXA_API_KEY="<APIキー>"
    

  • Windowsで設定する場合
    • PowerShellを使用する場合
       $env:EXA_API_KEY = "<APIキー>"
      

    • コマンドプロンプトを使用する場合
       set EXA_API_KEY=<APIキー>
      



使用方法

各ツールはAIアシスタントが自然言語の指示を受けて自動的に呼び出す。

Web検索

  • Web空最新情報を検索する場合のプロンプト例
     # プロンプト例 :
     
     React 19の最新機能について検索してください。
    


コード検索

  • プログラミングソリューションを検索する場合のプロンプト例
     # プロンプト例 :
     
     Node.jsでOAuth 2.0認証を実装するコード例を探してください。
    


企業調査

  • 企業の詳細情報を収集する場合のプロンプト例
     # プロンプト例 :
     
     Stripeの企業情報、資金調達履歴、最新ニュースをリサーチしてください。
    


Webページクローリング

既知URLのページ内容を取得する場合のプロンプト例を以下に示す。

  • 特定URLのページ内容を取得する場合
     # プロンプト例 :
     
     https://example.com/docs のページ内容を取得してください。
    


Deep Researcher

Deep Researcherは非同期ジョブベースのパターンで動作する。

動作の流れは以下の通りである。

  1. deep_researcher_start でリサーチタスクを開始する。
  2. タスクIDを取得する。
  3. deep_researcher_check でタスクの完了状態を確認する。
  4. 完了後、リサーチレポートを取得する。


詳細なリサーチレポートを作成する場合のプロンプト例を以下に示す。

  • 特定テーマの詳細リサーチを依頼する場合
     # プロンプト例 :
     
     量子コンピューティングスタートアップの最新動向について、詳細なリサーチレポートを作成してください。
    



その他

制約事項

テキストフィルタの制限事項
  • includeText および excludeText パラメータは単一項目の配列のみ対応する。(複数項目は400エラー)
  • テキストフィルタは最大5単語まで
  • people カテゴリでは includeText / excludeText 使用不可


カテゴリ別フィルタの制限事項

company カテゴリ使用時の制限:

  • includeDomains / excludeDomains は使用不可
  • 日付フィルタ (startPublishedDate 等) は使用不可


financial report カテゴリ使用時の制限:

  • excludeText は使用不可


関連リンク