SearXNG

listing.by

Search the web and read URLs through your own SearXNG instance, with pagination, filters and query suggestions.

state.local.long (state.local.title)listing.badge.runs_with

listing.install

listing.local.explain

npx -y mcp-searxng

listing.local.needs listing.local.note

  • SEARXNG_URL URL of your SearXNG instance.

listing.share.h

listing.share.p_local

mcp.tc/i/searxng

listing.about

Connects an MCP client to a SearXNG instance you run or trust. The assistant can search with pagination and filters, get query suggestions, inspect the instance's categories and engines, and read a known URL as text or Markdown, including HTML and PDF content.

Runs locally over STDIO with npx -y mcp-searxng and needs Node.js 22 or later. A Docker image is also available, and a Streamable HTTP mode can be enabled. Set SEARXNG_URL to your SearXNG base URL, which must have JSON search enabled. No search vendor API key is needed. Optional Basic Auth variables exist for protected instances.

listing.can

  • Search the web through SearXNG with pagination and filters
  • Get query suggestions to complete or refine a search
  • Inspect instance categories, engines and defaults
  • Read a known URL as text or Markdown
  • Read bounded PDF text and selected page sections

listing.tools

listing.notools.local

listing.prompts

  • Search for the latest SearXNG release notes and summarize them.

  • Read https://example.com/article and give me the key points.

  • Find recent sources on Node.js 22 features, page 2 of results.

  • Which search engines and categories does my SearXNG instance offer?

listing.setup.h

listing.setup.local

Claude Code

  1. Run this in a terminal, in your project folder:
claude mcp add --transport stdio searxng --env "SEARXNG_URL=<YOUR_SEARXNG_URL>" -- npx -y mcp-searxng
  1. Start Claude Code and type /mcp. searxng should show as connected.

Add --scope user to make it available in every project. Replace the placeholders with your own values.

Claude Desktop

  1. Open Settings → Developer → Edit Config. It opens claude_desktop_config.json. Add:
claude_desktop_config.json
{
  "mcpServers": {
    "searxng": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-searxng"
      ],
      "env": {
        "SEARXNG_URL": "<YOUR_SEARXNG_URL>"
      }
    }
  }
}
  1. Save the file and restart Claude Desktop. Replace the placeholders with your own values.

Needs Node.js on your computer. The file lives in ~/Library/Application Support/Claude/ on macOS and %APPDATA%\Claude\ on Windows.

Cursor

Or add it by hand to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (this project):

mcp.json
{
  "mcpServers": {
    "searxng": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-searxng"
      ],
      "env": {
        "SEARXNG_URL": "<YOUR_SEARXNG_URL>"
      }
    }
  }
}

Needs Node.js on your computer. Replace the placeholders with your own values.

VS Code

Or from a terminal:

code --add-mcp '{"name":"searxng","type":"stdio","command":"npx","args":["-y","mcp-searxng"],"env":{"SEARXNG_URL":"<YOUR_SEARXNG_URL>"}}'

Or commit it to the repo in .vscode/mcp.json:

.vscode/mcp.json
{
  "servers": {
    "searxng": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-searxng"
      ],
      "env": {
        "SEARXNG_URL": "<YOUR_SEARXNG_URL>"
      }
    }
  }
}

Needs Node.js on your computer.

Devin Desktop

  1. Add it to ~/.config/devin/mcp_config.json (macOS and Linux) or %APPDATA%\devin\mcp_config.json (Windows):
mcp_config.json
{
  "mcpServers": {
    "searxng": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-searxng"
      ],
      "env": {
        "SEARXNG_URL": "<YOUR_SEARXNG_URL>"
      }
    }
  }
}
  1. Refresh the MCP server list in Cascade. Replace the placeholders with your own values.

Devin Desktop is the new name for Windsurf.

Codex

codex mcp add searxng --env "SEARXNG_URL=<YOUR_SEARXNG_URL>" -- npx -y mcp-searxng

Or edit ~/.codex/config.toml directly:

config.toml
[mcp_servers.searxng]
command = "npx"
args = ["-y", "mcp-searxng"]
env = { SEARXNG_URL = "<YOUR_SEARXNG_URL>" }

Needs Node.js on your computer. Replace the placeholders with your own values.

Gemini CLI

gemini mcp add -e "SEARXNG_URL=<YOUR_SEARXNG_URL>" searxng npx -- -y mcp-searxng

This adds it to the current project. Add -s user to use it everywhere.

Any client

Most clients that start local servers accept this shape:

{
  "mcpServers": {
    "searxng": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-searxng"
      ],
      "env": {
        "SEARXNG_URL": "<YOUR_SEARXNG_URL>"
      }
    }
  }
}

Zed puts servers under context_servers in its settings, with the same command, args and env fields.

Needs Node.js on your computer. Replace the placeholders with your own values.

listing.faq

Can I paste mcp.tc/i/searxng into my MCP client?

No. SearXNG runs on your own computer, started by your client, so it has no web address to connect to. The quick link is the page to share; the install command is npx -y mcp-searxng.

Does SearXNG need an API key?

No. It reads SEARXNG_URL from its environment; the setup steps show where to set it.

Is SearXNG a remote or a local server?

Local. Your client starts it as a process on your computer with npx -y mcp-searxng, which needs Node.js.

What can SearXNG do?

You can search the web through SearXNG with pagination and filters, get query suggestions to complete or refine a search and inspect instance categories, engines and defaults.

Which clients can use it?

Any client that starts local servers: Claude Code, Claude Desktop, Cursor, VS Code, Devin Desktop, Codex, Gemini CLI, Zed and others. claude.ai and ChatGPT only connect to remote servers.

Who wrote this page?

mcp.tc's robot read SearXNG's public metadata (its package and repository pages), and an AI model drafted the text from it. A person reviews anything the checks can't confirm. The text can still be wrong, so if you spot a mistake, use Report this listing on this page.

listing.em.h

listing.em.lead_local listing.em.how

listing.em.badge

em.prev_lightem.prev_dark
Markdown
[![SearXNG on mcp.tc](https://mcp.tc/i/searxng/badge.svg)](https://mcp.tc/i/searxng)
HTML
<a href="https://mcp.tc/i/searxng"><img src="https://mcp.tc/i/searxng/badge.svg" alt="SearXNG on mcp.tc" height="20"></a>

listing.em.badge_note

listing.em.widget

HTML
<script src="https://mcp.tc/w/searxng.js" async></script>

listing.em.widget_note

iframe

HTML
<iframe src="https://mcp.tc/embed/searxng" title="SearXNG on mcp.tc" width="420" height="200" loading="lazy" allow="clipboard-write" style="border:0;border-radius:8px;max-width:100%"></iframe>

listing.em.iframe_note

JSON

listing.em.json_local

https://mcp.tc/i/searxng.json

listing.em.fields

listing.disclaimer_checked