はじめに
AIエージェントに検索機能を追加する場合、Brave Search
が有名です。
しかし、これにはAPIキーが必要であるため、環境によってはキー保存にちょっと気が引けるかもしれません。
DuckDuckGoのMCPサーバーは、APIキー無しでAIエージェントに検索機能を提供するために使えます。
ただ、https://github.com/nickclyde/duckduckgo-mcp-server
のREADMEにある導入方法ではnpx
やuv
を使用しますが、セキュリティや権限の都合などでこれらのコマンドが使用できないこともあると思います。
そこで、同リポジトリにあるDockerfileを利用することで、これを利用してMCPサーバーの立ち上げと、クライント側の設定でサーバーとして利用ができるようになります。
この記事では、クライアントとしてはVisual Studio CodeのAgentモードやRoo Code(Cline)などでの利用方法について解説します。
MCPサーバーとは
MCP(Machine Cognition Protocol)サーバーは、AIエージェントが外部サービスと連携するための標準プロトコルを提供します。DuckDuckGoのMCPサーバーを使用することで、AIエージェントはインターネット検索を行い、最新の情報を取得できるようになります。
なぜDockerを使うのか
標準のインストール方法では、npx
やuv
といったツールが必要です
# Smitheryを使用した方法
npx -y @smithery/cli install @nickclyde/duckduckgo-mcp-server --client claude
# uvを使用した方法
uv pip install duckduckgo-mcp-server
しかし、以下のような環境では、これらのツールが使用できない場合があります
- 企業の制限されたネットワーク環境
- npm/Pythonのインストールが許可されていないシステム
- 外部パッケージマネージャーの使用が制限されている環境
- クロスプラットフォームで統一した環境を用意したい場合
このような場合、Dockerを使用することで、これらの制約を回避しつつ、MCPサーバーを簡単に立ち上げることができます。
Dockerでの構築手順
1. リポジトリのクローン
まず、GitHubからリポジトリをクローンします。
git clone https://github.com/nickclyde/duckduckgo-mcp-server.git
cd duckduckgo-mcp-server
2. Dockerイメージのビルド
リポジトリのディレクトリ内で、次のコマンドを実行してDockerイメージをビルドします。
docker build -t mcp/duckduckgo-mcp-server -f Dockerfile .
これにより、mcp/duckduckgo-mcp-server
という名前のDockerイメージが作成されます。
3. Visual Studio Codeでの設定
VSCodeのAgentモードでMCPサーバーを使用するには、.vscode/mcp.json
ファイルを作成または編集し、次の内容を追加します。
// .vscode/mcp.json
{
"servers": {
"ddg-search": {
"command": "docker",
"args": [
"run",
"-i",
"mcp/duckduckgo-mcp-server"
]
}
}
}
4. Roo Codeでの設定
Roo Codeでエージェントにmcpサーバーを使用させるには、mcp_settings.json
ファイルに次の設定を追加します。
// mcp_settings.json
{
"mcpServers": {
"ddg-search": {
"command": "docker",
"args": [
"run",
"-i",
"mcp/duckduckgo-mcp-server"
]
}
}
}
5. Claude Desktopでの設定
!Claude Desktopでも同様にjsonファイルを設定すれば使えると思いますが、動作未確認です。
恐らく下記のようにするとできると思います。
{
"mcpServers": {
"ddg-search": {
"command": "docker",
"args": [
"run",
"-i",
"mcp/duckduckgo-mcp-server"
]
}
}
}
動作確認
設定が完了したら、Visual Studio CodeのAgentモード、Roo Codeでエージェントに検索を含むタスクを依頼してみましょう。
プロンプトは下記などにするとMCP検索を利用してくれるはずです。
インターネット検索し、MCPについての情報を収集してください。
注意点と制限事項
-
Dockerがインストールされている必要があります
-
レート制限があるため、短時間に多数のリクエストを送信しないようにしてください
- 検索: 1分間に30リクエストまで
- コンテンツ取得: 1分間に20リクエストまで
まとめ
Dockerを使用することで、npx
やuv
が使用できない環境でも、DuckDuckGoのMCPサーバーを簡単に導入できます。
これにより、Dockerしか利用できない環境でmAIエージェントに検索機能を提供することが可能になります。