DuckDuckGo Search MCP Server 使用说明

项目简介

DuckDuckGo Search MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 提供便捷的网页搜索能力。它作为一个 MCP 工具,允许 LLM 通过标准化的 MCP 协议调用 DuckDuckGo 搜索引擎,获取实时的网络信息,从而增强 LLM 在知识检索和信息整合方面的能力。

主要功能点

  • 强大的网页搜索: 利用 DuckDuckGo 搜索引擎提供全面的网页搜索服务。
  • 丰富的搜索结果类型: 支持知识图谱、自然搜索结果、新闻、视频、图片和相关搜索等多种结果类型。
  • 地域和安全搜索: 支持特定区域的搜索以及安全搜索级别设置(关闭、中等、严格)。
  • 日期过滤: 可以按日期范围(如过去一天、一周、一月、一年或自定义日期范围)过滤搜索结果。
  • 分页支持: 支持分页浏览搜索结果。
  • 内置缓存: 具备结果缓存机制,提高响应速度,并可通过参数绕过缓存获取最新结果。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/spences10/mcp-duckduckgo-search.git
    cd mcp-duckduckgo-search
  2. 安装依赖: 确保您已安装 pnpm。如果没有安装,请先安装 Node.js 和 npm,然后运行 'npm install -g pnpm' 安装 pnpm。之后,在项目目录下运行:
    pnpm install
  3. 构建项目:
    pnpm build

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令才能连接到 DuckDuckGo Search MCP Server。以下是配置示例,您需要根据您的 MCP 客户端进行配置。请注意,您需要拥有 SerpAPI 的 API 密钥才能使用此服务器。 您可以在 SerpAPI 官网 注册并获取 API 密钥,并将其设置为环境变量 'SERPAPI_KEY'。

通用配置 (JSON 格式):

{
  "mcpServers": {
    "mcp-duckduckgo-search": {
      "command": "npx",
      "args": ["-y", "mcp-duckduckgo-search"],
      "env": {
        "SERPAPI_KEY": "您的 SerpAPI 密钥"  // 替换为您的 SerpAPI 密钥
      }
    }
  }
}

配置参数说明:

  • 'server name': 'mcp-duckduckgo-search' (服务器名称,客户端用于识别和调用)
  • 'command': 'npx' (用于执行 Node.js 包的命令)
  • 'args': '["-y", "mcp-duckduckgo-search"]' (启动服务器的参数,'-y' 参数可能用于跳过某些提示,'mcp-duckduckgo-search' 是要执行的包名)
  • 'env': 环境变量配置
    • 'SERPAPI_KEY': 必需。您的 SerpAPI 密钥,用于访问 DuckDuckGo 搜索 API。请务必替换 '"您的 SerpAPI 密钥"' 为您实际的 API 密钥。

注意: 不同的 MCP 客户端 (如 Cline, Claude Desktop) 可能有不同的配置方式,请根据您的客户端类型选择合适的配置示例,并确保 'command' 和 'args' 配置正确。

基本使用方法

一旦 DuckDuckGo Search MCP Server 成功配置并连接到您的 MCP 客户端,您就可以在 LLM 中使用 'ddg_search' 工具进行网页搜索。

工具名称: 'ddg_search'

工具参数:

| 参数名 | 类型 | 是否必需 | 描述 | 默认值 | |--------------|----------|----------|----------------------------------------------------------------------|---------| | 'query' | 字符串 | 是 | 搜索关键词 | 无 | | 'region' | 字符串 | 否 | 地区代码 (例如: 'us-en', 'uk-en'),指定搜索地区 | 'us-en' | | 'safe_search'| 字符串 | 否 | 安全搜索级别 ('off', 'moderate', 'strict') | 'moderate'| | 'date_filter'| 字符串 | 否 | 日期过滤,例如 ''d'' (过去一天), ''w'' (过去一周), ''m'' (过去一月), ''y'' (过去一年), 或自定义日期范围 ''2023-01-01..2023-12-31'' | 无 | | 'start' | 数字 | 否 | 结果分页偏移量,用于获取后续页面的结果 | 无 | | 'no_cache' | 布尔值 | 否 | 是否绕过缓存获取最新结果 ('true' 表示绕过缓存) | 'false' |

使用示例 (在 LLM 客户端中调用):

{
  "tool_calls": [
    {
      "id": "search-tool-1",
      "type": "function",
      "function": {
        "name": "ddg_search",
        "arguments": {
          "query": "最新的科技新闻",
          "region": "zh-cn",
          "date_filter": "d"
        }
      }
    }
  ]
}

上述示例将在中国地区搜索过去一天的 "最新的科技新闻" 相关信息。LLM 将会收到结构化的搜索结果,并可以根据结果内容进行后续处理。

请根据您的具体需求,调整工具参数以获得最佳的搜索效果。

信息

分类

网页与API