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 助理提供三個主要工具:

  1. 搜尋:查詢 DuckDuckGo 並回傳包含標題和摘要的格式化結果。
  2. 內容擷取:擷取特定網頁的文字或 markdown。它包含快取以避免重複下載,並支援多種解析模式(文字、主要內容或 markdown)。
  3. 連結擴展:將簡短的內部參考權杖(ref://)轉換回完整網址,當搜尋結果包含非常長的網址時,伺服器使用此功能來節省上下文視窗空間。

為了繞過機器人偵測和 TLS 指紋識別,伺服器可以使用 curl 後端(透過 curl_cffi)來模擬真實瀏覽器。

適用對象

適用於正在建構 AI 代理或使用相容 MCP 的客戶端(如 Claude Desktop 或 Claude Code),且希望賦予其模型瀏覽網路和從網站擷取資訊能力的開發者。

亮點

  • LLM 最佳化輸出:結果專為 AI 模型消耗而格式化。
  • 繞過機器人偵測:透過 curl 進行可選的瀏覽器模擬,以避免被 Cloudflare 或 DuckDuckGo 封鎖。
  • 節省上下文:用短權杖取代長網址,以保留 LLM 的上下文視窗。
  • 內建安全性:包含 SSRF 保護以防止 AI 存取私人內部網路,以及可設定的 SafeSearch 等級。
  • 速率限制:針對搜尋和擷取內容整合了防止速率限制的保護機制。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案