SearXNG MCP Server
An MCP server for private web search through your SearXNG instance: search with pagination and filters, page and PDF reading
Medium risk
We rate an entry medium when the tool runs code, makes network calls or reads project files. Check what exactly it does before installing.
Why this level
- The server goes online and reads page and PDF content
- Search results depend on your SearXNG instance
Install
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/searxng-mcp-serverDetects the agents on your machine, checks the risk and pins the version.
Other ways to install
Run in a terminal
claude mcp add --transport stdio --env 'SEARXNG_URL=<SEARXNG_URL value>' searxng -- npx -y mcp-searxngOr add to the file .mcp.json, in the project
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"mcp-searxng"
],
"env": {
"SEARXNG_URL": "<SEARXNG_URL value>"
}
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
SEARXNG_URLrequired
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
The button opens the agent and offers to add the server. If nothing happens, copy the config below.
Add to the file ~/.cursor/mcp.json, for all projects
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"mcp-searxng"
],
"env": {
"SEARXNG_URL": "<SEARXNG_URL value>"
}
}
}
}If the file already exists, add the server inside the mcpServers key. For a single project, put the same block into .cursor/mcp.json.
Keys and settings
SEARXNG_URLrequired
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
The button opens the agent and offers to add the server. If nothing happens, copy the config below.
Run in a terminal
code --add-mcp '{"name":"searxng","type":"stdio","command":"npx","args":["-y","mcp-searxng"],"env":{"SEARXNG_URL":"<SEARXNG_URL value>"}}'Or add to the file .vscode/mcp.json, in the project
{
"servers": {
"searxng": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-searxng"
],
"env": {
"SEARXNG_URL": "<SEARXNG_URL value>"
}
}
}
}If the file already exists, add the server inside the servers key.
Keys and settings
SEARXNG_URLrequired
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Run in a terminal
codex mcp add searxng --env 'SEARXNG_URL=<SEARXNG_URL value>' -- npx -y mcp-searxngOr add to the file ~/.codex/config.toml, for all projects
[mcp_servers.searxng]
command = "npx"
args = ["-y", "mcp-searxng"]
env = { SEARXNG_URL = "<SEARXNG_URL value>" }If the file already exists, append the block to the end.
Keys and settings
SEARXNG_URLrequired
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file ~/.gemini/settings.json, for all projects
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"mcp-searxng"
],
"env": {
"SEARXNG_URL": "<SEARXNG_URL value>"
}
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
SEARXNG_URLrequired
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file ~/.config/devin/mcp_config.json, for all projects
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"mcp-searxng"
],
"env": {
"SEARXNG_URL": "<SEARXNG_URL value>"
}
}
}
}If the file already exists, add the server inside the mcpServers key. Legacy Cascade keeps the MCP config in ~/.codeium/windsurf/mcp_config.json.
Keys and settings
SEARXNG_URLrequired
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Formerly Windsurf.
Add to the file cline_mcp_settings.json, for all projects
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"mcp-searxng"
],
"env": {
"SEARXNG_URL": "<SEARXNG_URL value>"
}
}
}
}If the file already exists, add the server inside the mcpServers key. Open the settings file in Cline: MCP Servers tab, Configure MCP Servers.
Keys and settings
SEARXNG_URLrequired
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file .roo/mcp.json, in the project
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"mcp-searxng"
],
"env": {
"SEARXNG_URL": "<SEARXNG_URL value>"
}
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
SEARXNG_URLrequired
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
A fork of Roo Code, same .roo folders.
Add to the file opencode.json, in the project
{
"mcp": {
"searxng": {
"type": "local",
"command": [
"npx",
"-y",
"mcp-searxng"
],
"environment": {
"SEARXNG_URL": "<SEARXNG_URL value>"
}
}
}
}If the file already exists, add the server inside the mcp key.
Keys and settings
SEARXNG_URLrequired
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file ~/.config/zed/settings.json, for all projects
{
"context_servers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"mcp-searxng"
],
"env": {
"SEARXNG_URL": "<SEARXNG_URL value>"
}
}
}
}If the file already exists, add the server inside the context_servers key.
Keys and settings
SEARXNG_URLrequired
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add to the file .codeassistant/mcp.json, in the project
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"mcp-searxng"
],
"env": {
"SEARXNG_URL": "<SEARXNG_URL value>"
}
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
SEARXNG_URLrequired
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Add the MCP server to your client config: command npx, args -y mcp-searxng, and the SEARXNG_URL variable with your SearXNG instance URL.
Other ways from the author
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": ["-y", "mcp-searxng"],
"env": { "SEARXNG_URL": "https://search.example.com" }
}
}
}Replace the URL with your SearXNG instance. Needs Node.js 22 or later.
This is third-party code. Review the repository files before installing.
What it does
The server gives an agent web search through a SearXNG instance you run or trust. It searches with pagination, filters and direct answers, and returns results as text or JSON. Beyond search, it reads HTML and structured page text, extracts bounded text from PDFs and shows headings or selected sections. It runs over local stdio or Streamable HTTP, with optional protection via a static token or OAuth.
Who it is for. For developers and analysts who need private agent web search without a commercial search API.
Good fit when
- You need agent web search through your own SearXNG instance
- You need to read pages and extract text from linked PDFs
- You care about privacy and control over the search backend
Not a fit when
- You have no SearXNG instance and no interest in running one
- You need search in private databases rather than the open web
Example request
Search the web for recent material on this topic and read the first two pagesLimitations
The server does not search on its own: it needs a working SearXNG instance whose URL is set via the SEARXNG_URL variable. The npx and npm paths need Node.js 22 or later, and the Docker image needs environment forwarding. PDF text extraction is bounded in size.
How to disable. Remove the server entry from your MCP client config and uninstall the package with npm uninstall -g mcp-searxng.
MCP
- Transport
- stdio, http
- Authentication
- not required
| Environment variables | |
|---|---|
| SEARXNG_URL required | Base URL of your SearXNG instance |
| MCP_HTTP_PORT | Port for Streamable HTTP mode, left unset for local stdio |
Security check
- The server goes online and reads page and PDF content
- Search results depend on your SearXNG instance
README in short
The README describes an MCP server that gives an agent private web search through a SearXNG instance. It offers search with pagination and filters, page and PDF reading, instance capability discovery and query suggestions. It installs via npx, global npm or Docker, with the instance URL set in SEARXNG_URL. It runs over stdio and Streamable HTTP. MIT licensed.
FAQ
Do I need my own SearXNG instance?
Yes, the server talks to a SearXNG instance you run or trust. Its URL is set in SEARXNG_URL.
Which transports are supported?
Local stdio to run next to the client and Streamable HTTP, with optional token or OAuth protection.
Related
CLI, skill and Python library for browser control: the agent clicks, fills forms and reads pages over CDP
A skill that gathers the last 30 days of discussion on a topic from Reddit, X, YouTube, HN, Polymarket and GitHub into one brief
The Chrome DevTools team's official MCP server: the agent drives a live Chrome, reads network and console, and records performance traces
A fast Rust CLI for agent browser automation: accessibility snapshots with element refs, an MCP server and skills