SearXNG MCP Server
# SearXNG MCP Server
[](https://www.npmjs.com/package/@tobioffice/mcp-searxng)
[](LICENSE)
[](https://modelcontextprotocol.io)
A [Model Context Protocol](https://modelcontextprotocol.io) server that integrates the [SearXNG](https://docs.searxng.org) API, giving any MCP client private web search and URL-to-Markdown reading through your own meta-search instance.
## Features
- **Web search** against any SearXNG instance - no third-party search API keys
- **Pagination** with page selection
- **Filters**: time range (day/month/year), language, and safe search
- **URL reader**: fetch any URL and convert it to Markdown
- **Authentication**: optional HTTP Basic Auth for protected instances
## Tools
### `searxng_web_search`
Performs a web search and returns titles, descriptions and URLs.
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `query` | string | yes | The search query |
| `pageno` | number | no | Search page number, starts at 1 (default `1`) |
| `time_range` | string | no | One of `day`, `month`, `year` |
| `language` | string | no | Language code (e.g. `en`, `fr`, `de`) or `all` (default `all`) |
| `safesearch` | string | no | `0` none, `1` moderate, `2` strict (default `0`) |
### `web_url_read`
Fetches a URL and converts the HTML content to Markdown.
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `url` | string | yes | The URL to fetch and process |
## Configuration
| Environment variable | Default | Description |
| --- | --- | --- |
| `SEARXNG_URL` | `http://localhost:8080` | Base URL of your SearXNG instance |
| `AUTH_USERNAME` | - | Username for HTTP Basic Auth (optional) |
| `AUTH_PASSWORD` | - | Password for HTTP Basic Auth (optional) |
Choose a public instance from [searx.space](https://searx.space/) or run your own.
## Installation
### npx
```json
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": ["-y", "@tobioffice/mcp-searxng"],
"env": {
"SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
}
}
}
}
```
### npm global install
```bash
npm install -g @tobioffice/mcp-searxng
```
```json
{
"mcpServers": {
"searxng": {
"command": "tobioffice-mcp-searxng",
"env": {
"SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
}
}
}
}
```
### From source
```bash
git clone https://github.com/tobioffice/mcp-searxng.git
cd mcp-searxng
pnpm install
pnpm run build
node dist/index.js
```
Ready-to-copy client configs are included in [`claude_desktop_config_example.json`](claude_desktop_config_example.json) and [`claude_desktop_config_with_auth.json`](claude_desktop_config_with_auth.json).
## Development
```bash
pnpm install
pnpm run build # compile TypeScript to dist/
pnpm run watch # compile in watch mode
```
## License
MIT - see [LICENSE](LICENSE).
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: searxng_web_search performs web searches to find URLs, while web_url_read reads content from specific URLs. There is no overlap or ambiguity between searching for information and retrieving content from a known URL.
Both tools use snake_case naming, which is consistent. However, the naming patterns differ slightly: searxng_web_search includes the server prefix and specifies the action (search), while web_url_read is more generic. This minor deviation prevents a perfect score.
With only two tools, the server feels under-scoped for a web search and content retrieval domain. While the tools cover basic search and reading, there are likely missing operations such as filtering search results, handling pagination, or advanced URL processing, making the count too low for comprehensive functionality.
The tool set is severely incomplete for a web search server. It lacks essential operations like refining searches (e.g., by date, site, or type), managing search sessions, or handling errors and rate limits. Agents will face dead ends when trying to perform more complex web research tasks beyond basic search and URL reading.