SearxNG MCP 服务器
模型上下文协议 (MCP) 服务器使用 SearxNG 提供网络搜索功能,允许像 Claude 这样的 AI 助手搜索网络。
由人工智能在人类监督下创建——因为有时即使是人工智能也需要有人告诉它什么时候该喝杯咖啡!🤖☕
概述
该项目实现了一个 MCP 服务器,用于连接到尊重隐私的元搜索引擎 SearxNG。该服务器为大型语言模型提供了一种简单高效的方式,可以在不追踪用户的情况下搜索网络。
该服务器专为 LLM 设计,仅包含必要功能,以最大限度地减少上下文窗口的使用。这种精简的方法确保了 LLM 和搜索引擎之间的高效通信,从而为更重要的信息保留了宝贵的上下文空间。
特征
通过 SearxNG 进行注重隐私的网络搜索
用于 LLM 集成的简单 API
与 Claude Desktop 和其他符合 MCP 的客户端兼容
可配置的搜索参数
针对法学硕士 (LLM) 优化的清晰、格式化的搜索结果
与 MCP 兼容应用程序集成
集成示例
使用 pipx 运行(推荐,无需安装)
在您的主目录中创建一个.clauderc文件:
使用 uvx run(无需安装)
使用 Python 和 pip(需要安装)
与 Docker 一起使用(无需安装)
**注意:**在 MCP 服务器中使用 Docker 时:
必须使用
args数组中的-e标志直接传递环境变量,因为env对象未正确传递给 Docker 容器。如果您需要访问在 localhost 上运行的 SearxNG 实例(例如, http://localhost:8080 ),则必须使用
--network=host标志允许容器访问主机网络。否则,容器内的 “localhost” 将指向容器本身,而不是您的主机。当使用
--network=host时,不需要端口映射(-p)并且会被忽略,因为容器直接共享主机的网络堆栈。
配置
使用环境变量配置服务器:
环境变量 | 描述 | 默认值 |
SEARXNG_MCP_SEARXNG_URL | 要使用的 SearxNG 实例的 URL | |
SEARXNG_MCP_TIMEOUT | HTTP 请求超时(秒) | 10 |
SEARXNG_MCP_DEFAULT_RESULT_COUNT | 默认返回结果数 | 10 |
SEARXNG_MCP_DEFAULT_LANGUAGE | 结果的语言代码(例如“en”、“ru”、“all”) | 全部 |
SEARXNG_MCP_DEFAULT_FORMAT | 结果的默认格式('text','json') | 文本 |
SEARXNG_MCP_LOG_LEVEL | 日志级别(例如,“DEBUG”、“INFO”、“WARNING”、“ERROR”、“CRITICAL”) | 错误 |
传输协议 | 传输协议(“stdio”或“sse”) | 标准输入输出 |
**注意:**设置高于 ERROR 的日志级别(例如 DEBUG 或 INFO)可能会因通信通道中的输出过多而破坏与某些应用程序的集成。
如果您不想托管自己的实例,可以在https://searx.space上找到公共 SearxNG 实例列表。
安装和使用
先决条件
Python 3.10 或更高版本
SearxNG 实例(公共或自托管)
选项 1:无需安装即可运行(推荐)
使用此服务器的最简单方法是使用 pipx 或 uvx,它允许您运行该包而无需永久安装它:
您可以直接传递配置选项:
选项 2:从 PyPI 或源代码安装
对于更永久的安装:
安装后,您可以使用以下命令运行服务器:
选项 3:Docker
如果您更喜欢使用 Docker:
有关完整的 Docker 使用信息,请参阅下面的Docker 配置部分。
传输协议
MCP 服务器支持两种传输协议:
STDIO (默认):用于 CLI 应用程序和直接集成
所有示例中均默认使用
适合与 Claude Desktop 和其他符合 MCP 的客户端集成
未启动 HTTP 服务器
SSE (服务器发送事件):适用于基于 Web 的客户端和基于 HTTP 的集成
启动客户端可以连接的 HTTP 服务器
对于需要实时更新的 Web 应用程序和服务很有用
使用 Docker 时需要端口映射
使用 SSE 传输
要使用 SSE 传输协议:
直接执行:
# Set the transport protocol to SSE TRANSPORT_PROTOCOL=sse python -m searxng_simple_mcp.server # Or with FastMCP fastmcp run src/searxng_simple_mcp/server.py --transport sse使用 Docker :
# Run with SSE transport protocol docker run -p 8000:8000 -e TRANSPORT_PROTOCOL=sse -e SEARXNG_MCP_SEARXNG_URL=https://your-instance.example.com ghcr.io/sacode/searxng-simple-mcp:latest使用 Docker Compose (来自包含的
docker-compose.yml):environment: - SEARXNG_MCP_SEARXNG_URL=https://searx.info - SEARXNG_MCP_TIMEOUT=10 - SEARXNG_MCP_MAX_RESULTS=20 - SEARXNG_MCP_LANGUAGE=all - TRANSPORT_PROTOCOL=sse # Transport protocol: stdio or sse
使用 SSE 时,默认情况下可通过 HTTP http://localhost:8000访问服务器。
要从 MCP 客户端连接到 SSE 服务器,请使用如下配置:
**注意:**并非所有应用程序都支持 SSE 传输协议。使用此传输方式之前,请确保您的 MCP 客户端兼容 SSE。
发展
对于开发和测试:
发布到 PyPI
对于需要将软件包的新版本发布到 PyPI 的维护人员:
这些命令将:
更新 package.json 和 pyproject.toml 中的版本
清理 dist 目录以删除旧版本
构建包(创建轮子和源分发)
检查包中是否有错误
将包上传到 PyPI
你需要拥有一个 PyPI 帐户并通过 Twine 进行身份验证。你可以通过以下方式设置身份验证:
在你的主目录中创建一个
.pypirc文件使用环境变量(
TWINE_USERNAME和TWINE_PASSWORD)使用 PyPI API 令牌(推荐)
Docker 配置
在 MCP 服务器上使用 Docker 时,请记住以下几点:
与 MCP 客户端集成:使用“与 Docker 一起使用”部分中显示的配置与 Claude Desktop 或其他符合 MCP 的客户端集成。
传输协议:
默认情况下,Docker 容器使用 stdio 传输协议
对于 SSE 传输,请参阅使用 SSE 传输部分
配置选项:
使用环境文件(.env)配置服务器:
docker run --env-file .env ...使用
-e标志传递单个环境变量:docker run -e SEARXNG_MCP_SEARXNG_URL=https://example.com ...请参阅配置部分以了解可用的环境变量
网络:
当您需要访问主机上的服务时,请使用
--network=host将 SSE 服务器暴露到您的网络时使用
-p 8000:8000
包结构
贡献
欢迎贡献代码!欢迎提交 Pull 请求。
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
Related MCP Servers
- -security-license-qualityA server that enables language models to perform web searches through SearXNG using the Model Context Protocol standard.Last updated -42MIT License
- Asecurity-licenseAqualityAn MCP server that enables web searches using a SearxNG instance, allowing MCP-compatible applications like Goose to perform internet searches.Last updated -1GPL 3.0
- Asecurity-licenseAqualityA server that enables AI assistants like Claude to perform web searches using the Exa AI Search API, providing real-time web information in a safe and controlled way.Last updated -610,191MIT License
- Asecurity-licenseAqualityA Model Context Protocol server that enables AI assistants to perform web searches using SearXNG, a privacy-respecting metasearch engine.Last updated -122MIT License