Duckduckgo Mcp Server

Duckduckgo Mcp Server

🚀 通过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文件中找到。

  • 0 关注
  • 0 收藏,9 浏览
  • system 提出于 2025-09-18 08:12

相似服务问题