MCPめっちゃ便利なんですが、Node.js入れたりnpmコマンド実行したり、非ITエンジニアにはなかなか使ってもらえないですよね。。
Node.jsなしで配布する方法がないか探したところ、ありました!
ステータスがActive developmentなようですが、Node.jsアプリケーションを単一の実行ファイルにできるようです!
やってみた
WindowsでNodeが入ってる環境で作業します。
Brave Search MCP Serverを対象とします。
PowerShellでコマンドを順に実行します。
ソースを取得します。
git clone https://github.com/modelcontextprotocol/servers.git
フォルダーを移動します。
cd .\servers\src\brave-search\
Nodeのライブラリーをインストールします。
npm install
ビルドします。dist/index.jsが生成されます。
npm run build
外部ライブラリーをサポートしていない(単一のJavaScriptじゃないとだめ)らしいので、バンドルします。
参考:https://qiita.com/tenpaMk2/items/dbc15c2e99709878a69b
npx -y esbuild dist/index.js --bundle --outfile=bundle.js --platform=node --format=cjs
sea-config.json
というファイルを作成します。
{
"main": "bundle.js",
"output": "sea-prep.blob"
}
よくわからない謎のコマンドを実行します。
PS > node --experimental-sea-config sea-config.json
PS > node -e "require('fs').copyFileSync(process.execPath, 'brave-search-mcp.exe')"
PS > npx -y postject brave-search-mcp.exe NODE_SEA_BLOB sea-prep.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2
これでbrave-search-mcp.exe
ができました!!
Claude Desktopで使ってみる
Claude Desktopの設定ファイル(claude_desktop_config.json
)を編集します。
{
"globalShortcut": "Alt+Ctrl+Space",
"mcpServers": {
"brave-search": {
"command": "C:/Users/{ユーザー名}/brave-search-mcp.exe",
"env": {
"BRAVE_API_KEY":"{APIキー}"
}
}
}
}
動いた!
めでたしめでたし
流行りのPlaywright MCPでやりたかったのですが、私の力及ばず断念。。
どなたかお願いしますm(_ _)m