はじめに
Cursor の AI に、自分で作ったツールを追加できたら便利だと思いませんか? 🤔 Model Context Protocol (MCP) を使えば、それが可能になります!
今回は、Web 検索でおなじみの DuckDuckGo を使って検索やコンテンツ取得ができる MCP サーバーを構築し、Cursor に統合する手順を紹介します。
repomixで一つのテキストにまとめてAIにやらせましょう5分くらいでできます。
こんな感じの👇️

MCPサーバーとは? 🔌
Model Context Protocol (MCP) は、AI モデル(Cursor のエージェントなど)が外部のツールやサービスと連携するための仕組みです。MCP サーバーを立てることで、Cursor のチャットから @あなたのサーバー名 のように呼び出して、特定の機能(今回の場合は DuckDuckGo 検索)を実行できるようになります。
これを使えば、Cursor をもっとパワフルにカスタマイズできますね!💪
今日は Python と FastMCP ライブラリを使って、DuckDuckGo 検索サーバーを作ります🦆
🚀 アジェンダ
- プロジェクトの準備
- 依存関係のインストール
- MCP サーバーの起動
- Cursor への設定
- 使ってみよう!
🛠️ 手順
まずは MCP サーバーを実行できる環境を用意します。
1. プロジェクトの準備 📂
今回は、duckduckgo-mcp-server という既存のプロジェクトを利用します。
-
リポジトリのクローン (推奨):
git clone https://github.com/nickclyde/duckduckgo-mcp-server.git cd duckduckgo-mcp-server -
または、ファイルから復元:
もしrepomix-output.txtのような統合ファイルがある場合は、そこから必要なファイルを展開してください。(今回はこの方法で進めましたね!)必要なファイルは主に以下の通りです:
.gitignore-
pyproject.toml(プロジェクト定義と依存関係) src/duckduckgo_mcp_server/__init__.py-
src/duckduckgo_mcp_server/server.py(サーバーのコアロジック) -
README.md(参考情報) - など...
2. 依存関係のインストール 📦
プロジェクトに必要なライブラリをインストールします。pyproject.toml に必要なものが定義されています。
-
Python の準備:
Python がインストールされていることを確認してください。python --version # または py --version -
pip を使ってインストール:
プロジェクトのルートディレクトリ(pyproject.tomlがある場所)で以下のコマンドを実行します。pip install .(もし
uvが使える環境ならuv pip install .でも OK です)たくさんのライブラリがインストールされるはずです。エラーが出なければ成功です🎉
プロキシ環境下などでエラーが出る場合は、プロキシ設定を追加する必要があるかもしれません。
pip install . --proxy="http://your-proxy-server:port"
3. MCP サーバーの起動 🚀
いよいよサーバーを起動します!開発中は mcp dev コマンドを使うのが便利です。
-
サーバー起動コマンド:
プロジェクトのルートディレクトリで実行します。mcp dev src/duckduckgo_mcp_server/server.pyこのコマンドはサーバーをフォアグラウンドで起動し、ログなどを表示します。
-
バックグラウンドでの起動 (オプション):
もしターミナルを他の作業で使いたい場合は、&をつける(Linux/macOS)か、Windows Terminal の機能などでバックグラウンド実行します。Cursor の機能で実行した際は、is_background=Trueオプションを使いましたね! -
起動確認 (任意):
別のターミナルを開いてmcp listコマンドを実行すると、起動中の MCP サーバー (ddg-search) がリストに表示されるはずです。
4. Cursor への設定 ⚙️
起動した MCP サーバーを Cursor に認識させます。
-
Cursor の設定を開く:
Cursor の設定画面 (Ctrl+,またはCmd+,) を開き、「MCP」セクションに移動します。 -
グローバル MCP サーバーの追加:
「+ Add new global MCP server」ボタン(または類似のボタン)があるはずです。これをクリックすると、設定ファイルmcp.jsonが開くか、設定用の UI が表示されます。 -
mcp.jsonを直接編集する場合:
C:\Users\<あなたのユーザー名>\.cursor\mcp.json(Windowsの場合) または~/.cursor/mcp.json(macOS/Linuxの場合) を開き、以下のように編集します。既にmcpServersがある場合は、その中にddg-searchの設定を追加します。C:\Users\jacka.cursor\mcp.json{ "mcpServers": { "ddg-search": { "command": "python", "args": ["-m", "duckduckgo_mcp_server.server"], "cwd": "C:/Users/duckduckgo-mcp-server-main" } // 他のサーバー設定があればここに追加 } }-
command: サーバー起動に使うコマンド (python)。 -
args: コマンドに渡す引数。 -
cwd: 重要! プロジェクトのルートディレクトリの フルパス を指定します。Windows でもパス区切り文字は/を使うのが安全です。あなたの環境に合わせてパスを修正してください。
-
-
UI で設定する場合:
UI の指示に従い、サーバー名 (ddg-search)、コマンド (python)、引数 (-m,duckduckgo_mcp_server.serverを個別に入力)、作業ディレクトリ
(C:/Users/duckduckgo-mcp-server-main) を設定します。 -
Cursor の再起動 (推奨):
設定を確実に反映させるために、Cursor を再起動するのが良いでしょう。
5. 使ってみよう! 🔎
設定がうまくいけば、Cursor のチャットで @ を入力すると、候補に @ddg-search が表示されるはずです!
-
検索してみる:
と入力して送信すると、サーバーが DuckDuckGo で検索を実行し、結果を返してくれます。
@ddg-search 今日の東京の天気
-
コンテンツを取得してみる:
のように
@ddg-search fetch_content url="https://qiita.com/"fetch_contentツールを使って、指定した URL の内容を取得することもできます。
サーバーの機能紹介 🔧
今回構築した ddg-search サーバーには、主に2つのツールが実装されています。
-
search(query: str, max_results: int = 10)- DuckDuckGo で指定された
queryを検索します。 -
max_resultsで取得する結果の最大数を指定できます(デフォルトは10件)。 - 検索結果のタイトル、URL、スニペット(要約)を整形して返します。
- DuckDuckGo で指定された
-
fetch_content(url: str)- 指定された
urlのウェブページを取得し、本文と思われるテキストを抽出・整形して返します。 - 広告やナビゲーションなどの不要な部分はできるだけ除去されます。
- 指定された
レート制限について: ⚠️
このサーバーには、DuckDuckGo への短時間でのアクセス集中を防ぐための簡単なレート制限(検索: 30回/分、コンテンツ取得: 20回/分)が組み込まれています。連続で使いすぎると、少し待機する場合があります。
さいごに
これで、あなただけの DuckDuckGo 検索ツールが Cursor に追加されました!🎉
MCP を活用すれば、今回のように外部 API と連携したり、特定の処理を行うカスタムツールをどんどん追加していくことができます。
ぜひ、色々な MCP サーバーを探したり、自分で作ったりして、Cursor をさらに便利にしてみてくださいね!
この記事が、あなたの Cursor ライフの一助となれば幸いです 😊。
