@x-idra/mcp-server-searxng
Provides privacy-focused meta search capabilities through SearXNG, enabling web searches with support for multiple categories, languages, time ranges, safe search levels, and fallback SearXNG instances.
Click on "Install 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., "@@x-idra/mcp-server-searxngsearch the web for the latest AI news from this week"
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.
Fork of
@kevinwatt/mcp-server-searxng(MIT). Published as@x-idra/mcp-server-searxngbecause npm's latest release (0.3.9) mislabels a reachable SearXNG instance that returns 0 results (all scraper engines CAPTCHA-blocked) as"All SearXNG instances failed". Upstreammainalready fixed this (0.3.11 — areachedInstanceflag returns{results: []}instead of throwing) but has not published it to npm. This fork carries that fix, vendored into the Renfield backend image. All credit for the original server to kevinwatt; seeLICENSE.
SearXNG MCP Server
An MCP server implementation that integrates with SearXNG, providing privacy-focused meta search capabilities.
Features
Meta Search: Combines results from multiple search engines
Privacy-Focused: No tracking, no user profiling
Multiple Categories: Support for general, news, science, files, images, videos, and more
Language Support: Search in specific languages or all languages
Time Range Filtering: Filter results by day, week, month, or year
Safe Search: Three levels of safe search filtering
Fallback Support: Multiple SearXNG instances for reliability
Related MCP server: SearXNG MCP Server
Installation
npm install -g @kevinwatt/mcp-server-searxngUsage
Direct Run
mcp-server-searxngWith Dive Desktop
Click "+ Add MCP Server" in Dive Desktop
Copy and paste this configuration:
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"@kevinwatt/mcp-server-searxng"
]
}
}
}Click "Save" to install the MCP server
Tool Documentation
web_search
Execute meta searches across multiple engines
Inputs:
query(string): Search termspage(number, optional): Page number (default: 1)language(string, optional): Language code (e.g., 'en', 'all', default: 'all')categories(array, optional): Search categories (default: ['general'])Available: "general", "news", "science", "files", "images", "videos", "music", "social media", "it"
time_range(string, optional): Time filter (all_time/day/week/month/year, default: 'all_time')safesearch(number, optional): Safe search level (0: None, 1: Moderate, 2: Strict, default: 1)
Behavior:
Instances listed in
SEARXNG_INSTANCESare tried in order; the first one that answers with results wins.An instance that is reachable but has no matches returns
No results found for "<query>".— an empty search is a normal result, not an error.The error
All SearXNG instances failedis returned only when no instance was reachable at all: connection errors, non-2xx responses, or replies that aren't a valid SearXNG JSON search response.
Development
git clone https://github.com/kevinwatt/mcp-server-searxng.git
cd mcp-server-searxng
npm install
npm run build # compiles to dist/src/
npm test # unit tests; HTTP is mocked, no live instance needed
node dist/src/index.js # run the server on stdioRun a single test case with npm test -- -t "should resolve urls correctly".
License
This MCP server is licensed under the MIT License. See the LICENSE file for details.
Prerequisites
You need a local SearXNG instance running. To set it up:
Run SearXNG with Docker
Quick Start
# Create config directory
mkdir -p searxng
# Create config file
tee searxng/settings.yml << EOF
use_default_settings: true
server:
bind_address: "0.0.0.0"
secret_key: "CHANGE_THIS_TO_SOMETHING_SECURE" # Generate a random key
port: 8080
search:
safe_search: 0
formats:
- html
- json
engines:
- name: google
engine: google
shortcut: g
- name: duckduckgo
engine: duckduckgo
shortcut: d
- name: bing
engine: bing
shortcut: b
server.limiter: false
EOF
# Start container
docker run -d \
--name searxng \
-p 8080:8080 \
-v "$(pwd)/searxng:/etc/searxng" \
searxng/searxngTest Search Function
# Test JSON API with curl
curl -v 'http://localhost:8080/search?q=test&format=json'
# Or visit in browser
http://localhost:8080/search?q=testContainer Management
# Stop container
docker stop searxng
# Remove container
docker rm searxng
# View container logs
docker logs searxng
# Enable auto-start on boot
docker update --restart always searxngThe --restart always flag ensures that:
Container starts automatically when Docker daemon starts
Container restarts automatically if it crashes
Container restarts automatically if it is stopped unless explicitly stopped by user
Custom Configuration
Edit searxng/settings.yml to:
Modify search engine list
Adjust security settings
Configure UI language
Change API limits
For detailed configuration options, see SearXNG Documentation
Environment Variables
SEARXNG_INSTANCES: Comma-separated list of SearXNG instance URLs, tried in order as fallbacks. An entry may include a base path for path-based reverse proxy routing (e.g.https://example.com/searx), with or without a trailing slash. Default:http://localhost:8080SEARXNG_USER_AGENT: Custom User-Agent header for requests Default:MCP-SearXNG/1.0NODE_TLS_REJECT_UNAUTHORIZED: Set to '0' to bypass SSL certificate verification (for development with self-signed certificates) Default: undefined (SSL verification enabled)
Example configuration with all options:
{
"mcpServers": {
"searxng": {
"name": "searxng",
"command": "npx",
"args": [
"-y",
"@kevinwatt/mcp-server-searxng"
],
"env": {
"SEARXNG_INSTANCES": "http://localhost:8080,https://searx.example.com",
"SEARXNG_USER_AGENT": "CustomBot/1.0",
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
}
}⚠️ Warning: Disabling SSL certificate verification is not recommended in production environments.
Available Tools
1 toolweb_searchA
Performs a web search using SearXNG, ideal for general queries, news, articles and online content. Supports multiple search categories, languages, time ranges and safe search filtering. Returns relevant results from multiple search engines combined.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| query | Yes | Search query | |
| language | No | Search language code (e.g. 'en', 'zh', 'jp', 'all') | all |
| categories | No | ||
| safesearch | No | 0: None, 1: Moderate, 2: Strict | |
| time_range | No | all_time |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that results come from multiple search engines combined and that filtering options are supported, but it does not mention limitations, rate limits, result count, or whether the operation is read-only. This is adequate but not deeply transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose, supported controls, and output behavior. The most important information is front-loaded, with no filler or repeated schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter tool with no output schema and no annotations, the description covers purpose and high-level behavior but not result format, pagination behavior, or edge cases like empty results. It is sufficient for basic invocation but leaves some context to be inferred.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the schema already documents query, page, language, and safesearch values. The description adds a high-level statement that categories, languages, time ranges, and safe search are supported, but it does not add details beyond the schema. The generic references are not enough to meaningfully augment the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Performs a web search using SearXNG', and enumerates concrete use cases such as general queries, news, articles, and online content. It also distinguishes itself from a plain search by noting results come from multiple search engines combined. With no sibling tools to contrast against, this is maximum clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the tool is 'ideal for general queries, news, articles and online content', which provides clear usage context. It does not state explicit when-not-to-use conditions or alternatives, but that is reasonable since no sibling tools are listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
With only one tool, there is no possibility of confusion or overlap between tools. The single tool's purpose is clearly defined as web search.
The tool name 'web_search' follows a consistent verb_noun pattern, which is clear and intuitive. With only one tool, naming consistency is trivially maintained.
A single tool feels thin for a server, but it is arguably appropriate for a focused SearXNG search interface. The count is borderline on the lower end of the typical 3-15 range.
The web_search tool covers the core search functionality with parameters for categories, languages, time ranges, and safe search. It lacks additional SearXNG features like search suggestions, but the primary use case is fully supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Multi-engine search for AI agents. Trust scoring, local corpus, MCP-native. Self-hostable, BYOK.
Search the web, images, videos, news, and local businesses with robust filters, freshness controls…
DuckDuckGo search as JSON. Ranked results, ads in their own array, 37 regions.
Search the agentic web. 4,100+ sites, 11 tools incl. check_url + verify_mcp for probe-before-use.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables privacy-respecting web searches through SearXNG metasearch engine with customizable parameters like language, time range, categories, and engines. Supports safe search levels, pagination control, and basic authentication for secure search operations.12MIT
- AlicenseAqualityDmaintenanceEnables web search, image search, and news search through a self-hosted SearXNG instance. Provides privacy-focused meta-search capabilities aggregating results from multiple search engines.31MIT
- FlicenseAqualityDmaintenanceEnables web search capabilities via a SearXNG instance, allowing for filtered searches across categories like news, images, and science. It supports multi-language queries, time-range filtering, and safe search options to provide formatted results with metadata.1
- FlicenseAqualityDmaintenanceEnables privacy-respecting web, image, video, and news searches through SearxNG metasearch engine, with options for URL fetching and time filtering.5
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ebongard/renfield-mcp-searxng'
If you have feedback or need assistance with the MCP directory API, please join our Discord server