项目简介

ddg-server 是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于提供网页搜索功能。它通过集成的 'ddg_web_search' 工具,允许 LLM 客户端(如 Claude)调用 DuckDuckGo 搜索引擎进行信息检索,并将搜索结果作为上下文信息返回给 LLM,从而增强 LLM 的知识获取和信息整合能力。

主要功能点

  • 网页搜索工具 (ddg_web_search): 提供通过 DuckDuckGo 进行网页搜索的功能。
    • 支持指定搜索关键词 (query)。
    • 支持自定义返回结果数量 (count),默认为 10 条。
    • 返回格式化的搜索结果,包含标题 (title)、描述 (description) 和 URL 链接 (URL)。

安装步骤

  1. 安装依赖: 打开终端,进入仓库根目录 'ddg-server',运行以下命令安装项目依赖:

    npm install
  2. 构建服务器: 继续在终端中运行以下命令构建服务器:

    npm run build

    构建成功后,会在项目根目录下生成 'build' 目录,其中包含编译后的服务器代码 'index.js'。

服务器配置

要将 ddg-server 集成到 MCP 客户端(例如 Claude Desktop),您需要配置客户端的 MCP 服务器列表。以下是针对 Claude Desktop 的配置示例,您需要将此配置添加到 Claude Desktop 的配置文件中。

Claude Desktop 配置文件路径:

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

配置信息 (claude_desktop_config.json):

{
  "mcpServers": {
    "ddg-server": {
      "command": "/path/to/ddg-server/build/index.js"
      // 请将 "/path/to/ddg-server/build/index.js" 替换为 ddg-server 项目 build 目录下 index.js 文件的实际绝对路径。
      // 例如,如果您的 ddg-server 项目位于 '/Users/yourusername/ddg-server',则 command 应配置为 "/Users/yourusername/ddg-server/build/index.js"。
    }
  }
}

配置说明:

  • '"ddg-server"': MCP 服务器的名称,您可以自定义,用于在客户端中标识该服务器。
  • '"command"': 重要:指向 ddg-server 服务器启动脚本的绝对路径。您需要根据 'index.js' 文件在您本地文件系统中的实际位置进行修改。

注意: MCP 客户端通常通过标准输入/输出 (stdio) 与 MCP 服务器通信,因此无需指定额外的参数 (args)。'command' 配置是客户端连接服务器的唯一必要信息。

基本使用方法

  1. 启动服务器: ddg-server 在配置到 MCP 客户端后,通常由客户端自动启动。您无需手动运行服务器。

  2. 调用 'ddg_web_search' 工具: 在支持 MCP 协议的 LLM 应用中,您可以使用 'ddg_web_search' 工具进行网页搜索。

    • 工具名称: 'ddg_web_search'
    • 输入参数:
      • 'query' (string, 必填): 搜索关键词。
      • 'count' (number, 可选): 返回结果的数量,默认为 10。

    例如,在与配置了 ddg-server 的 Claude 对话时,您可以指示 Claude 使用 'ddg_web_search' 工具来搜索 "最新的科技新闻",Claude 将会调用 ddg-server 进行搜索,并将结果用于生成更相关的回复。具体的工具调用方式取决于 LLM 客户端的实现。

信息

分类

网页与API