Skip to main content
Glama
muzihuaner

SearXNG-MCP

by muzihuaner

SearXNG MCP Сервер

Реализация MCP-сервиса поиска SearXNG на основе FastMCP, использующая Streamable HTTP транспорт, с поддержкой локального запуска и развертывания в Docker.

Полезные ссылки по SearXNG:

Официальная документация: https://docs.searxng.org/

Онлайн-демонстрация: https://searx.space/

Возможности

  • Предоставляет MCP-инструмент search(query): выполняет поиск по ключевому слову через экземпляр SearXNG и возвращает сводку результатов.

  • Обеспечивает MCP-сервис через HTTP-эндпоинт http://<host>:<port>/mcp, что удобно для удаленных/кросс-доменных вызовов.

  • Использует без сохранения состояния (stateless) режим Streamable HTTP, поэтому клиенту не нужно поддерживать Mcp-Session-Id, можно выполнять параллельные вызовы.

  • Поддерживает настройку адреса экземпляра SearXNG через переменные окружения для удобства приватного развертывания.

Related MCP server: searxng-mcp-server

Переменные окружения

Переменная

Значение по умолчанию

Описание

SEARXNG_URL

https://searxng.abc.com

Корневой адрес экземпляра SearXNG (требуется включенный JSON)

HOST

0.0.0.0

Адрес прослушивания сервиса

PORT

9000

Порт прослушивания сервиса

Локальный запуск

# 安装依赖(建议使用虚拟环境)
pip install -r requirements.txt

# 可选:自定义 SearXNG 实例(只需填根地址)
export SEARXNG_URL="https://your-searxng-instance"

# 启动服务
python Server.py

После запуска MCP-эндпоинт будет доступен по адресу:

http://localhost:9000/mcp

Развертывание в Docker

Сборка образа

docker build -t searxng-mcp .

Запуск контейнера

docker run -d \
  --name searxng-mcp \
  -p 9000:9000 \
  -e SEARXNG_URL="https://searxng.abc.com" \
  searxng-mcp

Для изменения порта можно одновременно переопределить порт контейнера и переменную PORT:

docker run -d \
  --name searxng-mcp \
  -p 8080:8080 \
  -e PORT=8080 \
  searxng-mcp

Использование готового онлайн-образа

docker run -d \
  --name searxng-mcp \
  -p 9000:9000 \
  -e SEARXNG_URL="https://searxng.abc.com" \
  muzihuaner/searxng-mcp:latest

Адрес доступа

После завершения развертывания формат MCP-эндпоинта будет следующим:

http://<你的服务器域名或IP>:<端口>/mcp

Например: http://localhost:9000/mcp или https://mcp.your-domain.com/mcp

Настройка клиента

В MCP-клиенте, поддерживающем Streamable HTTP, укажите адрес сервиса как указано выше (эндпоинт /mcp), например:

{
  "mcpServers": {
    "searxng": {
      "url": "http://localhost:9000/mcp"
    }
  }
}

Описание инструмента

search(query: str) -> str

Выполняет поиск по ключевому слову через SearXNG и возвращает текстовое содержимое каждого результата, объединенное переносами строк.

  • query: поисковый запрос.

  • Возвращаемое значение: текстовое содержимое результатов поиска; в случае ошибки запроса возвращается False.

Производительность и параллелизм

测试结果示例(局域网 / 上游 `so.xxx.cn`):

Всего запросов : 100 Параллельных worker : 50 Успешно : 100 Ошибок : 0 Общее время (сек) : 67.68 Пропускная способность (запросов/сек): 1.48 Средняя задержка (сек): 27.284 Мин. задержка (сек) : 7.203 Макс. задержка (сек) : 44.418


> 注意:端到端延迟主要取决于 SearXNG 上游实例的响应速度(本例平均约 27s 来自上游 `so.xxx.cn` 较慢),服务本身可稳定承载并发且零失败。若需提升吞吐,可:
> - 换用响应更快 / 自托管的 SearXNG 实例(通过 `SEARXNG_URL` 指定);

Часто задаваемые вопросы

В: Клиент сообщает об ошибке Missing session ID? О: Данный сервис активирует режим stateless_http=True, поэтому сессия не требуется. Если ошибка все еще возникает, убедитесь, что клиент подключается к эндпоинту /mcp.

В: Как ужесточить CORS в производственной среде? О: Отредактируйте CORSMiddleware в файле Server.py, заменив allow_origins=["*"] на конкретный список разрешенных источников, например ["https://your-domain.com"].

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Enables web search capabilities through the Tavily API. Allows users to search the web for information using natural language queries via the MCP protocol.
    4
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables privacy-focused web search via SearXNG for MCP clients, allowing users to perform searches with customizable parameters through natural language.
    296 npm
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides a free web search tool to MCP clients by connecting to a self-hosted SearXNG metasearch instance, enabling users to search the web with customizable parameters like categories and time range.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP-compatible clients to perform web searches through a self-hosted SearXNG instance, with support for configurable languages, categories, time ranges, and safe search settings.
    237 npm
    MIT