返回 MCP 目录
verified_user已验证dns本地运行

duckduckgo-mcp-server

DuckDuckGo搜索MCP服务器,为Claude等LLM提供网页搜索和内容抓取服务

article

README

🚀 通过DuckDuckGo搜索的MCP服务器

一个提供DuckDuckGo网络搜索功能的模型上下文协议(MCP)服务器,具备内容抓取和解析的额外功能,可助力用户高效获取网络信息。

smithery badge

🚀 快速开始

本服务器是一个提供DuckDuckGo网络搜索功能的模型上下文协议(MCP)服务器,具有内容抓取和解析的额外功能。

✨ 主要特性

  • 网络搜索:使用DuckDuckGo进行高级速率限制和结果格式化
  • 内容抓取:获取并解析网页内容,实现智能文本提取
  • 速率限制:内置搜索和内容抓取的速率保护机制
  • 错误处理:全面的错误捕获和日志记录
  • 大语言模型友好的输出:经过格式化的结果,专为大型语言模型设计

📦 安装指南

通过Smithery安装

要自动通过Smithery安装DuckDuckGo搜索服务器:

npx -y @smithery/cli install @nickclyde/duckduckgo-mcp-server --client claude

通过uv安装

直接从PyPI使用uv安装:

uv pip install duckduckgo-mcp-server

💻 使用示例

在Claude Desktop上运行

  1. 下载Claude Desktop
  2. 创建或编辑Claude Desktop配置:
    • 在macOS上:~/Library/Application Support/Claude/claude_desktop_config.json
    • 在Windows上:%APPDATA%\Claude\claude_desktop_config.json

添加以下配置:

{
    "mcpServers": {
        "ddg-search": {
            "command": "uvx",
            "args": ["duckduckgo-mcp-server"]
        }
    }
}
  1. 重启Claude Desktop

开发

对于本地开发,可以使用MCP CLI:

# 使用MCP Inspector运行
mcp dev server.py

# 为测试安装到Claude Desktop
mcp install server.py

可用工具

搜索工具

async def search(query: str, max_results: int = 10) -> str

在DuckDuckGo上执行网络搜索并返回格式化结果。

参数:

  • query:搜索查询字符串
  • max_results:要返回的最大结果数(默认值为10)

返回: 包含标题、URL和摘录的格式化字符串。

内容抓取工具

async def fetch_content(url: str) -> str

从网页抓取并解析内容。

参数:

  • url:要抓取内容的网页地址

返回: 清理后的格式化文本内容。

📚 详细文档

功能细节

速率限制

  • 搜索:每分钟最多30次请求
  • 内容抓取:每分钟最多20次请求
  • 自动队列管理和等待时间

结果处理

  • 移除广告和无关内容
  • 清理DuckDuckGo重定向URL
  • 格式化结果以优化大语言模型的使用体验
  • 适当截断长内容

错误处理

  • 全面错误捕获和报告
  • 详细日志记录通过MCP上下文
  • 在速率限制或超时情况下实现优雅降级

🔧 技术细节

贡献

欢迎提出问题和拉取请求!一些改进方向包括:

  • 文档:改进现有文档,添加更多解释和教程。
  • 代码质量:审查和优化代码库,提升代码质量。
  • 功能扩展:探索新功能并将其合并到项目中。

访问GitHub仓库查看贡献指南和其他详细信息。

📄 许可证

本项目的许可信息可以在LICENSE文件中找到。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端