mcp-server-searxng
by: kevinwatt
An MCP server implementation that integrates with SearXNG, providing privacy-focused meta search capabilities.
📌Overview
Purpose: To provide a privacy-focused meta search server that integrates with SearXNG, allowing users to search multiple engines while preserving user anonymity.
Overview: The SearXNG MCP Server offers a robust implementation designed to facilitate meta searches across various categories without tracking user behavior. It aims to deliver a seamless and private search experience, catering to diverse search needs through multiple features and settings.
Key Features:
-
Meta Search: Aggregates and displays search results from various search engines, enhancing search comprehensiveness.
-
Privacy-Focused: Eliminates user tracking and profiling, safeguarding user privacy during searches.
-
Multiple Categories: Supports searches across a range of categories such as news, science, files, and images, meeting various user interests.
-
Language Support: Allows users to search in specific languages or span all languages for broader retrieval.
-
Time Range Filtering: Enables users to filter results based on the time period, providing control over search relevance.
-
Safe Search: Offers three levels of filtering to ensure safe content is displayed based on user preferences.
-
Fallback Support: Implements multiple instances of SearXNG for improved reliability and uptime.
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: 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
Installation
npm install -g @kevinwatt/mcp-server-searxng
Usage
Direct Run
mcp-server-searxng
With 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 (day/week/month/year)safesearch
(number, optional): Safe search level (0: None, 1: Moderate, 2: Strict, default: 1)
Development
git clone https://github.com/kevinwatt/mcp-server-searxng.git
cd mcp-server-searxng
npm install
npm run build
npm start
License
This MCP server is licensed under the MIT License.
Prerequisites
You need a local SearXNG instance running. Below is a quick guide to run SearXNG with Docker.
Run SearXNG with Docker
Quick Start
mkdir -p searxng
tee searxng/settings.yml << EOF
use_default_settings: true
server:
bind_address: "0.0.0.0"
secret_key: "CHANGE_THIS_TO_SOMETHING_SECURE"
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
docker run -d \
--name searxng \
-p 8080:8080 \
-v "$(pwd)/searxng:/etc/searxng" \
searxng/searxng
Test Search Function
curl -v 'http://localhost:8080/search?q=test&format=json'
Or visit in browser:
http://localhost:8080/search?q=test
Container Management
docker stop searxng
docker rm searxng
docker logs searxng
docker update --restart always searxng
The --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: https://docs.searxng.org/
Environment Variables
-
SEARXNG_INSTANCES
: Comma-separated list of SearXNG instance URLs
Default:http://localhost:8080
-
SEARXNG_USER_AGENT
: Custom User-Agent header for requests
Default:MCP-SearXNG/1.0
-
NODE_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.