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://)转换回完整 URL,当搜索结果包含非常长的 URL 时,服务器使用此功能来节省上下文窗口空间。

为了绕过机器人检测和 TLS 指纹识别,服务器可以使用 curl 后端(通过 curl_cffi)来模拟真实浏览器。

适用人群

适用于正在构建 AI 代理或使用兼容 MCP 的客户端(如 Claude Desktop 或 Claude Code),并希望赋予其模型浏览网络和从网站提取信息能力的开发者。

亮点

  • LLM 优化输出:结果专门针对 AI 模型的消耗进行了格式化。
  • 绕过机器人检测:通过 curl 进行可选的浏览器模拟,以避免被 Cloudflare 或 DuckDuckGo 阻止。
  • 节省上下文:用短令牌替换长 URL,以保留 LLM 的上下文窗口。
  • 内置安全性:包含 SSRF 保护以防止 AI 访问私有内部网络,以及可配置的 SafeSearch 级别。
  • 速率限制:针对搜索和获取内容集成了防止速率限制的保护机制。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目