MCPサーバ - Exa
概要
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_exa と get_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パッケージを使用する場合は、以下が追加で必要になる。
- Node.js
npxコマンドが使用可能であること。
- Exa APIキー
APIキーの取得
Exa APIキーを取得するには、以下に示す手順を実行する。
- https://dashboard.exa.ai/api-keys にアクセスする。
- サイドバーから[API Keys]を選択する、
- [Create API Key]を選択する。
- キー名を入力して、[Create]を選択する。
- 表示されたAPIキーをコピーして安全に保管する。(表示は1度のみ)
APIキーのセキュリティに関する注意事項は以下の通りである。
- .envファイル に保存して、.gitignoreファイル に追加してバージョン管理の対象外にする。
- 設定ファイルにAPIキーをハードコードしない。
- 定期的にダッシュボードから新しいキーを生成してキーをローテーションする。
インストール
ホストMCPサーバを使用する場合 (推奨)
Exa公式が提供するホストMCPサーバを使用する方法である。
URLのみで設定が完了するため、ローカルにNode.jsのセットアップが不要である。
- サーバURL
- APIキーを指定する場合
- https://mcp.exa.ai/mcp?exaApiKey=<ExaのAPIキー>
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キー>
- PowerShellを使用する場合
使用方法
各ツールはAIアシスタントが自然言語の指示を受けて自動的に呼び出す。
Web検索
- Web空最新情報を検索する場合のプロンプト例
# プロンプト例 : React 19の最新機能について検索してください。
コード検索
- プログラミングソリューションを検索する場合のプロンプト例
# プロンプト例 : Node.jsでOAuth 2.0認証を実装するコード例を探してください。
企業調査
- 企業の詳細情報を収集する場合のプロンプト例
# プロンプト例 : Stripeの企業情報、資金調達履歴、最新ニュースをリサーチしてください。
Webページクローリング
既知URLのページ内容を取得する場合のプロンプト例を以下に示す。
- 特定URLのページ内容を取得する場合
# プロンプト例 : https://example.com/docs のページ内容を取得してください。
Deep Researcher
Deep Researcherは非同期ジョブベースのパターンで動作する。
動作の流れは以下の通りである。
- deep_researcher_start でリサーチタスクを開始する。
- タスクIDを取得する。
- deep_researcher_check でタスクの完了状態を確認する。
- 完了後、リサーチレポートを取得する。
詳細なリサーチレポートを作成する場合のプロンプト例を以下に示す。
- 特定テーマの詳細リサーチを依頼する場合
# プロンプト例 : 量子コンピューティングスタートアップの最新動向について、詳細なリサーチレポートを作成してください。
その他
制約事項
テキストフィルタの制限事項
includeTextおよびexcludeTextパラメータは単一項目の配列のみ対応する。(複数項目は400エラー)- テキストフィルタは最大5単語まで
peopleカテゴリではincludeText/excludeText使用不可
カテゴリ別フィルタの制限事項
company カテゴリ使用時の制限:
includeDomains/excludeDomainsは使用不可- 日付フィルタ (
startPublishedDate等) は使用不可
financial report カテゴリ使用時の制限:
excludeTextは使用不可
関連リンク