项目简介
DuckDuckGo搜索MCP服务器是一个基于Model Context Protocol (MCP) 标准构建的后端服务,旨在为LLM客户端提供网页搜索和URL内容提取功能。它利用DuckDuckGo搜索引擎,无需API密钥,即可快速、安全地获取网络信息,并以结构化的方式返回给LLM,帮助LLM更好地理解和处理用户请求。
主要功能点
- 网页搜索:使用DuckDuckGo搜索引擎进行网页搜索,返回搜索结果,支持指定页码和结果数量。
- URL内容提取:抓取指定URL的网页内容,并提取主要文本内容,支持过滤HTML标签、链接和图片等元素,可限制返回内容的最大长度。
- URL元数据提取:获取指定URL的元数据信息,包括网页标题、描述、首图等。
- 性能优化:内置缓存机制,提高搜索和提取速度。
- 安全特性:具备速率限制和轮换用户代理等安全功能,防止被网站封禁。
- MCP协议兼容:完全遵循MCP协议标准,可与任何兼容MCP协议的客户端配合使用。
安装步骤
-
使用 npx 快速启动 (无需安装)
打开终端,复制粘贴以下命令并回车:
npx -y @oevortex/ddg_search这是最快捷的启动方式,适合快速体验和集成到MCP客户端。
-
全局安装 (推荐)
如果你希望更方便地使用 'ddg-search-mcp' 命令,可以进行全局安装:
npm install -g @oevortex/ddg_search安装完成后,即可在终端中直接使用 'ddg-search-mcp' 命令启动服务器。
-
本地安装 (开发模式)
如果你需要修改代码或进行开发,可以克隆仓库到本地进行安装:
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