SearXNG MCP服务器使用说明
项目简介
SearXNG MCP服务器是一个基于Model Context Protocol (MCP) 构建的应用后端,它将 SearXNG 隐私搜索引擎封装成一个工具,使AI助手等LLM客户端能够通过MCP协议调用SearXNG进行网页搜索,从而扩展LLM的功能,使其具备联网搜索能力。
主要功能点
- 网页搜索: 提供通过SearXNG搜索引擎进行网页搜索的功能。
- 隐私保护: 利用SearXNG的隐私保护特性,提供注重隐私的搜索结果。
- 参数定制: 支持自定义搜索参数,如查询关键词、语言、时间范围、类别、搜索引擎、安全搜索级别和结果数量等。
- Markdown格式输出: 搜索结果以Markdown格式返回,方便LLM客户端处理和展示。
- 易于集成: 提供了与Claude Desktop和VSCode等MCP客户端集成的配置示例。
安装步骤
- 环境准备:
- 确保已安装 Node.js (v16 或更高版本) 和 npm (v7 或更高版本)。
- 确保可以访问 SearXNG 实例 (可以是自托管或公共实例)。
- 安装 (选择一种方式):
- 全局安装 (推荐):
npm install -g searxngmcp - 从源代码安装:
git clone https://github.com/tisDDM/searxng-mcp.git cd searxng-mcp npm install npm run build
- 全局安装 (推荐):
服务器配置 (用于MCP客户端)
要将 SearXNG MCP 服务器添加到 MCP 客户端 (如 Claude Desktop 或 VSCode),您需要配置 MCP 服务器的启动命令和环境变量。以下是配置示例,您需要根据您的实际安装情况进行调整。
Claude Desktop 配置示例:
在 Claude Desktop 的 MCP Servers 设置中,添加一个新的 MCP 服务器,配置如下:
{ "mcpServers": { "searxngmcp": { "command": "searxngmcp", // 启动命令 (如果全局安装) "env": { "SEARXNG_URL": "https://searx.example.com", // 您的 SearXNG 实例 URL (必填) "SEARXNG_USERNAME": "your_username", // SearXNG 基本身份验证用户名 (可选) "SEARXNG_PASSWORD": "your_password" // SearXNG 基本身份验证密码 (可选) }, "disabled": false, "autoApprove": [] } } }
VSCode (Claude 扩展) 配置示例:
在 VSCode 的 Claude 扩展 MCP Settings 中,添加一个新的 MCP 服务器,配置如下:
{ "mcpServers": { "searxngmcp": { "command": "node", // 启动命令 (如果从源代码安装) "args": ["/path/to/searxng-mcp/build/index.js"], // 指向 build 后的 index.js 文件的路径 (如果从源代码安装,请替换为实际路径) "env": { "SEARXNG_URL": "https://searx.example.com", // 您的 SearXNG 实例 URL (必填) "SEARXNG_USERNAME": "your_username", // SearXNG 基本身份验证用户名 (可选) "SEARXNG_PASSWORD": "your_password" // SearXNG 基本身份验证密码 (可选) }, "disabled": false, "autoApprove": [] } } }
环境变量说明:
- 'SEARXNG_URL': 必填。您的 SearXNG 实例的 URL 地址,例如 'https://searx.example.com' 或 'http://localhost:8080'。
- 'SEARXNG_USERNAME': 可选。如果您的 SearXNG 实例需要基本身份验证,请提供用户名。
- 'SEARXNG_PASSWORD': 可选。如果您的 SearXNG 实例需要基本身份验证,请提供密码。
基本使用方法
配置完成后,在支持 MCP 协议的 LLM 客户端中,您可以使用 'searxngsearch' 工具进行网页搜索。例如,在客户端中调用工具时,可以指定如下参数:
// JavaScript 示例 (假设您正在使用 MCP 客户端 SDK) const result = await client.callTool('searxngsearch', { query: '最新的AI技术发展', language: 'zh', time_range: 'month', max_results: 5 }); console.log(result.content[0].text); // 打印搜索结果 (Markdown 格式)
这将调用 'searxngsearch' 工具,使用 SearXNG 搜索 "最新的AI技术发展" 相关信息,语言设置为中文,时间范围为最近一个月,并返回最多 5 条结果。搜索结果将以 Markdown 格式包含在 'result.content[0].text' 中。
您可以根据 'searxngsearch' 工具的参数定义,灵活调整搜索条件。
信息
分类
网页与API