项目简介
本项目是一个实现了Model Context Protocol (MCP) 协议的服务器,专注于提供网络搜索功能。它利用DuckDuckGo搜索引擎,允许LLM客户端通过调用预设的工具来执行网络搜索,并能选择抓取搜索结果页面的内容,为LLM提供更丰富的上下文信息。
主要功能点
- 网络搜索: 使用DuckDuckGo搜索引擎进行关键词搜索。
- 结果提取: 从搜索结果中提取标题、URL和摘要信息。
- 内容抓取 (可选): 抓取搜索结果URL指向的网页内容,并转换为Markdown格式。
- 并行处理: 支持并行抓取多个URL,提高处理速度。
- 错误处理: 能够优雅地处理搜索和抓取过程中的超时及其他错误。
- 结果数量可配置: 允许用户设置返回的最大搜索结果数量。
- MCP 兼容: 完全兼容MCP协议,可以与任何MCP客户端配合使用。
安装步骤
- 安装 'uvx' 包管理器 (如果尚未安装): 请根据您的操作系统和Python环境安装 'uvx' 包管理器。 通常可以使用 'pip install uvx' 命令安装。
服务器配置
要将此MCP服务器与MCP客户端(例如 Claude)配合使用,您需要在客户端的配置文件中添加服务器配置信息。 以下是配置示例,您需要根据实际情况进行调整。
配置示例 (claude_desktop_config.json):
{ "mcpServers": { "web-search-duckduckgo": { "command": "uvx", // 启动服务器的命令,这里使用 uvx 包管理器 "args": [ "--from", // 指定从 Git 仓库安装 "git+https://github.com/kouui/web-search-duckduckgo.git@main", // 仓库地址和分支 "main.py" // 要执行的服务器主程序文件 ] } } }
注意: 如果上述配置无法直接工作,您可能需要先将仓库克隆到本地计算机,然后使用以下配置,并将 '/path/to/web-search-duckduckgo' 替换为您本地仓库的实际路径。
{ "mcpServers": { "web-search-duckduckgo": { "command": "uv", // 启动服务器的命令,这里使用 uv 包管理器 "args": [ "--directory", // 指定工作目录为本地仓库路径 "/path/to/web-search-duckduckgo", // 替换为您的本地仓库路径 "run", // uv 命令的子命令,表示运行 "main.py" // 要执行的服务器主程序文件 ] } } }
基本使用方法
配置完成后,在您的MCP客户端中,您可以使用以下工具来与此服务器交互:
-
'search_and_fetch': 执行网络搜索并抓取结果页面内容。
- 参数:
- 'query': 搜索关键词 (字符串)
- 'limit': 返回的最大结果数量 (整数,可选,默认为3,最大为10)
- 参数:
-
'fetch': 抓取指定URL的网页内容。
- 参数:
- 'url': 要抓取的网页URL (字符串)
- 参数:
在LLM应用中,您可以指示LLM客户端调用这些工具,例如:
- "请使用 'web-search-duckduckgo:search_and_fetch' 工具搜索 '最新的AI技术发展' 并返回最多5个结果。"
- "请使用 'web-search-duckduckgo:fetch' 工具抓取并总结 'https://example.com/ai-report' 这篇文章。"
服务器会将搜索结果或抓取的内容以JSON-RPC响应的形式返回给客户端,LLM应用可以利用这些信息进行后续处理。
信息
分类
网页与API