MCP Node DuckDuckGo Server について
HTTPエンドポイント経由でDuckDuckGo検索とウェブページのテキスト取得を行う、開発者向けのNode.js製MCPサーバーです。基本的なレート制限とモジュール式のツール構成を備えています。
主な機能
- 01DuckDuckGo検索
- 02ウェブページテキストの取得と解析
- 03基本的なリクエスト制限
- 04モジュール式のツール構成
活用シーン
- 01整形済み検索結果の取得
- 02指定ページからのテキスト抽出
- 03検索リクエスト頻度の管理
MCP 対応
MCPクライアント向けにsearchとfetchContentのツールを公開し、HTTPエンドポイントから一覧表示と実行ができます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Node DuckDuckGo サーバー
DuckDuckGo を検索し、書式設定された検索結果を取得する 2 つの主要なツールを提供する MCP サーバーとして動作する Node.js アプリケーションです。
- 検索:DuckDuckGo にクエリを送信し、書式設定された検索結果を取得します。
- コンテンツの取得:任意の Web ページの URL からテキストコンテンツを取得し、解析します。
目次
概要
MCP Node DuckDuckGo Server は、DuckDuckGo の検索と Web ページコンテンツの取得を行うためのモジュール式インターフェース(HTTP エンドポイント経由)を提供する Node.js サーバーです。このプロジェクトでは、次の内容を紹介します。
- サーバーの作成に Express を使用します。
- HTTP リクエストの送信に Axios を使用します。
- HTML の解析に Cheerio を使用します。
機能
- DuckDuckGo 検索:POST API を使用して検索クエリを実行し、後続の処理に適した形式で DuckDuckGo の検索結果を返します。
- Web コンテンツの取得:指定された URL からテキストコンテンツを取得し、解析します。
- レート制限:リクエスト頻度を管理するための基本的なレート制限を提供します。
- 拡張可能な MCP サーバー:ツールはモジュールとして整理されているため、機能を簡単に追加または変更できます。
要件
- Node.js(v12 以降)
- npm
インストール
-
リポジトリをクローンする
GitHub からリポジトリをクローンします。git clone <repository-url> -
プロジェクトフォルダーに移動する
cd mcp-node-duckduckgo-server -
依存関係をインストールする
npm を使用して必要なパッケージをインストールします。npm install express axios cheerio
使い方
サーバーの起動
次のコマンドを実行してサーバーを起動します。
node mcp-node-duckduckgo-server.js
次のようなログメッセージが表示されます。
MCP Server "ddg-search" running on port 3000
利用可能なエンドポイント
ツール一覧
利用可能なすべてのツールを一覧表示するには、新しいターミナルウィンドウを開き、次のコマンドを実行します。
curl http://localhost:3000/tools
登録済みのツール(例:「search」と「fetchContent」)の JSON リストが出力されます。
検索ツール
検索ツールを使って検索クエリを実行します。
curl -X POST http://localhost:3000/run-tool -H "Content-Type: application/json" -d "{\"toolName\":\"search\",\"params\":{\"query\":\"test query\",\"maxResults\":5}}"
レスポンスには、書式設定された DuckDuckGo の検索結果が含まれます。
コンテンツ取得ツール
特定の Web ページからコンテンツを取得します。
curl -X POST http://localhost:3000/run-tool -H "Content-Type: application/json" -d "{\"toolName\":\"fetchContent\",\"params\":{\"url\":\"https://www.channelnewsasia.com/singapore/ge2025-general-election-may-3-parliament-dissolved-5064316\"}}"
サーバーは、取得した Web ページからテキストの抜粋を返します。
ログとデバッグ
- サーバーは、情報メッセージとエラーメッセージをターミナルに記録します。
- タイムアウト、HTTP エラー、レスポンスの予期しない動作などの問題をデバッグする際に、これらのログを使用してください。
コントリビューション
コントリビューションを歓迎します。貢献する場合は、次の手順に従ってください。
- リポジトリをフォークします。
- 機能ブランチを作成します(
git checkout -b feature/YourFeature)。 - 変更をコミットします(
git commit -m 'Add some feature')。 - ブランチにプッシュします(
git push origin feature/YourFeature)。 - プルリクエストを作成します。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については、LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。