🐡

Claude DesktopでBrave Searchが動かない(MCP)

2024/12/07に公開

ClaudeのModel Context Protocol (MCP)機能により、NotionやBrave Searchなどの外部サービスとの連携が可能になりました。この記事では特に、Brave Search APIの連携でハマったポイントとその解決方法について解説します。

https://modelcontextprotocol.io/quickstart

環境

  • Mac Book Air(M2)
  • Node.js v22.12.0
  • Claude Desktop 0.7.5

設定

MCPの設定をするにはClaude Desktopの設定ファイル(claude_desktop_config.json)を編集します。

% cd "/Users/knziiy/Library/Application Support/Claude"
% code claude_desktop_config.json

そして内容は公式の以下のReadmeを元に設定します。

https://github.com/modelcontextprotocol/servers/tree/main/src/brave-search

Notionは設定済みのためnotionの設定も記しています。

claude_desktop_config.json
{
  "mcpServers": {
    "brave-search": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-brave-search"
      ],
      "env": {
        "BRAVE_API_KEY": "YOUR_API_KEY_HERE"
      }
    },
    "notion": {
      "command": "/Users/knziiy/.local/share/mise/installs/node/22/bin/node",
      "args": [
        "/Users/knziiy/dev/git/mcp-notion-server/notion/build/index.js"
      ],
      "env": {
        "NOTION_API_TOKEN": "xxxxxxxx"
      }
    }
  }
}

YOUR_API_KEY_HEREの箇所に自分のBrave Search APIのAPI Keyを指定しておきます。

自分の環境でnpxは実行可能であることは確認済みです。

これで、Claude Desktopを再起動すると設定が反映されます。

エラー

Claude Desktopを起動すると以下のエラーが発生し、Brave Searchが利用できない状態となります:

Could not connect to MCP server brave-search

このエラーは、MCPサーバーとの接続が確立できないことを示しています。

トンカチのアイコンにMCPで利用できる機能(Tool)が表示されますが、Braveは表示されていません。

対応

1. リポジトリのクローンとビルド

原因まで特定していませんが、とりあえず私の環境ではClaude Desktopから相対パスでnpxで@modelcontextprotocol/server-brave-searchを指定するのはうまく動かないようです。

そこで、Notionと同様に予めtsをjsにトランスパイルしておき、直接nodeで起動する形にしてみます。

% git clone https://github.com/modelcontextprotocol/servers.git
% cd servers/src/brave-search
% npm i
% npm run build
% npm link
% ls dist
index.js

できました。
フルパスを確認します。

% cd dist
% pwd
/Users/knziiy/dev/git/servers/src/brave-search/dist
%

つまり上記の場合は /Users/knziiy/dev/git/servers/src/brave-search/dist/index.js となります。

自身のnodeのパスを確認しておきます。

% which node
/Users/knziiy/.local/share/mise/installs/node/22/bin/node

2. 設定ファイルの更新

% cd "/Users/knziiy/Library/Application Support/Claude"
% code claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "brave-search": {
      "command": "/Users/knziiy/.local/share/mise/installs/node/22/bin/node",
      "args": [
        "/Users/knziiy/dev/git/servers/src/brave-search/dist/index.js"
      ],
      "env": {
        "BRAVE_API_KEY": "YOUR_API_KEY_HERE"
      }
    },
    "notion": {
      "command": "/Users/knziiy/.local/share/mise/installs/node/22/bin/node",
      "args": [
        "/Users/knziiy/dev/git/mcp-notion-server/notion/build/index.js"
      ],
      "env": {
        "NOTION_API_TOKEN": "xxxxxxxx"
      }
    }
  }
}

3. 動作確認

Claude Desktopを再起動すると、以下の機能が利用可能になります:

  • brave_local_search
  • brave_web_search

無事Brave Searchが利用可能となりました。

これでやっとBrave検索&NotionでのLLM無双が捗りますね!

Discussion