项目简介
本项目是一个实现了 Model Context Protocol (MCP) 协议的服务器,旨在为大型语言模型 (LLM) 客户端提供Web搜索和网页内容提取的功能。通过部署此服务器,LLM应用可以方便地获取最新的网络信息,并从指定网页中提取文本内容,从而增强其上下文理解和信息处理能力。
主要功能点
- Web搜索工具 (Search_web): 允许LLM客户端通过关键词在互联网上进行搜索,并返回包含答案和来源的搜索结果。底层使用 Tavily API 进行搜索,并可配置使用 Searxng 作为备选方案。
- 网页内容提取工具 (Extract_webpage): 允许LLM客户端提供URL列表,服务器将提取这些网页的文本内容并返回。同样使用 Tavily API 进行网页内容提取。
- 标准MCP协议支持: 完全遵循 MCP 协议规范,能够与任何兼容 MCP 协议的客户端进行通信。
- SSE传输协议: 使用 Server-Sent Events (SSE) 作为默认的通信协议,实现轻量级和高效的实时数据传输。
- 易于部署: 提供 Docker Compose 部署方式,方便用户快速搭建和运行服务。
安装步骤
- 安装 Docker 和 Docker Compose: 确保您的系统已安装 Docker 和 Docker Compose。
- 下载仓库代码: 将 GitHub 仓库 mcp-web-search 克隆到本地。
- 配置环境变量:
- 复制仓库根目录下的 'docker-compose.yml' 文件。
- 创建 '.env' 文件在与 'docker-compose.yml' 同级的目录下,并根据需要设置以下环境变量:
- 'TAVILY_API_KEY': 必需。您的 Tavily API 密钥。您需要在 Tavily 官网 注册并获取 API 密钥。
- 'RESULT_NUMBER': 可选。Web 搜索返回的最大结果数,默认为 5。
- 'SEARXNG_FALLBACK': 可选。是否启用 Searxng 作为 Tavily API 的备选方案。设置为 'true' 或 'false'。默认为 'false'。
- 'SEARXNG_URL': 可选。如果启用 Searxng 备选方案,则需要设置 Searxng 实例的 URL。
- 'RELEVANCE_LIMIT': 可选。Searxng 搜索结果的相关性阈值,默认为 '0.1'。
- 'EXTRACT_DEPTH': 可选。网页内容提取的深度,可选值为 'basic' 或 'advanced',默认为 'advanced'。
- 启动服务: 在 'docker-compose.yml' 文件所在目录,执行命令 'docker-compose up -d' 启动服务。服务默认监听 '8960' 端口。
服务器配置 (MCP客户端)
对于需要连接此 MCP 服务器的客户端(例如 LibreChat),您需要配置服务器连接信息。以下是 LibreChat 客户端的配置示例(配置在 'librechat.yaml' 文件中):
{ "mcpServers": { "web-search": { "type": "sse", "url": "http://<您的服务器地址>:8960/sse" } } }
配置参数说明:
- 'server name': 'web-search' (可自定义,用于在客户端中标识此服务器)
- 'type': 'sse' (指定使用 SSE 协议连接)
- 'url': 'http://<您的服务器地址>:8960/sse' (替换 '<您的服务器地址>' 为实际部署 MCP 服务器的 IP 地址或域名)
基本使用方法
- 将 MCP 服务器添加到客户端: 根据客户端的文档,将上述服务器配置信息添加到客户端的 MCP 服务器列表中。
- 重启客户端: 重启客户端以连接到 MCP 服务器并发现可用的工具。
- 创建或配置 Agent: 在客户端中创建或选择一个 Agent,并将 'Search_web' 和 'Extract_webpage' 工具添加到该 Agent 的工具列表中。
- 使用 Agent: 在与 Agent 的对话中,您可以指示 Agent 使用 "Search_web" 工具进行网络搜索,或使用 "Extract_webpage" 工具提取网页内容。例如,您可以向 Agent 发送指令 "请搜索一下今天的天气" 或 "请提取以下网址的内容:[URL1], [URL2]"。
信息
分类
网页与API