DuckDuckGo 搜索 MCP 服务器
项目简介
本项目是一个简单的 MCP 服务器,旨在为 LLM 应用提供通过 DuckDuckGo 搜索引擎进行网页搜索的功能。它基于 'fastmcp' 框架构建,并实现了单一的 'search' 工具,允许 LLM 客户端调用 DuckDuckGo 的搜索 API 获取网页搜索结果。服务器使用 SSE (Server-Sent Events) 协议与客户端进行通信。
主要功能点
- 网页搜索工具: 提供 'search' 工具,LLM 客户端可以调用该工具并传入搜索关键词,服务器将返回 DuckDuckGo 搜索结果。
- MCP 服务器: 遵循 Model Context Protocol 协议,可以作为 LLM 应用的上下文服务后端。
- SSE 传输: 使用 Server-Sent Events 协议进行数据传输,简化了客户端连接和数据接收过程。
安装步骤
- 安装依赖: 确保你的 Python 环境中安装了必要的库。可以使用 pip 安装:
pip install fastmcp duckduckgo-search - 克隆仓库 (可选): 如果你需要修改代码或更方便地运行,可以克隆 GitHub 仓库:
git clone https://github.com/lowlyocean/mcp-ddgs cd mcp-ddgs
服务器配置
MCP 客户端需要配置以下信息以连接到该服务器。以下是 JSON 格式的配置信息示例,server name 可以自定义,command 和 args 必须准确配置:
{ "server name": "ddgs-search", // 自定义服务器名称,用于客户端标识 "command": "python", // 启动服务器的命令,这里使用 python 解释器 "args": ["ddgs.py", "--transport", "sse"] // 启动脚本和参数,指定使用 SSE 传输协议 }
参数说明:
- 'server name': 服务器的名称,客户端可以根据这个名称来识别和管理连接。
- 'command': 运行服务器端程序的命令。由于 'ddgs.py' 是 Python 脚本,所以这里使用 'python' 命令。
- 'args': 传递给 'command' 的参数列表。
- 'ddgs.py': 指定要运行的服务器脚本文件。
- '--transport sse': 告知服务器使用 SSE (Server-Sent Events) 传输协议。
基本使用方法
-
启动服务器: 在安装好依赖并配置好 MCP 客户端后,可以通过 MCP 客户端配置中提供的命令启动服务器。例如,在终端中,进入 'ddgs.py' 所在目录,并执行命令 'python ddgs.py --transport sse'。服务器启动后会监听客户端请求。
-
客户端调用 'search' 工具: 在 LLM 客户端中,配置连接到该 MCP 服务器后,即可调用名为 'search' 的工具。调用时需要提供 'query' 参数,即要搜索的关键词。服务器将返回包含搜索结果的 JSON 响应。
示例 (MCP 客户端请求 - 假设客户端已连接到服务器):
{ "jsonrpc": "2.0", "method": "call", "params": { "tool_name": "search", "arguments": { "query": "最新的科技新闻" } }, "id": "123" }
服务器响应 (示例):
{ "jsonrpc": "2.0", "id": "123", "result": [ { "link": "https://example.com/tech-news-1", "title": "最新科技新闻头条", "snippet": "最新的科技行业动态..." }, { "link": "https://example.com/tech-news-2", "title": "科技新闻:人工智能最新进展", "snippet": "关于人工智能的最新发展和应用..." }, { "link": "https://example.com/tech-news-3", "title": "今日科技快讯", "snippet": "每日科技领域的简短新闻..." } ] }
请注意,实际的服务器响应会根据 DuckDuckGo 的搜索结果而变化。
信息
分类
网页与API