项目简介

DuckDuckGo搜索MCP服务器是一个基于Model Context Protocol (MCP) 标准构建的后端服务,旨在为LLM客户端提供网页搜索和URL内容提取功能。它利用DuckDuckGo搜索引擎,无需API密钥,即可快速、安全地获取网络信息,并以结构化的方式返回给LLM,帮助LLM更好地理解和处理用户请求。

主要功能点

  • 网页搜索:使用DuckDuckGo搜索引擎进行网页搜索,返回搜索结果,支持指定页码和结果数量。
  • URL内容提取:抓取指定URL的网页内容,并提取主要文本内容,支持过滤HTML标签、链接和图片等元素,可限制返回内容的最大长度。
  • URL元数据提取:获取指定URL的元数据信息,包括网页标题、描述、首图等。
  • 性能优化:内置缓存机制,提高搜索和提取速度。
  • 安全特性:具备速率限制和轮换用户代理等安全功能,防止被网站封禁。
  • MCP协议兼容:完全遵循MCP协议标准,可与任何兼容MCP协议的客户端配合使用。

安装步骤

  1. 使用 npx 快速启动 (无需安装)

    打开终端,复制粘贴以下命令并回车:

    npx -y @oevortex/ddg_search

    这是最快捷的启动方式,适合快速体验和集成到MCP客户端。

  2. 全局安装 (推荐)

    如果你希望更方便地使用 'ddg-search-mcp' 命令,可以进行全局安装:

    npm install -g @oevortex/ddg_search

    安装完成后,即可在终端中直接使用 'ddg-search-mcp' 命令启动服务器。

  3. 本地安装 (开发模式)

    如果你需要修改代码或进行开发,可以克隆仓库到本地进行安装:

    git clone https://github.com/OEvortex/ddg_search.git
    cd ddg_search
    npm install
    npm start

服务器配置

MCP服务器需要配置到兼容MCP协议的客户端中才能使用。以下是两种常用的配置方式,根据你的安装方式选择其一添加到你的MCP客户端配置文件的 'mcpServers' 字段中:

1. 使用 npx 启动 (无需安装) 的配置

{
  "mcpServers": {
    "ddg-search": {
      "command": "npx", // 启动命令,使用 npx
      "args": ["-y", "@oevortex/ddg_search"] // 启动参数,使用 -y 自动确认安装并执行 @oevortex/ddg_search
    }
  }
}

2. 全局安装的配置

{
  "mcpServers": {
    "ddg-search": {
      "command": "ddg-search-mcp" // 启动命令,直接使用全局安装的 ddg-search-mcp 命令
    }
  }
}

配置说明:

  • '"ddg-search"': MCP服务器的名称,可以自定义,用于在客户端中标识和调用。
  • '"command"': 启动服务器的命令。
    • 使用 'npx' 方式时,命令为 '"npx"'。
    • 全局安装方式时,命令为 '"ddg-search-mcp"'。
  • '"args"': 启动命令的参数,是一个字符串数组。
    • 使用 'npx' 方式时,参数为 '["-y", "@oevortex/ddg_search"]', '-y' 参数表示自动确认安装,'@oevortex/ddg_search' 是要执行的 npm 包名。
    • 全局安装方式时,无需参数,留空即可。

配置完成后,重启你的MCP客户端使配置生效。

基本使用方法

配置完成后,在MCP客户端中,你可以通过以下工具名称和参数来调用DuckDuckGo搜索MCP服务器的功能:

  • 网页搜索工具 (web-search)

    工具名称: 'web-search'

    参数:

    • 'query' (string, 必填): 搜索关键词
    • 'page' (integer, 可选, 默认: 1): 页码
    • 'numResults' (integer, 可选, 默认: 10): 返回结果数量 (1-20)

    示例: 搜索 "气候变化解决方案"

  • URL内容提取工具 (fetch-url)

    工具名称: 'fetch-url'

    参数:

    • 'url' (string, 必填): 要提取内容的URL
    • 'maxLength' (integer, 可选, 默认: 10000): 最大内容长度
    • 'extractMainContent' (boolean, 可选, 默认: true): 是否提取主要内容
    • 'includeLinks' (boolean, 可选, 默认: true): 是否包含链接文本
    • 'includeImages' (boolean, 可选, 默认: true): 是否包含图片alt文本
    • 'excludeTags' (array, 可选): 要排除的HTML标签

    示例: 提取 "https://example.com" 的内容

  • URL元数据工具 (url-metadata)

    工具名称: 'url-metadata'

    参数:

    • 'url' (string, 必填): 要提取元数据的URL

    示例: 获取 "https://example.com" 的元数据

具体如何在你的MCP客户端中使用这些工具,请参考你所使用的客户端的文档。通常,你需要在客户端中配置工具调用,并传入相应的工具名称和参数。

信息

分类

网页与API