搜索聚合服务

SearXNG MCP Server是一个与SearXNG集成的模型上下文协议服务器,为Claude Desktop、Cline等MCP兼容应用提供强大的网络搜索能力。

  • by martinchen448
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 martinchen448/searxng-mcp-server

使用说明

SearXNG MCP服务器

一种集成了以下功能的模型上下文协议(MCP)服务器 SearXNG,为Claude Desktop、Cline和其他MCP兼容应用程序等MCP客户端提供强大的网络搜索功能。

特性

  • 🔍 网页搜索:在SearXNG聚合的多个搜索引擎中搜索
  • 🎯 类别筛选:按类别筛选(一般、图像、视频、新闻等)
  • 🌐 多引擎:查询特定的搜索引擎或全部使用它们
  • 🌍 本地化:以不同语言搜索
  • ⏰ 时间滤波:按时间范围(日、月、年)筛选结果
  • 🛡️ 安全搜索:可配置的安全搜索级别
  • 💡 自动完成:获取查询完成的搜索建议
  • 🔧 配置访问:查询SearXNG实例功能
  • 🏥 健康监测:检查实例运行状况

先决条件

  • Python 3.10或更高版本
  • 正在运行的SearXNG实例(本地或远程)
  • MCP客户端(例如,Claude Desktop、Cline)

安装

来源

  1. 克隆存储库:
git clone https://github.com/martinchen448/searxng-mcp-server.git
cd searxng-mcp-server
  1. 安装软件包:
pip install -e .

来自PyPI(即将推出)

pip install searxng-mcp-server

配置

适用于克劳德桌面

添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

对于本地实例(推荐):

{
  "mcpServers": {
    "searxng": {
      "command": "python",
      "args": ["-m", "searxng_mcp_server"],
      "env": {
        "SEARXNG_BASE_URL": "http://localhost:8080/",
        "SEARXNG_VERIFY_SSL": "false"
      }
    }
  }
}

对于公共实例:

{
  "mcpServers": {
    "searxng": {
      "command": "python",
      "args": ["-m", "searxng_mcp_server"],
      "env": {
        "SEARXNG_BASE_URL": "https://searx.be",
        "SEARXNG_VERIFY_SSL": "true"
      }
    }
  }
}

对于Cline(VSCode扩展)

添加到MCP设置文件中:

路径: <User Directory>/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json

对于本地实例(推荐):

{
  "mcpServers": {
    "searxng": {
      "command": "python",
      "args": ["-m", "searxng_mcp_server"],
      "env": {
        "SEARXNG_BASE_URL": "http://localhost:8080/",
        "SEARXNG_VERIFY_SSL": "false"
      }
    }
  }
}

对于公共实例:

{
  "mcpServers": {
    "searxng": {
      "command": "python",
      "args": ["-m", "searxng_mcp_server"],
      "env": {
        "SEARXNG_BASE_URL": "https://searx.be",
        "SEARXNG_VERIFY_SSL": "true"
      }
    }
  }
}

环境变量

  • SEARXNG_BASE_URL (必填):SearXNG实例的基本URL
    • 例子: https://search.example.com 或 http://localhost:8888
  • SEARXNG_VERIFY_SSL (可选):是否验证SSL证书
    • 违约: true
    • 吃起来 false 用于自签名证书或本地开发

MCP检验员测试

在与Claude Desktop或Cline一起使用之前,请使用MCP Inspector测试您的服务器。

快速开始

使用提供的便利脚本:

Windows(命令提示符):

run-inspector.bat

Windows(PowerShell):

.\run-inspector.ps1

Linux/macOS:

chmod +x run-inspector.sh
./run-inspector.sh

或者直接运行:

# Set environment variable first
export SEARXNG_BASE_URL=https://searx.be  # Linux/macOS
set SEARXNG_BASE_URL=https://searx.be     # Windows CMD
$env:SEARXNG_BASE_URL="https://searx.be"  # Windows PowerShell

# Then run inspector
npx @modelcontextprotocol/inspector python -m searxng_mcp_server

