使用说明
searxng mcp
SearXNG的独立模型上下文协议(MCP)服务器。
暴露的工具:
search:查询SearXNG实例并返回JSON结果browse:获取URL并返回Markdown或文本browse_eval:在加载的页面上评估JavaScript(仅限Obscura后端)engines:列出配置的SearXNG发动机(来自/config)health:检查与SearXNG的连接(/config)ping:基本健康检查
默认情况下,仅 search 和 browse 暴露。
用法
货物
cargo run -- --transport stdio
或流式HTTP服务器(建议用于网络客户端):
cargo run -- --transport http --bind 127.0.0.1:3344
无
开发程序外壳:
nix develop
构建:
nix build
运行:
nix run . -- --transport http --bind 127.0.0.1:3344
Docker Compose
使用此仓库作为构建源的最小本地堆栈(SearXNG+MCP服务器):
docker compose up --build
这将开始:
- SearXNG on
http://localhost:8080 - searxng mcp上
http://localhost:3344
配置
配置使用CLI标志、环境变量和内置默认值。
优先:
- CLI标志
- 环境变量
- 默认值
MCP服务器
SEARXNG_MCP_TRANSPORT(stdio|http,默认值:stdio)SEARXNG_MCP_BIND(默认值:127.0.0.1:3344;被使用http运输)SEARXNG_MCP_TOOLS(逗号分隔的列表,默认值:search,browse)
CLI标志仍然有效,并且优先于环境变量:
SEARXNG_MCP_TRANSPORT=stdio searxng-mcp --transport http --bind 127.0.0.1:3344
工具列表
默认情况下,此服务器仅公开 search,browse.
要启用其他工具,请执行以下操作:
searxng-mcp --tools search,browse,health
或者通过env:
export SEARXNG_MCP_TOOLS=search,browse,health
SearXNG
SEARXNG_BASE_URL(默认值:http://localhost:8080)SEARXNG_DEFAULT_ENGINES(逗号分隔)SEARXNG_DEFAULT_CATEGORIES(逗号分隔)SEARXNG_DEFAULT_LANGUAGE(默认值:en)SEARXNG_SAFE_SEARCH(0|1|2,默认值:0)SEARXNG_NUM_RESULTS(默认值:5)SEARXNG_TIMEOUT_SECS(默认值:20)
浏览
BROWSE_BACKEND(simple|obscura,默认值:simple;obscura需要--features obscura-backend)browse工具format论点(markdown|text,默认值:markdown;仅为工具参数,不是环境变量或CLI标志)BROWSE_MAX_BYTES(默认值:2000000;两个后端)BROWSE_TIMEOUT_SECS(默认值:20;两个后端)BROWSE_USER_AGENT(默认值:searxng-mcp/<version>;简单的后端和Obscura非隐形)BROWSE_FOLLOW_REDIRECTS(true|false,默认值:false;仅限简单后端)BROWSE_MAX_REDIRECTS(默认值:10;仅限简单后端)BROWSE_OBSCURA_WAIT_UNTIL(load|domload|idle0|idle2,默认值:load;仅遮挡后端)BROWSE_OBSCURA_STEALTH(true|false|1|0|yes|no|on|off,默认值:false;仅遮挡后端;仅限于env;true需要--features obscura-stealth)
SSRF控制:
BROWSE_ALLOWED_HOSTS(逗号分隔的列表;如果设置,则只允许这些主机)BROWSE_ALLOW_PRIVATE(true|false,默认值:false)
笔记:
- 如果
BROWSE_ALLOWED_HOSTS设置后,它将覆盖private/lolocalhost阻塞。 - 如果没有设置对抗列表,
browse默认情况下,阻止本地主机和私有/环回/链接本地IP。 - 简单的后端重定向选项包括
BROWSE_FOLLOW_REDIRECTS和BROWSE_MAX_REDIRECTS;Obscura在内部处理导航。 - 隐蔽等待和隐形选项
BROWSE_OBSCURA_WAIT_UNTIL和BROWSE_OBSCURA_STEALTH. - 遮蔽隐形模式不适用
BROWSE_USER_AGENT;它使用Obscura自己的隐形用户代理/客户端行为。 - 启用
browse_eval和--tools search,browse,browse_eval仅在使用时BROWSE_BACKEND=obscura.
使用Obscura支持构建:
cargo build --features obscura-backend
使用Obscura隐身功能构建和运行:
cargo build --features obscura-stealth
BROWSE_BACKEND=obscura BROWSE_OBSCURA_STEALTH=true cargo run --features obscura-stealth -- --tools search,browse
MCP客户端示例
克劳德桌面版
添加到MCP服务器配置中:
{
"mcpServers": {
"searxng": {
"command": "searxng-mcp",
"args": ["--transport", "stdio"]
}
}
}
光标
.cursor/mcp.json:
{
"mcpServers": {
"searxng": {
"command": "searxng-mcp",
"args": ["--transport", "stdio"]
}
}
}
NixOS服务
此仓库在以下位置公开了一个NixOS模块 nixosModules.searxng-mcp.
基于薄片的NixOS配置示例:
{
inputs.searxng-mcp.url = "github:zatevakhin/searxng-mcp";
outputs = { self, nixpkgs, searxng-mcp, ... }:
let
system = "x86_64-linux";
in {
nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
searxng-mcp.nixosModules.searxng-mcp
({ ... }: {
services.searxng-mcp.enable = true;
services.searxng-mcp.openFirewall = true;
services.searxng-mcp.listenAddress = "127.0.0.1";
services.searxng-mcp.port = 3344;
services.searxng-mcp.tools = ["search" "browse" "health"];
services.searxng-mcp.searxng = {
baseUrl = "http://localhost:8080";
defaultEngines = ["duckduckgo" "startpage"];
};
services.searxng-mcp.browse.backend = "obscura";
services.searxng-mcp.obscura = {
waitUntil = "load";
stealth = true;
};
})
];
};
};
}
学分
许可证
MIT。看 LICENSE.