项目简介

SearxNG 搜索 MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为大型语言模型(LLM)提供网络搜索能力。它利用 SearxNG 这一注重隐私保护的开源元搜索引擎作为后端,使得 LLM 客户端(如 Claude)能够安全、高效地进行网页搜索,并获取格式化的搜索结果。该服务器仅包含 LLM 集成所需的核心功能,从而最大限度地减少上下文窗口的占用。

主要功能点

  • 隐私保护的网络搜索: 通过 SearxNG 提供注重用户隐私的网页搜索服务,避免用户追踪。
  • 简化的 LLM 接口: 提供简单易用的 API 接口,方便 LLM 客户端集成。
  • 兼容 MCP 客户端: 与 Claude Desktop 及其他兼容 MCP 协议的客户端良好兼容。
  • 可配置的搜索参数: 允许配置 SearxNG 实例 URL、超时时间、默认结果数量、语言、结果格式等参数,以满足不同需求。
  • 优化的搜索结果: 返回清晰、格式化的搜索结果,针对 LLM 的使用场景进行优化。
  • 多种部署方式: 支持 pipx/uvx 快速运行、pip 安装、源码安装以及 Docker 部署等多种方式。
  • 支持 STDIO 和 SSE 传输协议: 默认使用 STDIO 协议,也支持 SSE 协议,以适应不同的客户端连接需求。

安装步骤

本 MCP 服务器可以通过多种方式安装和运行,推荐使用 'pipx' 或 'uvx',无需安装即可运行,或者使用 Docker 部署。

方式一:使用 pipx 或 uvx 运行 (推荐,无需安装)

  1. 确保已安装 Python 3.10 或更高版本。
  2. 安装 'pipx' 或 'uvx' (如果尚未安装):
    pip install pipx  # 或 pip install uvx
  3. 使用 'pipx run' 或 'uvx run' 命令直接运行服务器:
    pipx run searxng-simple-mcp  # 或 uvx run searxng-simple-mcp

方式二:使用 pip 安装

  1. 确保已安装 Python 3.10 或更高版本。
  2. 使用 'pip' 或 'uv' 安装 'searxng-simple-mcp' 包:
    pip install searxng-simple-mcp  # 或 uv pip install searxng-simple-mcp
  3. 安装完成后,使用以下命令运行服务器:
    python -m searxng_simple_mcp.server

方式三:使用 Docker 运行

  1. 确保已安装 Docker。
  2. 拉取预构建的 Docker 镜像:
    docker pull ghcr.io/sacode/searxng-simple-mcp:latest
  3. 运行 Docker 容器:
    docker run --rm -i ghcr.io/sacode/searxng-simple-mcp:latest

服务器配置 (MCP 客户端配置)

要将此 MCP 服务器与 MCP 客户端(例如 Claude)集成,您需要在客户端的配置文件(例如 Claude 的 '.clauderc' 文件)中添加服务器配置信息。以下是一些配置示例,您可以根据您的运行方式选择合适的配置。

注意: 以下配置中的 'command' 和 'args' 字段指定了 MCP 服务器的启动命令和参数。'env' 字段用于设置服务器运行所需的环境变量。 请务必将 'SEARXNG_MCP_SEARXNG_URL' 替换为您要使用的 SearxNG 实例的 URL。 您可以选择使用公共 SearxNG 实例(例如 https://searx.space 提供的实例)或自托管的 SearxNG 实例。

1. 使用 pipx run (推荐,无需安装):

{
  "mcpServers": {
    "searxng": {
      "command": "pipx",  // 启动命令为 pipx
      "args": [
        "run", "searxng-simple-mcp@latest" // 运行 searxng-simple-mcp 包的最新版本
      ],
      "env": {
        "SEARXNG_MCP_SEARXNG_URL": "https://your-instance.example.com" // SearxNG 实例 URL,请替换为实际 URL
      }
    }
  }
}

2. 使用 uvx run (无需安装):

{
  "mcpServers": {
    "searxng": {
      "command": "uvx",  // 启动命令为 uvx
      "args": [
        "run", "searxng-simple-mcp@latest" // 运行 searxng-simple-mcp 包的最新版本
      ],
      "env": {
        "SEARXNG_MCP_SEARXNG_URL": "https://your-instance.example.com" // SearxNG 实例 URL,请替换为实际 URL
      }
    }
  }
}

3. 使用 Python with pip (需要安装):

{
  "mcpServers": {
    "searxng": {
      "command": "python", // 启动命令为 python
      "args": ["-m", "searxng_simple_mcp.server"], // 运行 searxng_simple_mcp.server 模块
      "env": {
        "SEARXNG_MCP_SEARXNG_URL": "https://your-instance.example.com" // SearxNG 实例 URL,请替换为实际 URL
      }
    }
  }
}

4. 使用 Docker (无需安装):

{
  "mcpServers": {
    "searxng": {
      "command": "docker", // 启动命令为 docker
      "args": [
        "run", "--rm", "-i", "--network=host",
        "-e", "SEARXNG_MCP_SEARXNG_URL=http://localhost:8080", // 通过 -e 参数设置环境变量,SearxNG 实例 URL,请替换为实际 URL
        "ghcr.io/sacode/searxng-simple-mcp:latest" // 使用 ghcr.io/sacode/searxng-simple-mcp:latest 镜像
      ]
    }
  }
}

注意 Docker 配置: 如果 SearxNG 实例运行在本地主机 (例如 'http://localhost:8080'),请务必使用 '--network=host' 参数,以便 Docker 容器可以访问主机网络。

基本使用方法

成功配置 MCP 客户端后,LLM 客户端即可通过 MCP 协议与 SearxNG 搜索 MCP 服务器通信。客户端可以使用 'web_search' 工具进行网络搜索。例如,在 Claude 中,您可以指示 Claude 使用 'web_search' 工具来查找信息,例如:

请使用 web_search 工具搜索 "最新的自然语言处理技术发展" 并总结搜索结果。

服务器会将搜索请求转发到 SearxNG 实例,并将格式化的搜索结果返回给 LLM 客户端。

环境变量配置

您可以通过环境变量来配置 SearxNG 搜索 MCP 服务器的行为。常用的环境变量包括:

  • 'SEARXNG_MCP_SEARXNG_URL': SearxNG 实例的 URL (默认: https://paulgo.io/)
  • 'SEARXNG_MCP_TIMEOUT': HTTP 请求超时时间,单位秒 (默认: 10)
  • 'SEARXNG_MCP_DEFAULT_RESULT_COUNT': 默认返回的搜索结果数量 (默认: 10)
  • 'SEARXNG_MCP_DEFAULT_LANGUAGE': 默认搜索结果语言 (默认: all)
  • 'SEARXNG_MCP_DEFAULT_FORMAT': 默认搜索结果格式 (默认: text)
  • 'SEARXNG_MCP_LOG_LEVEL': 日志级别 (默认: ERROR)
  • 'TRANSPORT_PROTOCOL': 传输协议,可选 'stdio' 或 'sse' (默认: stdio)

您可以通过在运行命令前设置环境变量,或者使用 '.env' 文件进行配置。具体方法请参考仓库 README 文档。

信息

分类

网页与API