67
README.md
Normal file
67
README.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# SearXNG MCP Server
|
||||
|
||||
An MCP (Model Context Protocol) server that provides web search via a [SearXNG](https://github.com/searxng/searxng) instance.
|
||||
|
||||
## Setup
|
||||
|
||||
```bash
|
||||
python -m venv venv
|
||||
venv/Scripts/pip install -r requirements.txt # Windows
|
||||
# or
|
||||
venv/bin/pip install -r requirements.txt # Linux/macOS
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### With Claude Code
|
||||
|
||||
Add to your `.mcp.json` or `~/.claude/settings.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"searxng": {
|
||||
"command": "/path/to/venv/bin/python",
|
||||
"args": ["/path/to/server.py"],
|
||||
"env": {
|
||||
"SEARXNG_URL": "http://your-searxng-instance:8080"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Standalone
|
||||
|
||||
```bash
|
||||
SEARXNG_URL=http://your-searxng-instance:8080 python server.py
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
| Environment Variable | Default | Description |
|
||||
|---|---|---|
|
||||
| `SEARXNG_URL` | `http://192.168.50.224:30053` | Base URL of your SearXNG instance |
|
||||
|
||||
Your SearXNG instance must have JSON format enabled in its `settings.yml` under `search.formats`.
|
||||
|
||||
## Tool: `web_search`
|
||||
|
||||
Search the web using SearXNG.
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
|---|---|---|---|
|
||||
| `query` | string | yes | Search query |
|
||||
| `categories` | string | no | Comma-separated: general, images, news, videos, music, files, it, science, social media |
|
||||
| `language` | string | no | Language code (e.g. en, de, fr) |
|
||||
| `pageno` | int | no | Page number (starting at 1) |
|
||||
| `time_range` | string | no | day, week, month, or year |
|
||||
| `safesearch` | int | no | 0=off, 1=moderate, 2=strict |
|
||||
| `max_results` | int | no | Max results to return (default 10, max 50) |
|
||||
|
||||
## Tests
|
||||
|
||||
```bash
|
||||
pip install pytest pytest-asyncio respx
|
||||
pytest test_server.py -v
|
||||
```
|
||||
Reference in New Issue
Block a user