SearXNG MCP Server
This server provides privacy-focused web search capabilities through SearXNG metasearch engine, enabling Claude to search across multiple engines without tracking or data collection.
Key Capabilities:
• Quick Web & News Search - Perform targeted searches for general web content or news articles with up to 50 results, optionally specifying search engines (Google, Bing, DuckDuckGo, Brave, etc.)
• Media Search - Find images and videos with thumbnail previews and source URLs using the dedicated search_media tool
• Deep Research & Analysis - Conduct comprehensive research using the research_topic tool, which runs 2-6 searches across multiple engines, deduplicates results, and gathers 15-50 unique sources. Claude automatically analyzes, cross-references, and synthesizes findings into detailed briefings with executive summaries, confidence assessments, and contradiction analysis
• Privacy-First Architecture - All searches are routed through a self-hosted SearXNG instance that aggregates results without tracking or data collection
• Multi-Engine Aggregation - Combines results from Google, Bing, DuckDuckGo, Brave, Wikipedia, YouTube, and other engines simultaneously
• Flexible Configuration - Supports customizable search engines, result limits, categories (general/news), and research depth levels (quick/standard/deep)
• Easy Deployment - Set up quickly using Docker and Docker Compose
Access to Brave search results through SearXNG's aggregated search functionality
Access to DuckDuckGo search results through SearXNG's aggregated search functionality
Access to Google search results through SearXNG's aggregated search functionality
Provides privacy-focused web search capabilities through SearXNG metasearch engine, enabling web, image, video, and news searches across multiple search engines without tracking
Access to Wikipedia search results through SearXNG's aggregated search functionality
Access to YouTube video search results through SearXNG's aggregated search functionality
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., "@SearXNG MCP Serverresearch the latest developments in quantum computing"
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.
🔍 SearXNG MCP Server
A privacy-focused Model Context Protocol (MCP) server that provides Claude with web search capabilities through SearXNG metasearch engine.
✨ Features
🔒 Privacy-first - No tracking, no data collection via SearXNG
🌐 Multi-engine - Aggregates results from Google, Bing, DuckDuckGo, Brave, and more
🎯 Specialized search - Web, images, videos, and news search
⚡ Fast - Optimized with minimal tool set (4 tools)
🐳 Docker included - SearXNG instance setup included
🛠️ Easy setup - Python-based with UV package manager
Related MCP server: MCP Deep Search
📦 Installation
Prerequisites
Python 3.10 or higher
Docker and Docker Compose
Git
Quick Install
1. Clone repository:
git clone https://github.com/netixc/SearxngMCP.git
cd SearxngMCP2. Configure SearXNG:
Edit the following files with your settings:
docker-compose.yml- ReplaceYOUR_IPwith your server's IP addressdocker-compose.yml- ReplaceCHANGE_THIS_SECRET_KEYwith a secret keysearxng/settings.yml- ReplaceCHANGE_THIS_TO_YOUR_OWN_SECRET_KEYwith the same secret keysearxng-config/config.json- ReplaceYOUR_IPwith your server's IP address
Generate a secret key:
openssl rand -hex 323. Start SearXNG instance:
docker compose up -dSearXNG will be available at http://YOUR_IP:8080
4. Install MCP server (using UV - recommended):
# Create venv and install
uv venv
source .venv/bin/activate # Linux/macOS
uv pip install -e ".[dev]"5. Verify installation:
# Check SearXNG is running
curl http://YOUR_IP:8080⚙️ Configuration
MCP Client Setup
Add to your MCP settings (e.g., Claude Desktop config):
{
"mcpServers": {
"searxng": {
"command": "/absolute/path/to/SearxngMCP/run-server.sh"
}
}
}SearXNG Configuration
The SearXNG instance is configured via searxng/settings.yml:
Default engines: Google, Bing, DuckDuckGo, Brave, Wikipedia, YouTube
JSON API enabled for MCP access
Privacy features enabled (no tracking)
Accessible on your LAN at YOUR_IP:8080
IMPORTANT: Before starting Docker, replace the following in your config files:
docker-compose.yml: ReplaceYOUR_IPandCHANGE_THIS_SECRET_KEYsearxng/settings.yml: ReplaceCHANGE_THIS_TO_YOUR_OWN_SECRET_KEYsearxng-config/config.json: ReplaceYOUR_IP
Generate secret key: openssl rand -hex 32
MCP Server Configuration
Edit searxng-config/config.json (replace YOUR_IP with your server's IP):
{
"searxng": {
"url": "http://YOUR_IP:8080",
"timeout": 10
},
"logging": {
"level": "INFO",
"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
"file": null
}
}🔧 Available Tools
The server provides 3 optimized tools designed for efficient research:
1. search - Quick Web/News Search
Quick single search for web or news content.
Use when:
Need quick information or simple lookup
User asks for a basic web search
Looking for news on a topic
Parameters:
query*- What to search forcategory- "general" (default) or "news"engines- Optional: Specific engines (e.g., "google,bing")max_results- Number of results (default: 10, max: 50)
Example:
User: What's the latest Python release?
Claude: [Calls search("latest Python release", category="general")]2. search_media - Images & Videos
Search for images or videos.
Use when:
User wants to find images or photos
Looking for video content
"show me pictures of..." or "find videos about..."
Parameters:
query*- What to findmedia_type- "images" (default) or "videos"engines- Optional: Specific enginesmax_results- Number of results (default: 10, max: 50)
Example:
User: Show me pictures of Northern Lights
Claude: [Calls search_media("Northern Lights", media_type="images")]3. research_topic - Deep Research ⭐
Multi-search research with automatic analysis and synthesis.
Use when:
User wants comprehensive research or briefing
Need to validate information across multiple sources
User asks to "research", "investigate", or "analyze"
Creating detailed reports with cross-referenced sources
What it does:
Runs 2-6 searches automatically using different strategies
Searches multiple engines (Google, Bing, DuckDuckGo, Brave, Wikipedia)
Combines general web + news sources
Deduplicates results across all searches
Returns 15-50 UNIQUE sources
Instructs Claude to analyze and synthesize (not just list sources)
Critical behavior: After gathering sources, Claude is instructed to:
Read and analyze ALL sources
Cross-reference claims across sources
Identify high-confidence facts (confirmed by many sources)
Note contradictions or single-source claims
Create comprehensive briefing with executive summary
Assess source quality and credibility
Parameters:
query*- Research topic or questiondepth- Research thoroughness:"quick"- 2 searches, ~15 unique sources"standard"- 4 searches, ~30 unique sources (recommended)"deep"- 6 searches, ~50 unique sources
Example:
User: Research the latest AI developments and give me a briefing
Claude: [Calls research_topic("latest AI developments 2025", depth="standard")]
Claude receives 32 unique sources, then synthesizes:
"# AI Developments Briefing (2025)
## Executive Summary
Based on analysis of 32 sources from Google, Bing, DuckDuckGo, and Wikipedia...
## Key Findings
✓ Major development 1 (HIGH CONFIDENCE - confirmed by 12 sources)
✓ Emerging trend 2 (MEDIUM - reported by 5 sources)
⚠ Claim 3 (LOW - single source, needs verification)
## Contradictions
Source A says X, but Sources B, C, D report Y...
## Source Quality
Most reliable: Google News (8 sources), Wikipedia (3 sources)
..."💡 Usage Examples
General search:
User: What is the latest news about AI?
Claude: [Calls search("latest AI news")]Image search:
User: Show me pictures of Northern Lights
Claude: [Calls search_images("Northern Lights")]Video search:
User: Find Python tutorial videos
Claude: [Calls search_videos("Python tutorial")]News search:
User: What's happening with climate change?
Claude: [Calls search_news("climate change")]🐳 Docker Management
Start SearXNG:
docker-compose up -dStop SearXNG:
docker-compose downView logs:
docker-compose logs -f searxngRebuild:
docker-compose down
docker-compose up -d --build🛠️ Development
Run tests:
pytestFormat code:
black .Type checking:
mypy .Lint:
ruff .🎯 Why Only 4 Tools?
This MCP server is optimized for efficiency:
Focused functionality - Each tool has a clear, distinct purpose
LLM-friendly - Tool descriptions include "Use this when..." guidance
Low context - Minimal tool set reduces token usage
Privacy-first - SearXNG aggregates without tracking
Unlike direct search engine APIs, SearXNG provides:
Privacy protection (no tracking)
Multi-engine aggregation
Self-hosted control
No API keys needed
📁 Project Structure
SearxngMCP/
├── docker-compose.yml # SearXNG Docker setup
├── searxng/
│ └── settings.yml # SearXNG configuration
├── src/searxng_mcp/
│ ├── server.py # Main MCP server
│ ├── config/ # Configuration handling
│ │ ├── models.py
│ │ └── loader.py
│ └── tools/ # Search tool implementations
│ └── search.py
├── searxng-config/
│ └── config.json # MCP configuration
├── run-server.sh # Server startup script
├── pyproject.toml # Dependencies
└── README.md📄 License
MIT License
🙏 Credits
SearXNG - Privacy-respecting metasearch engine
Model Context Protocol - MCP specification
Built with FastMCP
Available Tools
3 toolsresearch_topicA
Deep research with multiple searches and source validation.
Use this when:
User wants comprehensive research or briefing
Need to validate information across multiple sources
Looking for in-depth analysis
User asks to "research", "investigate", or "give me a briefing"
This tool runs 2-6 searches automatically using different strategies:
Searches multiple engines (Google, Bing, DuckDuckGo, Brave, Wikipedia)
Searches both general web and news sources
Deduplicates results across all searches
Returns 15-50 UNIQUE sources depending on depth
Perfect for creating comprehensive briefings with validated information.
Parameters: query* - Research topic depth - Research thoroughness: • "quick" - 2 searches, ~15 unique sources • "standard" - 4 searches, ~30 unique sources (recommended) • "deep" - 6 searches, ~50 unique sources
CRITICAL - After receiving sources, you MUST:
Read and analyze ALL sources provided (titles, URLs, content snippets)
Cross-reference claims across multiple sources
Identify facts confirmed by many sources (high confidence)
Note contradictions or single-source claims (lower confidence)
Synthesize findings into a comprehensive briefing with: • Executive summary of key findings • Main facts/developments (note how many sources confirm each) • Contradictions or uncertainties • Source quality assessment (which engines found what)
DO NOT just list the sources - you must analyze, validate, and synthesize them into actionable intelligence
Returns: Research briefing with analyzed, validated, cross-referenced information
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Research topic or question | |
| depth | No | Research depth | standard |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and excels by detailing behavioral traits: it runs 2-6 searches automatically using multiple engines and sources, deduplicates results, returns 15-50 unique sources based on depth, and includes critical post-processing steps like cross-referencing and synthesis. This provides rich context beyond basic functionality.
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?
The description is well-structured with clear sections (purpose, usage guidelines, behavioral details, parameters, critical instructions, returns) and front-loaded key information. It is appropriately sized for a complex tool, though some sentences in the 'CRITICAL' section could be more concise without losing clarity.
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?
Given the tool's complexity (multi-search research with validation), no annotations, and no output schema, the description is highly complete. It covers purpose, usage, detailed behavior, parameter semantics, and explicit post-processing requirements, providing all necessary context for an agent to invoke and use the tool effectively.
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?
The schema description coverage is 100%, so the baseline is 3. The description adds significant value by explaining the 'depth' parameter's semantics: mapping 'quick,' 'standard,' and 'deep' to specific search counts and source ranges, with 'standard' recommended. This enhances understanding beyond the schema's enum and description.
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 clearly states the tool performs 'deep research with multiple searches and source validation,' specifying the verb ('research') and resource ('sources'). It distinguishes from sibling tools like 'search' and 'search_media' by emphasizing comprehensive, multi-source validation rather than simple queries or media-specific searches.
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 explicitly states when to use this tool: for 'comprehensive research or briefing,' 'validate information across multiple sources,' 'in-depth analysis,' or when users ask to 'research,' 'investigate,' or 'give me a briefing.' It implicitly distinguishes from siblings by focusing on multi-engine, validated research rather than single searches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchA
Quick search for web or news content.
Use this when:
User asks for a simple web search or lookup
Need quick information, not comprehensive research
Looking for news articles on a topic
This runs a SINGLE search and returns up to max_results (default 10). For comprehensive research with multiple sources, use research_topic instead.
Parameters: query* - What to search for category - "general" for web search, "news" for news articles (default: general) engines - Optional: Specific engines (e.g., "google,bing") max_results - Number of results (default: 10, max: 50)
Returns: Search results with titles, URLs, and snippets
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| category | No | Search category | general |
| engines | No | Comma-separated engine list | |
| max_results | No | Maximum results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it 'runs a SINGLE search', returns 'up to max_results (default 10)', and specifies the return format ('Search results with titles, URLs, and snippets'). It doesn't mention rate limits, authentication needs, or error handling, keeping it from a perfect score.
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?
The description is well-structured with clear sections (purpose, usage guidelines, behavioral note, parameters, returns), front-loaded with the core purpose. Every sentence adds value—no redundancy or fluff—making it efficient and easy to parse.
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?
Given no annotations and no output schema, the description does a strong job covering purpose, usage, behavior, and parameters. It lacks details on error cases, pagination, or authentication, but for a search tool with 100% schema coverage and clear behavioral notes, it's nearly complete. A 5 would require output schema or more edge-case coverage.
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 description coverage is 100%, so the baseline is 3. The description adds minimal value beyond the schema: it clarifies 'category' options with examples ('general' for web, 'news' for news) and notes 'engines' as 'comma-separated', but doesn't provide additional semantic context like query formatting tips or engine-specific behaviors.
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 clearly states the tool performs a 'quick search for web or news content' with specific verbs ('search', 'lookup') and resources ('web', 'news content'). It distinguishes from sibling 'research_topic' by emphasizing 'simple' vs 'comprehensive' and from 'search_media' by focusing on web/news rather than media.
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 provides explicit 'Use this when' guidelines with three specific scenarios and explicitly states when NOT to use it ('not comprehensive research'), naming the alternative 'research_topic'. This gives clear context for tool selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_mediaA
Search for images or videos.
Use this when:
User wants to find images or photos
Looking for video content
"show me pictures of..." or "find videos about..."
Parameters: query* - What to find media_type - "images" or "videos" (default: images) engines - Optional: Specific engines max_results - Number of results (default: 10, max: 50)
Returns: Media URLs with thumbnails and sources
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Media search query | |
| media_type | No | Type of media | images |
| engines | No | Comma-separated engine list | |
| max_results | No | Maximum results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds some context about default values and limits (default: images, max_results default: 10, max: 50) and describes the return format ('Media URLs with thumbnails and sources'), but doesn't cover important behavioral aspects like rate limits, authentication requirements, pagination, or error handling.
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?
The description is well-structured and appropriately sized with clear sections (purpose, usage guidelines, parameters, returns). Every sentence earns its place by providing distinct information. The front-loaded purpose statement is followed by logically organized supporting details without redundancy.
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 search tool with 4 parameters (100% schema coverage) and no annotations/output schema, the description is reasonably complete. It covers purpose, usage scenarios, parameters, and return values. However, it lacks some behavioral context that would be helpful for an AI agent, such as performance characteristics or error conditions.
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 description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by repeating parameter names and basic constraints, but doesn't provide additional semantic context like query formatting examples, engine options, or result quality considerations. The baseline of 3 is appropriate when the schema does the heavy lifting.
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 clearly states the tool's purpose with specific verbs ('Search for images or videos') and resources ('images or videos'), distinguishing it from sibling tools like 'research_topic' and 'search' by focusing specifically on media content. The opening sentence directly communicates the core function without ambiguity.
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 provides explicit usage guidelines with a dedicated 'Use this when:' section listing three concrete scenarios (finding images/photos, looking for video content, and example queries). This clearly indicates when to use this tool versus alternatives, though it doesn't explicitly name sibling tools as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.0.0- Changed
research_topic1 field changed- added
Input schema / titleAdded value: +"research_topicArguments"
- Changed
search1 field changed- added
Input schema / titleAdded value: +"searchArguments"
- Changed
search_media1 field changed- added
Input schema / titleAdded value: +"search_mediaArguments"
3 tool updates
- First observed
research_topic - First observed
search - First observed
search_media
TDQS
The three tools have clearly distinct purposes with no ambiguity. 'research_topic' is for comprehensive multi-source analysis, 'search' is for simple web/news lookups, and 'search_media' is specifically for images/videos. The descriptions explicitly differentiate them and guide when to use each tool.
The naming is mostly consistent with a verb_noun pattern, but there's a minor deviation. 'research_topic' and 'search_media' follow a clear pattern, while 'search' is a single verb without a noun, which slightly breaks consistency. However, all names are readable and intuitive for their functions.
With only 3 tools, this is well-scoped for a search-focused server. Each tool earns its place by covering distinct search use cases: deep research, simple queries, and media searches. This minimal set avoids bloat while providing complete coverage for the domain's core functionalities.
The tool surface is complete for a search server, covering all essential operations without gaps. It includes comprehensive research, basic search, and media search, which are the primary actions users would expect. There are no dead ends, and the tools support the full lifecycle of search tasks from quick lookups to in-depth analysis.
Maintenance
Related MCP Connectors
8-tool AI web intelligence suite: search, scrape, screenshot, SEO, docs, crypto, code.
Agent-native search engine with live web research optimized for AI agents.
Search the web, images, videos, news, and local businesses with robust filters, freshness controls…
Web search, fetch, extract, and research for AI agents. Markdown output + AI-synthesized answers.
Related MCP Servers
- AlicenseBqualityCmaintenanceProvides web search capabilities using SearxNG, allowing AI assistants like Claude to search the web with a privacy-respecting metasearch engine.111MIT
- AlicenseBqualityBmaintenanceEnables deep web search across multiple providers including Google, Bing, Brave, DuckDuckGo, and Perplexity, with support for comprehensive AI-powered research using intelligent multi-engine queries.2389MIT
- 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
- AlicenseAqualityDmaintenanceA privacy-focused search server built on SearXNG that provides unlimited, multi-source web searching across 100+ engines. It enables AI tools to perform advanced searches with specialized filters for time, language, and content categories without API costs or rate limits.212MIT
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/netixc/SearxngMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server