Provides web search, image search, and news search capabilities through a SearXNG instance, aggregating results from multiple search engines.
SearXNG MCP Server
A bridge to use SearXNG as an MCP server from Claude Code.
Features
searxng_search: Web search with multiple engines
searxng_images: Image search
searxng_news: News search
Prerequisites
SearXNG instance running with JSON format enabled
Important: SearXNG's default configuration only allows HTML format. To use this MCP server, you must enable JSON format by mounting a custom configuration file.
First, create your configuration file from the example:
cp searxng-config/settings.yml.example searxng-config/settings.yml # Edit settings.yml to set your own secret_keyThen start SearXNG with the configuration:
# Using Docker (recommended) docker run -d \ -p 8080:8080 \ -v $(pwd)/searxng-config/settings.yml:/etc/searxng/settings.yml:ro \ -e SEARXNG_BASE_URL=http://localhost:8080/ \ searxng/searxng # Or install locally # See: https://docs.searxng.org/admin/installation.htmlThe
searxng-config/settings.yml.examplefile includes the necessary configuration to enable JSON format:use_default_settings: true search: formats: - html - json server: secret_key: "your-secret-key-here" limiter: false image_proxy: trueVerify SearXNG is running with JSON format enabled
curl "http://localhost:8080/search?q=test&format=json"If you get a
403 Forbiddenerror, the JSON format is not enabled. Make sure you mounted the configuration file correctly.
Installation
Claude Code Configuration
Method 1: Using CLI (Recommended)
To add environment variables:
Method 2: Manual Configuration
Project scope (.mcp.json in project root):
User scope (~/.claude.json):
Verify Installation
Auto-approve Tool Calls (Optional)
By default, Claude Code asks for confirmation each time a SearXNG tool is called. To skip confirmations, add the following to ~/.claude/settings.json:
Environment Variables
Variable | Default | Description |
|
| SearXNG server URL |
Usage Examples
From Claude Code:
Web Search
Image Search
News Search
Troubleshooting
403 Forbidden error with JSON format
If you get a 403 Forbidden error when using format=json, the JSON format is not enabled in your SearXNG instance. Make sure you:
Mount the configuration file when starting Docker:
docker run -d \ -p 8080:8080 \ -v $(pwd)/searxng-config/settings.yml:/etc/searxng/settings.yml:ro \ -e SEARXNG_BASE_URL=http://localhost:8080/ \ searxng/searxngVerify the configuration includes JSON format:
docker exec <container_id> grep -A 3 "formats" /etc/searxng/settings.yml
Cannot connect to SearXNG
No results returned
SearXNG aggregates results from multiple search engines. If no results are returned:
Check if your SearXNG instance has engines enabled
Try specifying engines:
engines: "google,bing,duckduckgo"Check SearXNG logs for errors
MCP server not showing up
License
MIT