使用说明

项目简介

DuckDuckGo Search Server 是一个实现了 Model Context Protocol (MCP) 的服务器,旨在为大型语言模型 (LLM) 提供通过 DuckDuckGo 进行网页搜索和抓取网页内容的功能。它允许LLM客户端(如 Claude Desktop)调用预设的工具,从而获取互联网上的实时信息,增强LLM的知识库和上下文理解能力。

主要功能点

  • 网页搜索 (Web Search): 通过 DuckDuckGo 搜索引擎执行关键词搜索,并返回结构化的搜索结果,方便LLM理解和使用。
  • 内容抓取 (Content Fetching): 根据提供的URL抓取网页内容,提取关键文本信息,去除HTML标签和无关元素,为LLM提供干净、可用的网页文本。
  • 速率限制 (Rate Limiting): 内置速率限制机制,防止因频繁请求触发DuckDuckGo的服务限制,保证服务的稳定性和可靠性。
  • 错误处理 (Error Handling): 提供全面的错误处理和日志记录,方便开发者监控和调试。
  • LLM友好输出 (LLM-Friendly Output): 搜索和抓取结果都经过优化,格式化为LLM易于理解和处理的文本格式。

安装步骤

方法一:通过 Smithery 安装 (适用于 Claude Desktop 自动安装)

  1. 确保已安装 Smithery CLI
  2. 运行以下命令,即可自动安装 DuckDuckGo Search Server 并配置 Claude Desktop 客户端:
    npx -y @smithery/cli install @nickclyde/duckduckgo-mcp-server --client claude

方法二:通过 'uv' 手动安装 (通用安装方法)

  1. 确保已安装 Python 环境,并安装了 'uv' 包管理器 (推荐使用 'uv',也可以使用 'pip')。
  2. 运行以下命令,安装 'duckduckgo-mcp-server' Python 包:
    uv pip install duckduckgo-mcp-server
    或者使用 'pip':
    pip install duckduckgo-mcp-server

服务器配置 (Claude Desktop 客户端)

如果使用 Claude Desktop 作为 MCP 客户端,需要编辑 Claude Desktop 的配置文件 'claude_desktop_config.json',添加以下服务器配置信息。

配置文件路径:

  • macOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
  • Windows: '%APPDATA%\Claude\claude_desktop_config.json'

配置内容 (JSON 格式):

{
    "mcpServers": {
        "ddg-search": { // 服务器名称,客户端配置中引用此名称
            "command": "uvx", // 运行命令,uvx 用于运行已安装的 Python 包的可执行文件
            "args": ["duckduckgo-mcp-server"] // 命令参数,这里指定运行 duckduckgo-mcp-server 包提供的服务器程序
        }
    }
}

配置说明:

  • '"ddg-search"': 为该 MCP 服务器自定义的名称,在 Claude Desktop 客户端配置中会使用这个名称来引用此服务器。
  • '"command": "uvx"': 指定运行服务器的命令。'uvx' 是 'uv' 包管理器提供的可以直接运行已安装 Python 包中可执行文件的命令。 如果您使用 'pip' 安装,可能需要将 'command' 设置为 Python 解释器的路径,例如 '"command": "/path/to/python"',并相应调整 'args'。但使用 'uvx' 通常更方便。
  • '"args": ["duckduckgo-mcp-server"]': 指定传递给 'uvx' 命令的参数。'duckduckgo-mcp-server' 是指要运行的 Python 包提供的可执行程序入口点。

配置完成后,重启 Claude Desktop 使配置生效。

基本使用方法

  1. 启动 MCP 服务器:按照上述安装步骤配置 Claude Desktop 后,当 Claude Desktop 启动时,会自动尝试连接并启动配置的 MCP 服务器。 如果您手动安装,并且不使用 Claude Desktop,则需要手动运行 'duckduckgo-mcp-server' 命令来启动服务器 (具体启动命令取决于您的安装方式,例如直接运行 'uvx duckduckgo-mcp-server' 或 'python -m duckduckgo_mcp_server.server')。
  2. 在支持 MCP 协议的 LLM 客户端 (如 Claude Desktop) 中,当需要进行网页搜索或抓取网页内容时,LLM 可以调用服务器提供的以下工具:
    • 'search(query: str, max_results: int = 10)': 执行 DuckDuckGo 搜索。'query' 参数为搜索关键词,'max_results' 参数指定返回的最大结果数(默认为10)。
    • 'fetch_content(url: str)': 抓取指定 URL 的网页内容。'url' 参数为要抓取的网页地址。

注意: 具体的工具调用方式取决于 LLM 客户端的实现。通常,在 LLM 的交互界面中,您可以使用自然语言指令触发工具调用,例如 “使用搜索工具搜索 ‘最新AI技术发展’”,或者 “使用内容抓取工具获取 ‘https://example.com’ 的内容”。 LLM 客户端会将这些指令转换为对 MCP 服务器工具的调用,并将结果返回给用户。

信息

分类

网页与API