项目简介
这是一个基于 Model Context Protocol (MCP) 实现的服务器,它集成了一个 SearXNG 实例,旨在为兼容 MCP 的大型语言模型(LLM)客户端提供强大的、尊重隐私的网页搜索功能。它可以作为构建您自己的 MCP 服务器的一个实用范本。
主要功能点
- 为 AI 提供搜索能力: 允许连接的 LLM 客户端通过标准接口执行网页搜索。
- 集成 SearXNG: 利用 SearXNG 强大的聚合搜索功能,支持多种搜索引擎和自定义设置。
- 支持 MCP 协议: 遵循 MCP 规范,确保与各种 MCP 客户端的无缝对接。
- 多种传输方式: 支持 SSE (Server-Sent Events) 和 Stdio (标准输入/输出) 两种传输协议。
- 可配置: 通过环境变量配置 SearXNG 地址、监听端口和传输协议。
安装步骤
- 获取代码: 从 GitHub 仓库克隆项目到本地。
- 准备 SearXNG: 确保您有一个正在运行且可访问的 SearXNG 实例(本地或远程)。推荐使用 Docker 运行 SearXNG。
- 安装依赖: 如果不使用 Docker 运行 MCP 服务器,需要安装 Python 3.9+,然后安装项目所需的 Python 库(如使用 'uv pip install -r requirements.txt' 或 'pip install -r requirements.txt')。
- 配置环境变量: 创建一个 '.env' 文件,根据您的 SearXNG 地址、期望的监听 IP/端口和传输协议(sse 或 stdio)进行配置。
- 构建 Docker 镜像 (可选): 如果选择使用 Docker 运行 MCP 服务器,需要根据提供的 Dockerfile 构建镜像。
服务器配置(针对 MCP 客户端)
MCP 服务器是为 MCP 客户端(如某些 LLM 接口或应用)提供服务的。MCP 客户端需要知道如何连接或启动这个服务器。根据您选择的传输方式(SSE 或 Stdio),客户端的配置方式有所不同:
-
使用 SSE (Server-Sent Events) 传输时: MCP 服务器需要先独立启动运行(监听一个 HTTP 端口)。客户端需要配置服务器的连接信息,主要包括:
- 传输协议 ('transport'): 设置为 'sse'。
- 服务器 URL ('url' 或 'serverUrl'): 提供 MCP 服务器监听的完整 URL 地址(例如:'http://localhost:32769/sse')。
-
使用 Stdio (标准输入/输出) 传输时: 通常由 MCP 客户端在需要时启动 MCP 服务器进程。客户端需要配置启动服务器进程所需的信息,主要包括:
- 启动命令 ('command'): 执行服务器的命令(例如:'python' 或 'docker')。
- 命令参数 ('args'): 启动服务器所需的命令行参数(例如:'server.py' 脚本路径或运行 Docker 镜像的参数)。
- 环境变量 ('env'): 启动服务器进程所需的环境变量(例如:'TRANSPORT=stdio',以及您的 'SEARXNG_BASE_URL' 等配置)。
具体的客户端配置格式取决于您使用的 MCP 客户端软件,但核心信息是指定如何连接或启动这个 MCP 服务器,以及必要的运行参数(如 SearXNG 地址)。
基本使用方法
一旦 MCP 服务器成功启动并被 MCP 客户端连接,LLM 客户端即可通过调用服务器暴露的“工具”来执行操作。这个服务器主要提供一个名为 'search' 的工具。LLM 客户端可以调用这个 'search' 工具,并传递搜索查询字符串 ('q') 作为必需参数,还可以选择性地提供分类 ('categories')、引擎 ('engines')、语言 ('language') 等参数来定制搜索行为。服务器会通过配置好的 SearXNG 实例执行搜索,并将结果返回给客户端。
信息
分类
网页与API