🦁
【Error: fetch is not defined】Claude MCPのBrave Search使用時に発生するエラーへの対応
状況
MCPでBrave Searchを利用したいと思い設定を進めていました。
Macを使用しており、状況としては以下の通りです。
-
MCPサーバへの接続は成功している
- MCPログに
Connected to MCP server brave-search!
と出ている
- MCPログに
- しかし検索実行時になると
Error: fetch is not defined
と表示されて検索に失敗する
→MCPサーバには接続できているが、検索が実行できないという状況
解決方法
こちらの記事を参考にトランスパイルしたjsファイルを直接指定し、commandにはnodeをフルパスで指定することで無事動きました。
記事内で紹介されているエラーとは異なりますが解決しました。
リポジトリのクローン
MCP serversのリポジトリをクローンします。
git clone https://github.com/modelcontextprotocol/servers.git
ビルド
brave-search
のディレクトリに移動しnpm i
(install)で依存関係のインストール後、
npm run build
でビルドを実行します。
cd servers/src/brave-search
npm i
npm run build
次に、npm link
でローカルにあるnpmパッケージを他プロジェクトから参照可能な状態にします。
npm link
npm link
の存在を知らなかったのですが、以下記事が参考になりました。
念の為distディレクトリ配下にindex.jsファイルが生成されているか確認します。
ls dist
ビルドしたindex.jsファイルとnodeのフルパスを取得
- distディレクトリに移動し、
pwd
を実行し現在のパスを確認-
/Users/USERNAME/YOUR_PATH/servers/src/brave-search/dist/
という感じで現在のパスが確認できます - ビルドしたindex.jsファイルを指定したいので、
/Users/USERNAME/YOUR_PATH/servers/src/brave-search/dist/index.js
となります
-
-
which node
でnodeのフルパスを取得
設定ファイル(claude_desktop_config.json)の更新
上のステップで取得した内容をconfigに記載。
claude_desktop_config.json
{
"mcpServers": {
"brave-search": {
- "command": "npx",
+ "command": "<`which node`で取得したフルパス>",
"args": [
- "-y",
- "@modelcontextprotocol/server-brave-search"
+ "/Users/USERNAME/YOUR_PATH/servers/src/brave-search/dist/index.js"
],
"env": {
"BRAVE_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
Claude Desktopの再起動
アプリを再起動して実行すると、無事ClaudeからWeb検索できました!
おまけ
なぜClaudeに明石市について聞いているかというと、筆者の出身地だからです。
明石はいい街🐙
Discussion