DuckDuckGo Search MCP Server 使用说明
项目简介
DuckDuckGo Search MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 提供便捷的网页搜索能力。它作为一个 MCP 工具,允许 LLM 通过标准化的 MCP 协议调用 DuckDuckGo 搜索引擎,获取实时的网络信息,从而增强 LLM 在知识检索和信息整合方面的能力。
主要功能点
- 强大的网页搜索: 利用 DuckDuckGo 搜索引擎提供全面的网页搜索服务。
- 丰富的搜索结果类型: 支持知识图谱、自然搜索结果、新闻、视频、图片和相关搜索等多种结果类型。
- 地域和安全搜索: 支持特定区域的搜索以及安全搜索级别设置(关闭、中等、严格)。
- 日期过滤: 可以按日期范围(如过去一天、一周、一月、一年或自定义日期范围)过滤搜索结果。
- 分页支持: 支持分页浏览搜索结果。
- 内置缓存: 具备结果缓存机制,提高响应速度,并可通过参数绕过缓存获取最新结果。
安装步骤
- 克隆仓库:
git clone https://github.com/spences10/mcp-duckduckgo-search.git cd mcp-duckduckgo-search - 安装依赖:
确保您已安装 pnpm。如果没有安装,请先安装 Node.js 和 npm,然后运行 'npm install -g pnpm' 安装 pnpm。之后,在项目目录下运行:
pnpm install - 构建项目:
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