SearXNG-MCP
# SearXNG-MCP
A Model Context Protocol (MCP) server that provides a bridge between AI assistants and [SearXNG](https://github.com/searxng/searxng), a privacy-respecting metasearch engine.
## Features
- **Search Tool**: Perform web searches through SearXNG with full support for:
- Multiple search categories (general, images, videos, news, music, files, etc.)
- Specific engine selection
- Language filtering
- Pagination
- Time range filtering
- Safe search settings
- **Engine Discovery**: List all available search engines supported by your SearXNG instance
- **Transport Support**:
- Streamable HTTP transport (recommended for web integrations)
- Standard I/O transport (for CLI integrations)
- [Cloudflare Worker transport](https://github.com/cloudflare/agents/blob/main/packages/agents/src/mcp/worker-transport.ts)
## Prerequisites
You should enable JSON model in your SearXNG instance.
Locate the `search.formats` configuration in your `settings.yml` and includes `json`:
```yaml
search:
formats:
- html
- json
```
## Configuration
The server can be configured using environment variables:
| Variable | Description | Default |
| -------- | ----------- | ------- |
| `SEARXNG_URL` | URL of your SearXNG instance | `http://localhost:8080` |
| `PORT` | Port for HTTP transport | `3000` |
| `TRANSPORT_MODE` | Transport mode: `http` or `stdio` | `http` |
## Usage
### HTTP Transport (Streamable HTTP)
```bash
# Start the server
TRANSPORT_MODE=http SEARXNG_URL=https://your-searxng-instance.com npm start
# The server will listen on http://localhost:3000/mcp
```
### Stdio Transport
```bash
# Start with stdio transport
SEARXNG_URL=https://your-searxng-instance.com npm start
```
#### MCP Client Configuration
For Claude Desktop or other MCP-compatible clients, add to your configuration:
```json
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"@bs-mcps/searxng"
],
"env": {
"SEARXNG_URL": "https://your-searxng-instance.com",
}
}
}
}
```
### Cloudflare Worker Transport
You can deploy the MCP server as a Cloudflare Worker.
To deploy, you can fork this repository and then create a new Worker linked to your fork.
Or, you can simply click the button below to deploy directly to Cloudflare:
[](https://deploy.workers.cloudflare.com/?url=https://github.com/BrandonStudio/SearXNG-MCP)
#### Required Environment Variables
| Variable | Description |
| -------- | ----------- |
| `SEARXNG_URL` | URL of your SearXNG instance |
## Available Tools
| Tool | Description |
| ---- | ----------- |
| `search` | Perform a web search using SearXNG |
| `get_engines` | Get all available search engines supported by the SearXNG instance |
### search
Perform a web search using SearXNG.
**Parameters:**
- `query` (required): The search query
- `categories`: Array of categories (e.g., `["general", "images"]`)
- `engines`: Array of specific engines (e.g., `["google", "duckduckgo"]`)
- `language`: Language code (e.g., `"en"`)
- `pageno`: Page number for pagination
- `time_range`: Time filter (`"day"`, `"week"`, `"month"`, `"year"`)
- `safesearch`: Safe search level (`0`, `1`, `2`)
### get_engines
Get all available search engines supported by the SearXNG instance.
No parameters required.
## Copyright Notice
Copyright 2025-2026 BrandonStudio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
TDQS
Scored across 2 tools
The two tools, get_engines and search, have completely distinct purposes. One retrieves available engines, the other performs searches, leaving no ambiguity.
Both tool names follow a verb_noun pattern (get_engines, search) with clear, imperative verbs. The pattern is consistent even though search is a single verb.
Two tools is on the lower end for a search engine server. While the core functionality (search and list engines) is covered, the count feels minimal but not unreasonable for a focused tool.
The tools cover basic search and engine listing, but lack features like filtering results, engine configuration, or advanced search parameters. The note about running twice suggests potential reliability issues, indicating minor gaps.