mcpField
S
SearXNG MCP Server

SearXNG MCP Server

本地服务
github.com/kevinwatt搜索与检索398 周前更新

关于 SearXNG MCP Server

SearXNG MCP Server 是一个与 SearXNG 集成的 MCP 服务,提供注重隐私的元搜索能力。它可以合并多个搜索引擎的结果,并支持配置多个 SearXNG 实例作为备用。

主要功能

  1. 01合并多个搜索引擎的元搜索结果
  2. 02支持通用、新闻、科学等多个搜索类别
  3. 03按语言与时间范围筛选结果
  4. 04三级安全搜索过滤
  5. 05支持多个 SearXNG 实例的备用切换

适用场景

  1. 01为 AI 助手提供网页搜索结果
  2. 02在新闻、科学等类别中检索特定主题的信息
  3. 03在本地或自托管的 SearXNG 环境中进行隐私友好的搜索

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 web_search 工具,用于执行元搜索。它通过环境变量 SEARXNG_INSTANCES 指定后端 SearXNG 实例。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

SearXNG MCP 服务

一款集成 SearXNG 的 MCP 服务实现,提供注重隐私的元搜索功能。

功能

  • 元搜索:整合多个搜索引擎的结果
  • 注重隐私:不跟踪、不分析用户特征
  • 多种类别:支持综合、新闻、科学、文件、图片、视频等
  • 语言支持:可使用特定语言或所有语言进行搜索
  • 时间范围筛选:按天、周、月或年筛选结果
  • 安全搜索:提供三个级别的安全搜索筛选
  • 备用支持:配置多个 SearXNG 实例以提高可靠性

安装

npm install -g @kevinwatt/mcp-server-searxng

使用方法

直接运行
mcp-server-searxng
在 Dive Desktop 中使用
  1. 在 Dive Desktop 中点击“+ Add MCP Server”
  2. 复制并粘贴以下配置:
{
  "mcpServers": {
    "searxng": {
      "command": "npx",
      "args": [
        "-y",
        "@kevinwatt/mcp-server-searxng"
      ]
    }
  }
}
  1. 点击“Save”安装 MCP 服务

工具文档

  • web_search
    • 在多个引擎中执行元搜索
    • 输入:
      • query(字符串):搜索词
      • page(数字,可选):页码(默认值:1)
      • language(字符串,可选):语言代码(例如:'en'、'all',默认值:'all')
      • categories(数组,可选):搜索类别(默认值:['general'])
        • 可用类别:“general”、“news”、“science”、“files”、“images”、“videos”、“music”、“social media”、“it”
      • time_range(字符串,可选):时间筛选(all_time/day/week/month/year,默认值:'all_time')
      • safesearch(数字,可选):安全搜索级别(0:无,1:中等,2:严格,默认值:1)
    • 行为:
      • 按顺序尝试 SEARXNG_INSTANCES 中列出的实例;第一个返回搜索结果的实例即为所用实例。
      • 可连接但没有匹配结果的实例会返回 No results found for "<query>".——空搜索是正常结果,并非错误。
      • 只有在所有实例均无法连接时,才会返回错误 All SearXNG instances failed:包括连接错误、非 2xx 响应,或返回内容不是有效的 SearXNG JSON 搜索响应。

开发

git clone https://github.com/kevinwatt/mcp-server-searxng.git
cd mcp-server-searxng
npm install
npm run build            # compiles to dist/src/
npm test                 # unit tests; HTTP is mocked, no live instance needed
node dist/src/index.js   # run the server on stdio

使用 npm test -- -t "should resolve urls correctly" 运行单个测试用例。

许可证

此 MCP 服务基于 MIT License 许可。详情请参阅 LICENSE 文件。

前提条件

你需要运行一个本地 SearXNG 实例。设置方法如下:

使用 Docker 运行 SearXNG

快速开始

# Create config directory
mkdir -p searxng

# Create config file
tee searxng/settings.yml << EOF
use_default_settings: true

server:
  bind_address: "0.0.0.0"
  secret_key: "CHANGE_THIS_TO_SOMETHING_SECURE"  # Generate a random key
  port: 8080

search:
  safe_search: 0
  formats:
    - html
    - json

engines:
  - name: google
    engine: google
    shortcut: g

  - name: duckduckgo
    engine: duckduckgo
    shortcut: d

  - name: bing
    engine: bing
    shortcut: b

server.limiter: false
EOF

# Start container
docker run -d \
  --name searxng \
  -p 8080:8080 \
  -v "$(pwd)/searxng:/etc/searxng" \
  searxng/searxng

测试搜索功能

# Test JSON API with curl
curl -v 'http://localhost:8080/search?q=test&format=json'

# Or visit in browser
http://localhost:8080/search?q=test

容器管理

# Stop container
docker stop searxng

# Remove container
docker rm searxng

# View container logs
docker logs searxng

# Enable auto-start on boot
docker update --restart always searxng

--restart always 标志可确保:

  • Docker 守护进程启动时自动启动容器
  • 容器崩溃时自动重启
  • 除非用户明确停止容器,否则容器被停止时会自动重启

自定义配置

编辑 searxng/settings.yml 以:

  • 修改搜索引擎列表
  • 调整安全设置
  • 配置界面语言
  • 更改 API 限制

有关详细配置选项,请参阅 SearXNG 文档

环境变量

  • SEARXNG_INSTANCES:以逗号分隔的 SearXNG 实例 URL 列表,按顺序尝试作为备用实例。条目可以包含路径前缀,用于基于路径的反向代理路由(例如 https://example.com/searx),末尾的斜杠可有可无。 默认值:http://localhost:8080

  • SEARXNG_USER_AGENT:请求使用的自定义 User-Agent 标头 默认值:MCP-SearXNG/1.0

  • NODE_TLS_REJECT_UNAUTHORIZED:设为 '0' 可跳过 SSL 证书验证(用于开发时使用自签名证书) 默认值:undefined(启用 SSL 验证)

包含所有选项的配置示例:

{
  "mcpServers": {
    "searxng": {
      "name": "searxng",
      "command": "npx",
      "args": [
        "-y",
        "@kevinwatt/mcp-server-searxng"
      ],
      "env": {
        "SEARXNG_INSTANCES": "http://localhost:8080,https://searx.example.com",
        "SEARXNG_USER_AGENT": "CustomBot/1.0",
        "NODE_TLS_REJECT_UNAUTHORIZED": "0"
      }
    }
  }
}

⚠️ 警告:不建议在生产环境中禁用 SSL 证书验证。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。