SearXNG-MCP
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 (требуется включенный JSON) |
|
| Адрес прослушивания сервиса |
|
| Порт прослушивания сервиса |
Локальный запуск
# 安装依赖(建议使用虚拟环境)
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"].
This server cannot be deployed
Maintenance
Related MCP Connectors
Serper MCP — wraps the Serper Google Search API (serper.dev)
Web search and clean-text fetch MCP server (Tavily-powered, SSRF-guarded).
Live AI-native web search with citations. One tool for every MCP client. Flat per-request pricing.
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables web search capabilities through the Tavily API. Allows users to search the web for information using natural language queries via the MCP protocol.41-
- AlicenseNot gradedqualityDmaintenanceEnables privacy-focused web search via SearXNG for MCP clients, allowing users to perform searches with customizable parameters through natural language.296 npmMIT
- FlicenseNot gradedqualityDmaintenanceProvides 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.-
- AlicenseNot gradedqualityBmaintenanceEnables 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 npmMIT