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