背景
もはや何番煎じなのかというような話題ですがMCPサーバ自分でも触って便利さを知りたかったのでbrave-searchとfetchをつかってdeep searchっぽいものを作ってみました。
ちなみに先日下記の講演を聞いていたところから参考にさせてもらっています。
目標は「おいしい都内の大福屋さん三選」をbrave-searchとfetchをつかってまとめてもらうことです。
やっていきましょう。
環境
Docker Desktop 4.41.2
Docker MCP Toolkit 1.0.1
Cursor 0.50.6
CursorとDocker Desktopが入ってる前提で話をします。
MCPに関連する各設定は説明しますが、CursorとDocker Desktopの導入は説明を省くのでご了承ください。
使うMCPサーバ
-
brave search
webブラウザのBraveのAPIをつかうために利用します。
おぼろげな記憶だとコロナ禍の前くらいに流行った気がしますね。web広告を表示しないようにできるのでBraveは筆者も愛用してます。
2000クエリ/月までならフリープランで使えます。それ以上なら課金が必要ですが実際そんなに使わない気もする。個人なら。 -
fetch
ウェブコンテンツの取得と処理に使うMCPサーバです。イメージとしてはBraveで検索したページをHTMLからMarkdownに直したり、検索したページの情報をAIがまとめるために使ってる感じ。githubに記載がありますが
手順
- Docker MCP Tookitの導入
- Brave searchのAPIキーの取得
- MCPサーバの設定
という感じでやっていきます
1. Docker MCP Toolkitの導入
Docker Desktopを開いて「Extensions」の「Browse」からMCPを検索して「Docker MCP Toolkit」をインストールしましょう。
筆者はすでにインストールしてしまっているので「Docker MCP Toolkit」の横のボタンが「Open」になっていますがまだ導入していなければ「Install」になっていると思います。
この辺りは特につまづくこともないと思います。インストール後、Docker MCP Toolkitを起動すると下のような感じになると思います。
2. Brave searchのAPIキーの取得
Brave searchを使うためにAPIキーを取得してくる必要があります。
こちらからアクセスをして、(アカウントを持っていなければ)アカウントを作成しましょう。
注意点としてはGoogleアカウントとかでログインができない仕様で、メールアドレスを使ってアカウント作成する必要があります。
作業自体は表示通り進めればすぐ終わります。
アカウントを作成した後はダッシュボードから「API keys」をクリックします。
「Please use the Subscriptions tab to subscribe before generating keys for a plan.」ということでAPIキー作成の前にサブスクリプションの設定が必要なので案内に従って設定を行います。
今回はFreeプランを使います。
設定が終わったら「API keys」の右上「Add API Key」をクリックしてAPIキー名とSubscription(Freeのみ選択できます)を選択して「Add」をクリックしてAPIキーを発行します。
3. MCPサーバの設定
MCPサーバの登録
ではいよいよMCPサーバの設定を進めていきたいと思います。
1で設定したDocker MCP Toolkitに戻って「MCP Servers」からbraveを検索して「Brave Search(Reference)」を有効化します。
このときに先ほど取得したAPIキーが求められるので入れましょう。
fetchも同様に検索して、有効化しておきましょう。作業が終わると下のような画面になるはずです。
ついでに「MCP Clients」からCursorへの接続(connectのボタンがでてるはず)もしておきましょう。
Cursorへの連携設定
Cursorの「基本設定」→「Cursor Settings」→「MCP」からmcp.jsonを開いて下記の設定を入れます。
このあたりに書いてある情報は各MCPサーバのgithubのReadmeに書いてあります。
{
"mcpServers": {
"MCP_DOCKER": {
"command": "docker",
"args": [
"run",
"-l",
"mcp.client=cursor",
"--rm",
"-i",
"alpine/socat",
"STDIO",
"TCP:host.docker.internal:8811"
]
},
"fetch": {
"command": "docker",
"transport": "sse",
"url": "http://example.com:8000/sse",
"args": [
"run",
"-i",
"--rm",
"mcp/fetch"
]
},
"brave-search": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BRAVE_API_KEY",
"mcp/brave-search"
],
"env": {
"BRAVE_API_KEY": "<自分のAPIキー>"
}
}
}
}
入力後、Cursorを再起動すると下のような感じで各MCPが表示されていると思います。
使用例
さて設定も終わったので実際に当初の目標の「おいしい都内の大福屋さん三選」を調査してもらいましょう。
検索が行われると画像のようにどのツールを使っているか表示されます。ちなみに毎回実行のチェックの必要があります。
結果(Cursorの出力内容)
東京都内のおいしい大福屋さんについて、複数の信頼できるグルメサイトやランキングを横断的に調査した結果、特に評価が高く、伝統・人気・味ともに間違いない「三選」をまとめました。
- 群林堂(ぐんりんどう)【文京区・護国寺】
特徴:東京三大豆大福の一つ。大正5年創業。やわらかいお餅と絶妙な塩気の赤えんどう豆、上品な甘さの粒あんが特徴。午前中で売り切れることも多い超人気店。
住所:東京都文京区音羽2-1-2
営業時間:9:30~17:00(日・月定休)
参考:icotto豆大福10選 / マイレコメンド - 松島屋(まつしまや)【港区・高輪】
特徴:こちらも東京三大豆大福の一つ。昭和天皇も愛した老舗。塩気のきいた赤えんどう豆と甘さ控えめのつぶあんが絶妙。午前中で売り切れることも多いので予約推奨。
住所:東京都港区高輪1-5-25
営業時間:9:30~15:00(日曜・隔週月曜定休)
参考:まっぷる豆大福6選 / マイレコメンド - 瑞穂(みずほ)【渋谷区・原宿】
特徴:東京三大豆大福の最後の一角。もっちり厚めのお餅と、しっとりなめらかなこし餡。手土産にも人気で、ずっしりとした存在感。こちらも午前中で売り切れることが多い。
住所:東京都渋谷区神宮前6-8-7
営業時間:9:00~売り切れ次第終了(日曜定休)
参考:マイレコメンド
補足
いずれも「東京三大豆大福」として名高く、和菓子好きの間で圧倒的な支持を集めています。
どのお店も午前中で売り切れることが多いので、早めの来店や電話予約がおすすめです。
ほかにも「虎ノ門 岡埜榮泉」「浅田家」「つる瀬」なども有名ですが、三選に絞るなら上記が鉄板です。
ご参考になれば幸いです。気になるお店があれば、ぜひ早めの時間に訪れてみてください!
まとめ
brave-searchとfetchを組み合わせてdeep searchっぽい機能をCursorで使えるようにしました。
今回は大福屋さんを調査しましたが、自分で元から知っていた東京三代豆大福をしっかりピックアップしてきたのでなかなか満足です。
プログラムを書いていて詰まった時の広範な調査や個人開発でリサーチなどで活躍しそうです。
困った点
この記事を作るときに一旦brave searchとfetchの設定を消してから設定し直しました。
初回導入時にはbraveのコンテナがCursorの再起動だけでは立ち上がらず、結局自分でコンテナイメージを持ってきてビルドして解決しました。
もしかしたら初めて導入する方は同じ状況になるかもしれませんので、その場合は上記の通りコンテナイメージを自分で持ってくるのが確実に思えます。
参考
Brave Search MCP Server
Fetch MCP Server