mcp-searxng-local
This server provides local, zero-cost, and private web search and content extraction capabilities via a locally hosted SearXNG instance — no API keys required.
web_search / web_search_advanced — Search the web aggregating multiple engines (Google, DuckDuckGo, Brave, Wikipedia, arXiv), returning titles, URLs, snippets, direct answers, and infoboxes. web_search_advanced is semantically hinted for the LLM to apply filters more carefully (e.g., "articles from the last month only from arxiv.org").
Filter by category:
general,news,images,files,video,musicFilter by time range:
day,month, oryearInclude or exclude specific domains (e.g., only
github.com, excludepinterest.com)Filter by publication date range (ISO date, client-side)
Select specific search engines, set language (e.g.,
en-US), and control safe search levelPaginate results (up to 50 per page)
web_fetch — Extract clean text content from any webpage.
textmode: returns full page contenthighlightsmode: returns only the most relevant excerpts for a given query (~10x fewer tokens, ~98% smaller)Configurable character limit (100–50,000 characters)
Optimized handling for GitHub URLs
Ideal for reading articles, documentation, and blogs
The server runs locally, is configurable via environment variables, and supports fallback to public SearXNG instances.
Provides access to arXiv search results via a self-hosted SearXNG instance.
Provides access to Brave search results via a self-hosted SearXNG instance.
Provides access to DuckDuckGo search results via a self-hosted SearXNG instance.
Provides access to Google search results via a self-hosted SearXNG instance.
Integrates with SearXNG to perform web searches across multiple engines with automatic fallback and rate limit handling.
Provides access to Wikipedia search results via a self-hosted SearXNG instance.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-searxng-local search for latest AI news"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-searxng-local
MCP server for web search via SearXNG — zero API keys, zero cost, 100% local.
Prerequisites
Related MCP server: mcp_server_searXNG
Quick Start
git clone https://github.com/dduartee/mcp-searxng-local
cd mcp-searxng-local
npm install && npm run build
docker compose up -d
# Verify
curl -s "http://localhost:4000/search?q=test&format=json" | python3 -c "import sys,json; print(len(json.load(sys.stdin).get('results',[])), 'results')"For Termux (no Docker), see the Termux Install Guide.
Tools
Tool | Description |
| Search via Google, DuckDuckGo, Brave, Wikipedia, arXiv. Supports domain/date filters, engine selection. |
| Same as |
| Extract page content. |
See API Reference for full parameter tables.
Setup
opencode mcp add mcp-searxng-local -- node /home/user/mcp-searxng-local/dist/index.jsOr add to your MCP client config manually. See Install Guide for all clients (OpenCode, Claude Code, Cursor, VS Code, Windsurf, Zed).
Configuration
All env vars are optional — defaults work for local SearXNG on port 4000.
Env var | Default | Description |
|
| SearXNG host |
|
| SearXNG port |
|
| HTTP timeout (ms) |
| — | Comma-separated public SearXNG URLs (auto-retry when local engines are blocked) |
| — | GitHub PAT — raises API rate limit from 60 to 5000 req/h |
|
| Enable verbose logging |
Also accepts MCP_SEARCH_LOCAL_ prefix (e.g. MCP_SEARCH_LOCAL_SEARXNG_HOST).
The server loads .env files automatically via dotenv.
Troubleshooting
Symptom | Fix |
Tools don't appear | Run |
| SearXNG not running: |
| Auto-fallback handles this. Add |
Highlights returns full page | Use |
See Install Guide for full troubleshooting.
Documentation
Doc | Description |
Local, clone, global+plugin, and all MCP client configs | |
Parameter tables, return types, GitHub optimization | |
SearXNG native install on Android — no Docker | |
Request flow, design decisions, directory structure | |
JSON-RPC payloads, agent workflows, CLI testing | |
vs Exa, Brave, SearXNG raw, Chrome DevTools | |
Optimized GitHub URL handling in | |
What AI agents actually need from search | |
How to organize documentation in open source repos |
Contributing
See CONTRIBUTING.md for development setup, code style, and PR process. See CHANGELOG.md for release history.
License
MIT
Available Tools
3 toolsweb_fetchARead-onlyIdempotent
Extracts page content as clean text. Supports two modes: "text" (full page, default) and "highlights" (most relevant excerpts for a query, ~10x fewer tokens). Prefer "highlights" with a query for factual searches. Use "text" for deep analysis. Ideal for reading articles, documentation and blogs.
Inputs: url (required), mode, query, maxChars.
web_searchARead-onlyIdempotent
Web search via SearXNG (metasearch). Aggregates Google, DuckDuckGo, Brave, Wikipedia and more. Returns titles, URLs and snippets, plus direct answers and infoboxes when available. Supports category (news, images), time range (day, month, year), domain (include/exclude) filters, specific engines and safe search. Use for questions requiring up-to-date information from the internet.
Inputs: query (required), count, pageno, engines, +8 more.
web_search_advancedARead-onlyIdempotent
Advanced web search with full filter control: domains, exact dates, specific engines, categories, safe search. Use when you need precise filtering — e.g. "articles from the last month only from arxiv.org and github.com". Includes direct answers, infoboxes, suggestions and spelling corrections.
Inputs: query (required), count, pageno, engines, +8 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: web_fetch retrieves page content, web_search performs standard web search, and web_search_advanced offers granular filters. No overlap in functionality.
All tools follow the 'web_verb' pattern using snake_case, with 'web_search_advanced' being a clear extension. Consistent and predictable.
Three tools is perfectly scoped for a web search server: basic search, advanced search, and content fetching. Each tool earns its place without redundancy.
Covers the full search-fetch lifecycle: both basic and advanced search with filters, categories, and time ranges, plus page content extraction. No obvious gaps.
Maintenance
Related MCP Connectors
Web search API and MCP server for developers building AI agents.
Serper MCP — wraps the Serper Google Search API (serper.dev)
One MCP server for all web data. Scrape, search, crawl, and AI research in one install.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that wraps a local SearXNG instance to provide private, customizable web search capabilities. It enables AI assistants to perform queries with support for specific parameters like results limits, language, and time ranges.133 npmMIT
- AlicenseNot gradedqualityDmaintenanceA privacy-friendly web search MCP server using SearXNG, enabling searches across multiple engines and categories.1MIT
- AlicenseNot gradedqualityFmaintenanceAn MCP server that integrates the SearXNG API to provide web search with pagination, filtering, and URL content extraction.11 npmMIT
- AlicenseNot gradedqualityDmaintenanceFree web search MCP server using SearXNG, supporting web search, news search, and search summaries.MIT