nickclyde/duckduckgo-mcp-server

A Model Context Protocol (MCP) server that provides web search capabilities through DuckDuckGo, with additional features for content fetching and parsing.

解決する課題

このプロジェクトは、大規模言語モデル(LLM)がDuckDuckGoを使用してウェブ検索を実行し、ウェブページのコンテンツを取得する方法を提供します。ウェブを検索し、結果のリンクからコンテンツを解析するための標準化されたインターフェースをLLMに提供することで、LLMの知識が古くなっている、またはリアルタイム情報へのアクセスが不足しているという問題を解決します。

仕組み

これは Model Context Protocol (MCP) サーバーとして実装されています。AIアシスタントのための3つの主要なツールを提供します:

  1. 検索:DuckDuckGoにクエリを送信し、タイトルとスニペットを含むフォーマットされた結果を返します。
  2. コンテンツ取得:特定のウェブページのテキストまたはmarkdownを取得します。冗長なダウンロードを避けるためのキャッシュが含まれており、複数の解析モード(テキスト、メインコンテンツ、またはmarkdown)をサポートしています。
  3. リンク展開:短い内部参照トークン(ref://)を完全なURLに変換し直します。検索結果に非常に長いURLが含まれている場合、サーバーはこれを使用してコンテキストウィンドウのスペースを節約します。

ボット検出とTLSフィンガープリンティングを回避するため、サーバーは curl バックエンド(curl_cffi 経由)を使用して実際のブラウザを模倣することができます。

対象者

これは、AIエージェントを構築したり、MCP互換クライアント(Claude DesktopやClaude Codeなど)を使用したりして、モデルにウェブを閲覧しウェブサイトから情報を抽出する機能を与えたいと考えている開発者向けです。

ハイライト

  • LLM最適化出力:結果はAIモデルが消費するために特別にフォーマットされています。
  • ボット検出回避curl を介したオプションのブラウザ模倣により、CloudflareやDuckDuckGoによるブロックを回避します。
  • コンテキスト保存:長いURLを短いトークンに置き換えて、LLMのコンテキストウィンドウを保存します。
  • 組み込みの安全性:AIがプライベートな内部ネットワークにアクセスするのを防ぐSSRF保護と、設定可能なSafeSearchレベルが含まれています。
  • レート制限:検索とコンテンツ取得の両方に対するレート制限に対する保護が統合されています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト