SearxNG MCP Server

by Sacode
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Connects to SearxNG instances to provide privacy-focused web search capabilities with configurable parameters like result count, language, and format

SearxNG MCP 服务器

模型上下文协议 (MCP) 服务器使用 SearxNG 提供网络搜索功能,允许像 Claude 这样的 AI 助手搜索网络。

由人工智能在人类监督下创建——因为有时即使是人工智能也需要有人告诉它什么时候该喝杯咖啡!🤖☕

概述

该项目实现了一个 MCP 服务器,用于连接到尊重隐私的元搜索引擎 SearxNG。该服务器为大型语言模型提供了一种简单高效的方式,可以在不追踪用户的情况下搜索网络。

该服务器专为 LLM 设计,仅包含必要功能,以最大限度地减少上下文窗口的使用。这种精简的方法确保了 LLM 和搜索引擎之间的高效通信,从而为更重要的信息保留了宝贵的上下文空间。

特征

  • 通过 SearxNG 进行注重隐私的网络搜索
  • 用于 LLM 集成的简单 API
  • 与 Claude Desktop 和其他符合 MCP 的客户端兼容
  • 可配置的搜索参数
  • 针对法学硕士 (LLM) 优化的清晰、格式化的搜索结果

与 MCP 兼容应用程序集成

集成示例

使用 pipx 运行(推荐,无需安装)

在您的主目录中创建一个.clauderc文件:

{ "mcpServers": { "searxng": { "command": "pipx", "args": [ "run", "searxng-simple-mcp@latest" ], "env": { "SEARXNG_MCP_SEARXNG_URL": "https://your-instance.example.com" } } } }

使用 uvx run(无需安装)

{ "mcpServers": { "searxng": { "command": "uvx", "args": [ "run", "searxng-simple-mcp@latest" ], "env": { "SEARXNG_MCP_SEARXNG_URL": "https://your-instance.example.com" } } } }

使用 Python 和 pip(需要安装)

{ "mcpServers": { "searxng": { "command": "python", "args": ["-m", "searxng_simple_mcp.server"], "env": { "SEARXNG_MCP_SEARXNG_URL": "https://your-instance.example.com" } } } }

与 Docker 一起使用(无需安装)

{ "mcpServers": { "searxng": { "command": "docker", "args": [ "run", "--rm", "-i", "--network=host", "-e", "SEARXNG_MCP_SEARXNG_URL=http://localhost:8080", "ghcr.io/sacode/searxng-simple-mcp:latest" ] } } }

