MCP server for SearXNG aggregator — web search across multiple engines via Model Context Protocol
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-aicrafted-searxng-mcp": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A Model Context Protocol (MCP) server that provides web search capabilities by integrating with a SearXNG instance.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in search
Web and local search using Brave Search API
Production ready MCP server with real-time search, extract, map & crawl.
Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors
mini cli search engine for your docs, knowledge bases, meeting notes, whatever. Tracking current sota approaches while being all local
MCP Security Weekly
Get CVE alerts and security updates for io.github.aicrafted/searxng-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A Model Context Protocol (MCP) server that provides web search capabilities by integrating with a SearXNG instance.
services:
searxng:
image: searxng/searxng:latest
ports:
- "${SEARXNG_PORT:-8080}:8080"
volumes:
- "${SEARXNG_VOL_CONFIG:-searxng-config}:/etc/searxng/"
- "${SEARXNG_VOL_DATA:-searxng-data}:/var/cache/searxng/"
restart: always
searxng-mcp:
image: ghcr.io/aicrafted/searxng-mcp:latest
restart: unless-stopped
depends_on:
# Ensure SearXNG starts before the MCP server
- searxng
environment:
SEARXNG_URL: "${SEARXNG_URL:-http://searxng:8080}"
MCP_HOST: "${MCP_HOST:-127.0.0.1}"
MCP_PORT: "${MCP_PORT:-32123}"
MCP_TRANSPORT: "${MCP_TRANSPORT:-http}"
MCP_ALLOWED_HOSTS: "${MCP_ALLOWED_HOSTS:-localhost:*,127.0.0.1:*}"
MCP_ALLOWED_ORIGINS: "${MCP_ALLOWED_ORIGINS:-http://localhost:*,http://127.0.0.1:*}"
MCP_DISABLE_DNS_REBINDING_PROTECTION: "${MCP_DISABLE_DNS_REBINDING_PROTECTION:-false}"
ports:
- "${MCP_PORT:-32123}:${MCP_PORT:-32123}"
volumes:
searxng-config:
searxng-data:
Important: Enable JSON responses in your SearXNG
settings.yml, otherwise the MCP server cannot read search results:search: formats: - html - json
.env# SearXNG url should be visible by the MCP server inside docker, so use internal service port here
SEARXNG_URL=http://searxng:8080
# Public SearXNG port
SEARXNG_PORT=8080
# Searxng config and data volumes, start with "./" if You want to bind dir instead using volume
SEARXNG_VOL_CONFIG=searxng-config
SEARXNG_VOL_DATA=searxng-data
# MCP server host, port and transport ("stdio", "sse", "http")
MCP_HOST=127.0.0.1
MCP_PORT=32123
MCP_TRANSPORT=http
# MCP DNS rebinding protection (see https://github.com/modelcontextprotocol/python-sdk/issues/1798 for details)
MCP_ALLOWED_HOSTS=localhost:*,127.0.0.1:*
MCP_ALLOWED_ORIGINS=http://localhost:*,http://127.0.0.1:*
# MCP_DISABLE_DNS_REBINDING_PROTECTION=true
{
"mcpServers": {
"searxng": {
"type": "http",
"url": "http://localhost:32123/mcp"
}
}
}
{
"mcpServers": {
"searxng": {
"type": "sse",
"url": "http://localhost:32123/sse"
}
}
}
Note: SSE transport uses the
/sseendpoint, not/mcp. HTTP transport uses/mcp.
pip install -r requirements.txt
.env file (optional).The server reads configuration from command-line arguments and environment variables. Command-line arguments override the corresponding defaults used at startup.
| Variable | Default | Description |
|---|---|---|
SEARXNG_URL | http://localhost:8080 | URL of the SearXNG instance. |
SEARXNG_PORT | 8080 | Public host port for the SearXNG container in the compose example. |
SEARXNG_VOL_CONFIG | searxng-config | Docker volume or host path mounted to /etc/searxng/ in the compose example. |
SEARXNG_VOL_DATA | searxng-data | Docker volume or host path mounted to /var/cache/searxng/ in the compose example. |
MCP_HOST | 127.0.0.1 | Host to bind for HTTP/SSE transports. Use 0.0.0.0 in Docker when publishing the port. |
MCP_PORT | 8000 |