
mcp-searxng, a community MCP server for SearXNG
Gives your AI assistant free, private web search and page reading through a SearXNG instance you run or trust.
mcp-searxng is a community server that lets Claude, Cursor and other assistants search the web and read pages through SearXNG, a free metasearch engine. It costs nothing and needs no search API key. You do need a SearXNG instance with JSON output turned on, either your own or a public one. How private it is depends on that instance, because whoever runs it sees your searches.
Good for
- People who self-host SearXNG and want Claude or Cursor to search through it
- Local model users in LM Studio or llama.cpp who need web search with no API key
- Developers who want their coding assistant to look up docs and read pages, including PDFs
- Privacy-minded users who do not want searches going to a paid search vendor
Works in
8 supported · 4 should work
Tap an app to see how to set it up and any known problems.
The setup guide gives one-line commands for npx, Docker and an HTTP server. GitHub
The README's main example is a Claude Desktop config with your SearXNG address. GitHub
The setup guide covers Cursor's config file with npx or Docker. GitHub
The setup guide covers VS Code with npx, Docker or an HTTP server. GitHub
The setup guide covers Windsurf with npx, Docker or HTTP. GitHub
The setup guide gives Codex config entries for npx, Docker and HTTP. GitHub
The setup guide covers Cline with npx, Docker or HTTP. GitHub
The setup guide covers OpenCode with npx, Docker or HTTP. GitHub
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install mcp-searxng
Claude Code
- 1
Copy this prompt.
Add the mcp-searxng server to Claude Code. Run this command: claude mcp add --scope user --env SEARXNG_URL=https://search.example.com --transport stdio searxng -- npx -y mcp-searxng Ask me for SEARXNG_URL and only put the values in that config, nowhere else. Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js 22+, A SearXNG instance with JSON output.
Read-only mode: Nothing to switch on: every tool only searches or reads.
Replace https://search.example.com with the base address of your SearXNG instance. SearXNG must have json in its search formats, or searches fail with 403.
Leave MCP_HTTP_PORT unset for this setup; setting it switches the server to HTTP mode. To use a SearXNG login, put it in the address as https://user:pass@host.
From the project README. Source.
Tools
Searches the web through your SearXNG instance
Runs a web search through SearXNG and returns results, with options for page, time range, language, safe search, categories and engines.
Try: “Search for reviews of the Framework 13 laptop from the past month.”
Network ·
searxng_web_searchReads a web page or PDF and returns its text
Fetches a page and turns it into readable text, or extracts text from a PDF. It can return just the headings, one section or a slice of a long page.
Try: “Read https://docs.searxng.org/admin/settings/settings.html and show me the headings.”
Network ·
web_url_readUsed by the assistant behind the scenes
Suggests better ways to phrase a search
Gets autocomplete suggestions from SearXNG to complete or refine a query.
Try: “What are common searches that start with 'self-host searx'?”
Network ·
searxng_search_suggestionsShows which search categories and engines your instance offers
Checks your SearXNG instance for its categories, engines, defaults and plugins, so searches can target the right ones.
Try: “Which search engines are enabled on my SearXNG instance?”
Network ·
searxng_instance_info
Read from the source code
Pros and cons
Good
- Free, with no search API key.
- Can only search and read, so it cannot change anything.
- Reads web pages and PDF text as well as searching.
- Works with your own SearXNG for searches nobody else sees.
- Runs with npx or Docker, or as an HTTP service with a token or sign-in.
- By far the most starred SearXNG server, with frequent releases and quick fixes.
Watch out
- You need a SearXNG instance with JSON output turned on.
- Public instances can log your searches and may block or limit you.
- Frequent releases have occasionally broken setups.
- Several past security advisories in page reading; keep it updated.
- The npx setup needs Node.js 22 or later.
Permissions
low risk · 4 things to watch · 9 advisories
Low risk
It cannot change anything, but your searches go to whoever runs the SearXNG instance, and old versions had page-reading security bugs.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only modeHow to turn it on
Watch out for
A public instance can see your searches
Whoever runs the SearXNG instance receives every query and may log it. Use your own instance for anything sensitive. github.com
Page reading had several security fixes
Older versions could be tricked into reading internal network addresses. Stay on a current release. github.com
HTTP mode has no login by default
If you run it as a network service, turn on hardened mode with a token before others can reach it. github.com
The SearXNG address can hold a password
If your instance uses a login, it sits inside the address in your config. Treat that config file as a secret. github.com
Security advisories
9 known advisories, all fixed in a newer version.
- Brotli decoder vulnerability in the Node.js runtime bundled with Docker imageshigh · Fixed in 2.8.1 · GHSA-grr6-cg2x-337c
- SearXNG MCP Server: DNS-resolved Private Hostname SSRF in web_url_readhigh · Fixed in 1.7.1 · GHSA-mrvx-jmjw-vggc
- SearXNG MCP Server: Unbounded Response Body Read Bypasses URL Size Limit in web_url_readhigh · Fixed in 1.7.1 · GHSA-xcqx-9jf5-w339
- Outbound proxy credentials leak past the diagnostic sanitizer into logs and multi-instance client errorsmedium · Fixed in 2.4.0 · GHSA-8hxr-fc3p-768q
- web_url_read SSRF filter can be bypassed with IPv4-embedded IPv6 (NAT64 / 6to4 / IPv4-compatible)medium · Fixed in 2.2.0 · GHSA-f653-hpvm-8rfh
Show all 9Show fewer
- web_url_read does not block IPv6 site-local addresses (fec0::/10), allowing SSRF to internal servicesmedium · Fixed in 2.2.0 · GHSA-q9wf-wwq5-qmjf
- SearXNG Basic Authentication Credentials Exposed Through MCP Logs and JSON-RPC Error Responsesmedium · Fixed in 1.12.0 · GHSA-hjwh-xvfw-qrwj
- SearXNG MCP Server: Additional hardened-mode SSRF bypassesmedium · Fixed in 1.2.1 · GHSA-wppf-h75h-6pm6
- SearXNG MCP Server is Vulnerable to SSRF in web_url_read: the internal-address guard is disabled by default (MCP_HTTP_HARDEN off)medium · Fixed in 1.2.1 · GHSA-q87f-qc2r-2gw4
Technical details
| Turning on read-only | All four tools only search and read; nothing is written anywhere. Private and internal addresses are blocked for page reads unless MCP_HTTP_ALLOW_PRIVATE_URLS=true. |
|---|---|
| Talks to | Your SearXNG instance. Any website the assistant asks it to read |
| Sign-in and keys | SEARXNG_URL (which may embed Basic Auth credentials) in your client config. |
Alternatives
Use mcp-searxng if you already have a SearXNG instance; it is the most used and most maintained option. Pick searxNcrawl if you also want deeper page crawling, or SearXNG HTTP MCP if you want SearXNG and the server in one Docker image.
| Server | Official | Runs | Includes SearXNG | GitHub stars |
|---|---|---|---|---|
| mcp-searxngThis page | Community | Local | No | 1.3K |
| searxNcrawl | Community | Local | – | 183 |
| searxng-mul-mcp | Community | – | – | 104 |
| SearXNG HTTP MCP | Community | Local | Yes | 13 |
What people say
People like that it works well and gets fixed fast, and mostly trip over SearXNG's own JSON setting.
What people like
- Long-time users say it works well.
- The maintainer replies fast and often ships fixes the same day.
- Requested features, such as getting past Cloudflare checks, get built.
Common complaints
- New users hit 403 errors until they turn on JSON output in SearXNG.
- Frequent releases have occasionally broken things, such as a version that would not start.
- One release made page reading return garbled output until it was fixed.
In their words
“Hi, thank you for this project! I've been using it for a while and it works great.”billy4479GitHub issueOct 2025
“I want to point out that I had the exact same error and had to add the `json` to the formats in the search engine and worked.”0x00clGitHub issueMay 2026
“Recently I noticed that something broke in `web_url_read` tool, when my model is calling it all I get is nonsense binary output.”igor725
Questions
Is there an official SearXNG MCP server?
No. The SearXNG project does not publish one. mcp-searxng is a community server and the most starred option by a wide margin.
Is it free?
Yes. It is open source and needs no search API key. You only need a SearXNG instance, which is also free to run.
Do I need to run my own SearXNG?
No, but it is the better choice. A trusted public instance works, but its operator sees your searches and can limit or block you.
Why do I get 403 Forbidden?
Your SearXNG instance probably has JSON output turned off. Add json to the search formats in SearXNG's settings and restart it. A working search page in the browser does not mean JSON works.
Is it private?
Only as private as the SearXNG instance. With your own instance, no search company sees who is asking. With a public one, the operator can log every query.
Can it read PDFs and full web pages?
Yes. It turns web pages into text and extracts text from PDFs up to 500 pages. Scanned PDFs without a text layer cannot be read.
Can it get past Cloudflare checks?
Yes, if you also run FlareSolverr or Byparr and point the server at them. Without one, sites that show a browser check return an error.
Does it work with local models?
Yes. People use it with LM Studio and llama.cpp's server, since it needs no paid API.
How do I add it to Claude Desktop or Cursor?
Use the steps in the install box above, and replace the example address with your SearXNG URL.
Examples
Search the web and read the best source
Search for SearXNG documentation and read the most relevant result.
Read an academic PDF that sits behind a Cloudflare check
SourceGive a local model in LM Studio private web search
SourceLook up recent news on a topic
Find this week's news about the Node.js 24 release and summarise it with links.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
mcp-searxng- Registry
- npm
- Transport
- stdio, Streamable HTTP
- Auth
- None
- Version
- 2.9.0
- License
- MIT
- Last commit
- Oct 27, 2026
- Open issues
- 1
- Listed in
- Official MCP registry
Other SearXNG MCP servers
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 12Hide
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com