**注意:**在 MCP 服务器中使用 Docker 时:

  1. 必须使用args数组中的-e标志直接传递环境变量,因为env对象未正确传递给 Docker 容器。
  2. 如果您需要访问在 localhost 上运行的 SearxNG 实例(例如, http://localhost:8080 ),则必须使用--network=host标志允许容器访问主机网络。否则,容器内的 “localhost” 将指向容器本身,而不是您的主机。
  3. 当使用--network=host时,不需要端口映射( -p )并且会被忽略,因为容器直接共享主机的网络堆栈。

配置

使用环境变量配置服务器:

环境变量描述默认值
SEARXNG_MCP_SEARXNG_URL要使用的 SearxNG 实例的 URLhttps://paulgo.io/
SEARXNG_MCP_TIMEOUTHTTP 请求超时(秒)10
SEARXNG_MCP_DEFAULT_RESULT_COUNT默认返回结果数10
SEARXNG_MCP_DEFAULT_LANGUAGE结果的语言代码(例如“en”、“ru”、“all”)全部
SEARXNG_MCP_DEFAULT_FORMAT结果的默认格式('text','json')文本
SEARXNG_MCP_LOG_LEVEL日志级别(例如,“DEBUG”、“INFO”、“WARNING”、“ERROR”、“CRITICAL”)错误
传输协议传输协议(“stdio”或“sse”)标准输入输出

**注意:**设置高于 ERROR 的日志级别(例如 DEBUG 或 INFO)可能会因通信通道中的输出过多而破坏与某些应用程序的集成。

如果您不想托管自己的实例,可以在https://searx.space上找到公共 SearxNG 实例列表。

安装和使用

先决条件

  • Python 3.10 或更高版本
  • SearxNG 实例(公共或自托管)

选项 1:无需安装即可运行(推荐)

使用此服务器的最简单方法是使用 pipx 或 uvx,它允许您运行该包而无需永久安装它:

# Using pipx pip install pipx # Install pipx if you don't have it pipx run searxng-simple-mcp # OR using uvx pip install uvx # Install uvx if you don't have it uvx run searxng-simple-mcp

您可以直接传递配置选项:

# Using pipx with custom SearxNG instance pipx run searxng-simple-mcp --searxng-url https://your-instance.example.com

选项 2:从 PyPI 或源代码安装

对于更永久的安装:

# From PyPI using pip pip install searxng-simple-mcp # OR using uv (faster installation) pip install uv uv pip install searxng-simple-mcp # OR from source git clone https://github.com/Sacode/searxng-simple-mcp.git cd searxng-simple-mcp pip install uv uv pip install -e .

安装后,您可以使用以下命令运行服务器:

# Run directly after installation python -m searxng_simple_mcp.server # OR with configuration options python -m searxng_simple_mcp.server --searxng-url https://your-instance.example.com

选项 3:Docker

如果您更喜欢使用 Docker:

# Pull the Docker image docker pull ghcr.io/sacode/searxng-simple-mcp:latest # Run the container with default settings (stdio transport) docker run --rm -i ghcr.io/sacode/searxng-simple-mcp:latest # Run with environment file for configuration docker run --rm -i --env-file .env ghcr.io/sacode/searxng-simple-mcp:latest # Run with SSE transport (starts HTTP server on port 8000) docker run -p 8000:8000 -e TRANSPORT_PROTOCOL=sse ghcr.io/sacode/searxng-simple-mcp:latest # Building locally docker build -t searxng-simple-mcp:local . docker run --rm -i searxng-simple-mcp:local # Using Docker Compose docker-compose up -d

有关完整的 Docker 使用信息,请参阅下面的Docker 配置部分。

传输协议

MCP 服务器支持两种传输协议:

  • STDIO (默认):用于 CLI 应用程序和直接集成
    • 所有示例中均默认使用
    • 适合与 Claude Desktop 和其他符合 MCP 的客户端集成
    • 未启动 HTTP 服务器
  • SSE (服务器发送事件):适用于基于 Web 的客户端和基于 HTTP 的集成
    • 启动客户端可以连接的 HTTP 服务器
    • 对于需要实时更新的 Web 应用程序和服务很有用
    • 使用 Docker 时需要端口映射

使用 SSE 传输

要使用 SSE 传输协议:

  1. 直接执行
    # Set the transport protocol to SSE TRANSPORT_PROTOCOL=sse python -m searxng_simple_mcp.server # Or with FastMCP fastmcp run src/searxng_simple_mcp/server.py --transport sse
  2. 使用 Docker
    # Run with SSE transport protocol docker run -p 8000:8000 -e TRANSPORT_PROTOCOL=sse -e SEARXNG_MCP_SEARXNG_URL=https://your-instance.example.com ghcr.io/sacode/searxng-simple-mcp:latest
  3. 使用 Docker Compose (来自包含的docker-compose.yml ):
    environment: - SEARXNG_MCP_SEARXNG_URL=https://searx.info - SEARXNG_MCP_TIMEOUT=10 - SEARXNG_MCP_MAX_RESULTS=20 - SEARXNG_MCP_LANGUAGE=all - TRANSPORT_PROTOCOL=sse # Transport protocol: stdio or sse

使用 SSE 时,默认情况下可通过 HTTP http://localhost:8000访问服务器。

要从 MCP 客户端连接到 SSE 服务器,请使用如下配置:

{ "mcpServers": { "searxng": { "url": "http://localhost:8000", "transport": "sse" } } }

**注意:**并非所有应用程序都支持 SSE 传输协议。使用此传输方式之前,请确保您的 MCP 客户端兼容 SSE。

发展

对于开发和测试:

# Install dependencies uv pip install -e . # Run linter and formatter ruff check . ruff check --fix . ruff format . # Run the server directly python -m src.searxng_simple_mcp.server # OR using FastMCP fastmcp run src/searxng_simple_mcp/server.py # Use stdio transport (default) fastmcp run src/searxng_simple_mcp/server.py --transport sse # Use sse transport # Run in development mode (launches MCP Inspector) fastmcp dev src/searxng_simple_mcp/server.py

发布到 PyPI

对于需要将软件包的新版本发布到 PyPI 的维护人员:

# Install development dependencies npm run install:deps # Clean, build, and check the package npm run build:package npm run check:package # Publish to PyPI (requires PyPI credentials) npm run publish:pypi # Alternatively, use the all-in-one commands to update version and publish npm run publish:patch # Increments patch version (1.0.1 -> 1.0.2) npm run publish:minor # Increments minor version (1.0.1 -> 1.1.0) npm run publish:major # Increments major version (1.0.1 -> 2.0.0)

这些命令将:

  1. 更新 package.json 和 pyproject.toml 中的版本
  2. 清理 dist 目录以删除旧版本
  3. 构建包(创建轮子和源分发)
  4. 检查包中是否有错误
  5. 将包上传到 PyPI

你需要拥有一个 PyPI 帐户并通过 Twine 进行身份验证。你可以通过以下方式设置身份验证:

  • 在你的主目录中创建一个.pypirc文件
  • 使用环境变量( TWINE_USERNAMETWINE_PASSWORD
  • 使用 PyPI API 令牌(推荐)

Docker 配置

在 MCP 服务器上使用 Docker 时,请记住以下几点:

  1. 与 MCP 客户端集成:使用“与 Docker 一起使用”部分中显示的配置与 Claude Desktop 或其他符合 MCP 的客户端集成。
  2. 传输协议
    • 默认情况下,Docker 容器使用 stdio 传输协议
    • 对于 SSE 传输,请参阅使用 SSE 传输部分
  3. 配置选项
    • 使用环境文件(.env)配置服务器: docker run --env-file .env ...
    • 使用-e标志传递单个环境变量: docker run -e SEARXNG_MCP_SEARXNG_URL=https://example.com ...
    • 请参阅配置部分以了解可用的环境变量
  4. 网络
    • 当您需要访问主机上的服务时,请使用--network=host
    • 将 SSE 服务器暴露到您的网络时使用-p 8000:8000

包结构

searxng-simple-mcp/ ├── src/ │ ├── run_server.py # Entry point script │ └── searxng_simple_mcp/ # Main package ├── docker-compose.yml # Docker Compose configuration ├── Dockerfile # Docker configuration └── pyproject.toml # Python project configuration

贡献

欢迎贡献代码!欢迎提交 Pull 请求。

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

使用 SearxNG 提供网络搜索功能,允许像 Claude 这样的人工智能助手使用尊重隐私的元搜索引擎搜索网络。

  1. Overview
    1. Features
  2. Integration with MCP-Compatible Applications
    1. Integration Examples
  3. Configuration
    1. Installation & Usage
      1. Prerequisites
      2. Option 1: Run Without Installation (Recommended)
      3. Option 2: Install from PyPI or Source
      4. Option 3: Docker
    2. Transport Protocols
      1. Using SSE Transport
    3. Development
      1. Publishing to PyPI
        1. Docker Configuration
          1. Package Structure
            1. Contributing
              1. License
                ID: nfm42nf0cu