检查器将在浏览器中打开(通常http://localhost:5173)您可以在哪里:

  • 交互式测试所有工具
  • 查看实时请求/响应日志
  • 检查资源
  • 调试连接问题

有关详细的测试说明,请参阅 MCP检验员测试.

设置SearXNG

如果你没有SearXNG实例,你可以:

使用公共实例

在以下位置查找公共实例:https://searx.space/

公共实例示例:

  • https://searx.be
  • https://searx.tiekoetter.com
  • https://search.sapti.me

重要提示:

  • 公共实例可能有速率限制或约束
  • 一些公共实例阻止自动请求(HTTP 403错误)
  • 为了可靠运行,请考虑运行自己的实例
  • 如果遇到403错误,请尝试其他公共实例或设置本地实例

运行自己的实例

使用Docker(推荐):

docker pull searxng/searxng
docker run -d -p 8888:8080 \
  -v "${PWD}/searxng:/etc/searxng" \
  -e "BASE_URL=http://localhost:8888/" \
  -e "INSTANCE_NAME=my-instance" \
  searxng/searxng

看 SearXNG文件 更多部署选项。

可用工具

1.搜索

跨多个搜索引擎执行网络搜索。

参数:

  • query (必填):搜索查询字符串
  • categories (可选):类别数组(例如。, ["general", "images", "news"])
  • engines (可选):特定引擎阵列(例如。, ["google", "bing"])
  • language (可选):语言代码(默认值: "en")
  • page (可选):分页页码(默认值:1)
  • time_range (可选):按时间筛选(“天”、“月”、“年”)
  • safesearch (可选):安全搜索级别(0=关闭,1=中等,2=严格)

例子:

{
  "query": "Python async programming",
  "categories": ["general"],
  "language": "en",
  "time_range": "year",
  "safesearch": 0
}

2.获取建议

获取查询前缀的自动补全建议。

参数:

  • query (必填):查询前缀
  • language (可选):语言代码(默认值: "en")

例子:

{
  "query": "machine learn",
  "language": "en"
}

3.健康检查

检查SearXNG实例是否可访问且健康。

参数: 无

4.get_config

获取SearXNG实例的配置和功能。

参数: 无

返回以下信息:

  • 可用的搜索引擎
  • 已启用类别
  • 支持的语言
  • 活动插件
  • 实例设置

可用资源

searxng://config

作为持久资源访问SearXNG实例配置。

searxng://health

SearXNG实例作为持久资源的运行状况。

使用示例

示例1:基本网络搜索

询问您的MCP客户:

Search for "best practices for Python async programming"

示例2:图像搜索

询问您的MCP客户:

Search for images of "northern lights" from the past month

服务器将使用:

{
  "query": "northern lights",
  "categories": ["images"],
  "time_range": "month"
}

示例3:新闻搜索

询问您的MCP客户:

Find recent news about artificial intelligence

服务器将使用:

{
  "query": "artificial intelligence",
  "categories": ["news"],
  "time_range": "day"
}

示例4:获取搜索建议

询问您的MCP客户:

Get search suggestions for "climate"

搜索类别

SearXNG中的可用类别:

  • general -一般网络搜索
  • images -图片搜索
  • videos -视频搜索
  • news -新闻文章
  • music -音乐搜索
  • files -文件搜索
  • social media -社交媒体帖子
  • science -科学文章
  • it -IT/编程资源
  • map -地图和位置

发展

设置开发环境

# Clone the repository
git clone https://github.com/martinchen448/searxng-mcp-server.git
cd searxng-mcp-server

# Install with dev dependencies
pip install -e ".[dev]"

运行测试

pytest

代码格式化

# Format code with black
black src tests

# Lint with ruff
ruff check src tests

# Type checking with mypy
mypy src

项目结构

searxng-mcp-server/
├── src/
│   └── searxng_mcp_server/
│       ├── __init__.py
│       ├── server.py      # MCP server implementation
│       └── client.py      # SearXNG API client
├── tests/
│   ├── test_server.py
│   └── test_client.py
├── pyproject.toml
└── README.md

故障排除

连接问题

如果遇到连接错误:

  1. 验证SearXNG URL:确保 SEARXNG_BASE_URL 正确且可访问
  2. 检查SSL证书:对于自签名证书,设置 SEARXNG_VERIFY_SSL=false
  3. 测试实例:访问浏览器中的URL以确保其正在运行
  4. 检查防火墙:确保没有防火墙阻止连接

SSL证书错误

对于自签名证书或本地开发:

{
  "env": {
    "SEARXNG_BASE_URL": "http://localhost:8888",
    "SEARXNG_VERIFY_SSL": "false"
  }
}

没有结果

如果搜索未返回结果:

  1. 检查实例配置:使用 get_config 查看可用引擎的工具
  2. 确认发动机已启用:某些实例的引擎可能有限
  3. 尝试不同类别:某些类别可能不可用
  4. 检查实例日志:查看SearXNG日志中的错误

贡献

欢迎投稿!请按照以下步骤操作:

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 进行更改
  4. 运行测试和梳理
  5. 提交您的更改(git commit -m 'Add amazing feature')
  6. 推到分支(git push origin feature/amazing-feature)
  7. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢

相关项目

支持

更新日志

看 更改日志.md 查看版本历史和更改。