0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

🔥Cursorにweb検索機能実装しよう🔥DuckDuckGo検索MCPサーバーを作ろう🔥

0
Last updated at Posted at 2025-04-08

はじめに

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

MCPサーバーとは? 🔌

Model Context Protocol (MCP) は、AI モデル(Cursor のエージェントなど)が外部のツールやサービスと連携するための仕組みです。MCP サーバーを立てることで、Cursor のチャットから @あなたのサーバー名 のように呼び出して、特定の機能(今回の場合は DuckDuckGo 検索)を実行できるようになります。

これを使えば、Cursor をもっとパワフルにカスタマイズできますね!💪

今日は PythonFastMCP ライブラリを使って、DuckDuckGo 検索サーバーを作ります🦆

🚀 アジェンダ

  1. プロジェクトの準備
  2. 依存関係のインストール
  3. MCP サーバーの起動
  4. Cursor への設定
  5. 使ってみよう!

🛠️ 手順

まずは 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 が表示されるはずです!

  • 検索してみる:
    @ddg-search 今日の東京の天気
    
    と入力して送信すると、サーバーが DuckDuckGo で検索を実行し、結果を返してくれます。

image.png

  • コンテンツを取得してみる:
    @ddg-search fetch_content url="https://qiita.com/"
    
    のように fetch_content ツールを使って、指定した URL の内容を取得することもできます。

サーバーの機能紹介 🔧

今回構築した ddg-search サーバーには、主に2つのツールが実装されています。

  1. search(query: str, max_results: int = 10)

    • DuckDuckGo で指定された query を検索します。
    • max_results で取得する結果の最大数を指定できます(デフォルトは10件)。
    • 検索結果のタイトル、URL、スニペット(要約)を整形して返します。
  2. fetch_content(url: str)

    • 指定された url のウェブページを取得し、本文と思われるテキストを抽出・整形して返します。
    • 広告やナビゲーションなどの不要な部分はできるだけ除去されます。

レート制限について: ⚠️
このサーバーには、DuckDuckGo への短時間でのアクセス集中を防ぐための簡単なレート制限(検索: 30回/分、コンテンツ取得: 20回/分)が組み込まれています。連続で使いすぎると、少し待機する場合があります。

さいごに

これで、あなただけの DuckDuckGo 検索ツールが Cursor に追加されました!🎉
MCP を活用すれば、今回のように外部 API と連携したり、特定の処理を行うカスタムツールをどんどん追加していくことができます。

ぜひ、色々な MCP サーバーを探したり、自分で作ったりして、Cursor をさらに便利にしてみてくださいね!

この記事が、あなたの Cursor ライフの一助となれば幸いです 😊。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?