使用说明
DuckDuckGo搜索MCP服务器
一种模型上下文协议(MCP)服务器,通过DuckDuckGo提供网络搜索功能,并具有用于内容获取和解析的附加功能。
特性
- 网络搜索:使用高级速率限制和结果格式搜索DuckDuckGo
- 内容获取:通过智能文本提取检索和解析网页内容
- 速率限制:内置对搜索和内容获取速率限制的保护
- 错误处理:全面的错误处理和记录
- LLM友好输出:专门为大型语言模型使用而格式化的结果
安装
通过Smithery安装
通过以下方式自动安装适用于Claude Desktop的DuckDuckGo搜索服务器 史密瑟里:
npx -y @smithery/cli install @nickclyde/duckduckgo-mcp-server --client claude
通过安装 uv
使用以下命令直接从PyPI安装 uv:
uv pip install duckduckgo-mcp-server
用法
使用Claude Desktop运行
- 下载 克劳德桌面
- 创建或编辑您的Claude Desktop配置:
- 在macOS上:
~/Library/Application Support/Claude/claude_desktop_config.json - 在Windows上:
%APPDATA%\Claude\claude_desktop_config.json
- 在macOS上:
添加以下配置:
{
"mcpServers": {
"ddg-search": {
"command": "uvx",
"args": ["duckduckgo-mcp-server"]
}
}
}
- 重新启动克劳德桌面
发展
对于本地开发,您可以使用MCP CLI:
# Run with the MCP Inspector
mcp dev server.py
# Install locally for testing with Claude Desktop
mcp install server.py
可用工具
1.搜索工具
async def search(query: str, max_results: int = 10) -> str
在DuckDuckGo上执行网络搜索并返回格式化结果。
参数:
query:搜索查询字符串max_results:要返回的最大结果数(默认值:10)
退货: 包含带有标题、URL和片段的搜索结果的格式化字符串。
2.内容获取工具
async def fetch_content(url: str) -> str
从网页中获取和解析内容。
参数:
url:从中获取内容的网页URL
退货: 已清理并格式化网页中的文本内容。
详细功能
速率限制
- 搜索:每分钟限制30个请求
- 内容获取:每分钟限制20个请求
- 自动队列管理和等待时间
结果处理
- 删除广告和无关内容
- 清理DuckDuckGo重定向URL
- 格式化结果以实现最佳LLM消耗
- 适当截断长内容
错误处理
- 全面的错误捕获和报告
- 通过MCP上下文进行详细日志记录
- 在速率限制或超时方面表现良好
贡献
欢迎问题和拉取请求!一些有待改进的领域:
- 其他搜索参数(地区、语言等)
- 增强的内容解析选项
- 用于频繁访问内容的缓存层
- 额外的限速策略
许可证
该项目根据MIT许可证获得许可。
