详细介绍
DuckDuckGo MCP Server 是一个基于 DuckDuckGo 搜索引擎的模型上下文协议(MCP)服务器,旨在为大语言模型(如 Claude)提供高效的网页搜索和内容抓取功能。该工具不仅支持关键词搜索,还能从网页中提取结构化文本内容,并通过智能去噪和格式化处理,使输出更易于语言模型理解和使用。
核心功能
DuckDuckGo MCP Server 提供了多种核心功能,使其成为集成到 AI 应用中的强大工具:
- 网络搜索:通过 DuckDuckGo 搜索引擎执行关键词搜索,支持高级参数和结果格式化。
- 内容抓取:从指定网页中抓取并解析文本内容,自动去除广告和无关信息,返回结构化文本。
- 速率限制:内置速率限制机制,防止因频繁请求导致服务中断,确保稳定运行。
- 错误处理:全面的错误捕获和日志记录,支持优雅降级,提升服务可靠性。
- LLM 友好输出:优化后的输出格式,便于大语言模型(LLM)直接使用,提升交互效率。
安装方法
DuckDuckGo MCP Server 可通过多种方式安装,以下是两种主要方法:
通过 Smithery 安装
使用 npx 和 @smithery/cli 工具进行安装:
npx -y @smithery/cli install @nickclyde/duckduckgo-mcp-server --client claude通过 uv 安装
直接从 PyPI 使用 uv 安装:
uv pip install duckduckgo-mcp-server使用方法
安装完成后,可以通过配置文件将其集成到支持 MCP 协议的应用中,例如 Claude Desktop。
配置 Claude Desktop
编辑 claude_desktop_config.json 文件,添加以下配置:
{
"mcpServers": {
"ddg-search": {
"command": "uvx",
"args": ["duckduckgo-mcp-server"]
}
}
}启动服务
使用以下命令启动服务:
uvx duckduckgo-mcp-server使用示例
以下是两个典型使用场景的示例:
搜索科技新闻
执行以下命令,搜索关于科技领域的最新新闻:
search('科技新闻', max_results=5)返回结果包括5条最新的科技新闻标题和摘要。
抓取公司官网内容
抓取目标公司的官方网站内容并提取关键信息:
fetch_content('https://example.com/about-us')返回公司介绍页面的结构化文本内容。
技术细节
DuckDuckGo MCP Server 提供了多种技术细节,以确保服务的稳定性和高效性:
- 速率限制:搜索每分钟最多30次,内容抓取每分钟最多20次,自动管理请求队列。
- 结果处理:自动清理广告和无关内容,优化 DuckDuckGo 重定向 URL,截断长内容以提升性能。
- 错误处理:全面的错误捕获和日志记录,支持优雅降级,确保服务在异常情况下仍能运行。
适用场景
DuckDuckGo MCP Server 适用于以下场景:
- AI 助手开发:为语言模型提供实时网络信息,增强其回答能力。
- 数据分析:快速获取和解析网页内容,用于数据挖掘和分析。
- 自动化任务:集成到自动化流程中,实现高效的信息检索和处理。
DuckDuckGo MCP Server 是一个功能强大、易于集成的工具,能够显著提升大语言模型与网络信息的交互能力。