隐私搜索服务

一款专注于隐私保护的网页搜索服务,通过SearXNG集成,为MCP客户端提供安全的搜索功能。

  • by roamer7038
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 roamer7038/searxng-mcp-server

使用说明

SearXNG MCP服务器

通过SearXNG对模型上下文协议(MCP)客户端进行以隐私为中心的网络搜索。

特性

  • 可流式HTTP传输 -MCP通信的单个HTTP端点
  • SearXNG集成 -以隐私为中心的搜索引擎
  • Docker就绪 -使用Docker Compose轻松部署
  • TypeScript -类型安全实施

快速开始

1.启动服务器

您可以使用以下Docker Compose配置之一启动服务器:

标准用法(compose.yml)

使用GitHub容器注册表中的预构建映像。如果您已经有一个正在运行的SearXNG实例,建议使用(默认值: http://localhost:8080).

docker compose up -d

开发与建设(compose.dev.yml)

从本地源代码构建映像。如果您想修改源代码,请将其用于开发。

docker compose -f compose.dev.yml up -d --build

生产/全栈(compose.prod.yml)

启动一个完整的堆栈,包括SearXNG、Nginx和MCP服务器。如果您还没有运行SearXNG实例,请使用此选项。此设置包括:

  • searxng:SearXNG搜索引擎实例
  • searxng mcp服务器:MCP服务器
  • 引擎X:反向代理
docker compose -f compose.prod.yml up -d

2.验证服务器是否正在运行

curl http://localhost:3000/health

预期响应:

{
  "status": "ok",
  "timestamp": "2026-02-15T04:10:23.000Z",
  "service": "searxng-mcp-server"
}

3.在SearXNG中启用JSON输出

如果你正在运行自己的SearXNG实例(尤其是通过Docker Compose),你可能会遇到 403 Forbidden MCP服务器尝试获取搜索结果时出错。这是因为默认情况下SearXNG中禁用了JSON输出。

要解决此问题,请编辑您的SearXNG settings.yml 并添加 json 搜索格式:

search:
  formats:
    - html
    - json  # Add this line to enable JSON output

进行此更改后重新启动SearXNG容器。

4.配置您的MCP客户端

克劳德代码

在Claude Code中运行以下命令:

claude mcp add --transport http searxng http://localhost:3000/mcp

或添加到 ~/.claude.json

{
  "mcpServers": {
    "searxng": {
      "type": "http",
      "url": "http://localhost:3000/mcp"
    }
  }
}

然后重新启动Claude Desktop。

克莱恩

添加到Cline配置文件:

{
  "mcpServers": {
    "searxng": {
      "type": "streamableHttp",
      "url": "http://localhost:3000/mcp"
    }
  }
}

可用工具

searxng_search

使用SearXNG进行网络搜索。

参数:

  • query (必填):搜索查询字符串
  • category (可选):搜索类别- general, images, videos, files, news, map, music, social media (默认值: general)
  • language (可选):语言代码(默认值: all)
  • time_range (可选):时间过滤器- day, week, month, year
  • safesearch (可选):安全搜索级别- 0 关 1 (中等), 2 (严格)(默认值: 1)

例子:

{
  "query": "TypeScript MCP server",
  "category": "general",
  "language": "ja"
}

答复包括:

  • 带有标题、URL、内容、分数、类别、发布日期的搜索结果
  • 相关搜索建议
  • 搜索元数据(结果数量、响应时间)

环境变量

变量 描述 默认值
SEARXNG_URL SearXNG实例URL http://localhost:8080
SERVER_PORT HTTP服务器端口 3000
SERVER_HOST HTTP服务器主机 0.0.0.0
LOG_LEVEL 日志记录级别 info

发展

先决条件

  • Node.js 24+
  • pnpm 9.15.4+

安装依赖项

pnpm install

构建

pnpm build

以开发模式运行

pnpm dev

在生产模式下运行

pnpm start

测试

MCP检查员

MCP检查员 是一个基于网络的工具,用于调试和探索MCP服务器。

测试MCP连接

curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test-client","version":"1.0.0"}}}'

测试搜索工具

curl -X POST http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"searxng_search","arguments":{"query":"test query"}}}'

许可证

该项目发布于 MIT许可证.