SearXNG 是一个开源的元搜索引擎,聚合来自 Google、Bing、Brave、DuckDuckGo、百度、B站 等 279 个搜索服务1) 的搜索结果,去重后统一展示。项目在 GitHub 上有 33.5K 星标2),Docker 镜像下载超 5000 万次3),是社区最活跃的元搜索引擎之一。
name: searxng services: core: container_name: searxng image: docker.io/searxng/searxng:latest restart: unless-stopped ports: - "127.0.0.1:8080:8080" environment: - UWSGI_WORKERS=1 volumes: - ./config:/etc/searxng:rw - ./data:/var/cache/searxng:rw mcp: container_name: searxng-mcp image: knucklessg1/searxng-mcp:latest restart: unless-stopped depends_on: - core ports: - "127.0.0.1:4445:8000" environment: - SEARXNG_URL=http://core:8080 command: searxng-mcp -t streamable-http -H 0.0.0.0 -p 8000
配置要点:
1. 创建配置目录
mkdir -p searxng/config searxng/data
2. 启用 JSON API SearXNG 默认只返回 HTML,需要在 config/settings.yml 中启用 JSON 格式4):
use_default_settings: true search: formats: - html - json server: secret_key: "<生成随机密钥>" image_proxy: true
3. 启动并测试
docker compose up -d curl 'http://localhost:8080/search?q=树莓派&format=json'
MCP 桥接容器 knucklessg1/searxng-mcp5) 将 SearXNG 的 JSON API 转换为 MCP 协议,供 LLM 客户端调用。
SSH 隧道转发(端口绑定 127.0.0.1):
ssh -L 4445:127.0.0.1:4445 -f -N root@<VPS_IP>
客户端 MCP 配置:
{
"searxng": {
"url": "http://localhost:4445/",
"timeout": 120
}
}
| 容器 | 内存 | CPU |
|---|---|---|
| searxng (core) | ~127MB | <0.1% 空闲,<1% 搜索时 |
| searxng-mcp | ~40MB | <0.1% |
| 总计 | ~167MB |
一次搜索在 7 个引擎同时查询,耗时约 1-2 秒。
SearXNG 自带 279 个内置引擎6),包括: