Skip to main content
Glama
maccam912
by maccam912
README.md
# SearXNG MCP Server

A [Model Control Protocol (MCP)](https://github.com/microsoft/modelcontrol) server for [SearXNG](https://github.com/searxng/searxng), allowing AI assistants to search the web through a SearXNG instance.

## Features

- Search the web using SearXNG via simple API calls
- Get information about available search engines
- Configure search parameters including categories, languages, and safe search settings

## Usage in MCP Configuration

```json
 "searxng-mcp-server": {
      "command": "uv",
      "args": [
        "run",
        "https://raw.githubusercontent.com/maccam912/searxng-mcp-server/refs/heads/main/server.py",
        "--url",
        "https://searxng.example.com"
      ]
    }
```

## Docker Usage

You can run this MCP server using Docker:

```bash
# Build the Docker image
docker build -t searxng-mcp-server .

# Run the container
# Replace https://searxng.example.com with your actual SearXNG instance URL
docker run -p 8080:8080 searxng-mcp-server
```

## API Tools

### Search

```python
def search(query: str, categories: Optional[str] = None, engines: Optional[str] = None, 
           language: Optional[str] = None, page: int = 1, time_range: Optional[str] = None,
           safe_search: int = 1)
```

### Get Available Engines

```python
def get_available_engines()
```

## Local Development

Requirements:
- Python 3.11+
- uv (Python package manager)

```bash
# Install dependencies
uv sync

# Run the server
uv run server.py --url https://searxng.example.com
```

TDQS

B3.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: get_available_engines retrieves metadata about search engines, while search performs actual searches. There is no overlap or ambiguity between these functions.

Naming Consistency5/5

Both tools follow a consistent verb_noun naming pattern (get_available_engines and search). The naming is straightforward and predictable across the toolset.

Tool Count2/5

With only two tools, the server feels under-scoped for a search functionality domain. While the core search operation is present, typical search-related operations like managing preferences, saving searches, or advanced filtering are missing, making the toolset feel thin.

Completeness2/5

The toolset is severely incomplete for a search server. It lacks essential operations such as configuring search settings, handling search history, or integrating with other data sources. The surface is minimal and does not cover the expected lifecycle of search interactions.

Maintenance

ActivityInactive
ResponsivenessNo issues