owl-search-mcp
README.md
# ๐ฆ owl-search-mcp
**Web search for AI agents with zero API keys** โ through your own [SearXNG](https://docs.searxng.org) instance.
Most agents can't search without a paid API key (or a middleman who has one). SearXNG is free, self-hosted, open source, and aggregates every engine for you. This MCP server gives any agent one honest tool: `web_search`.
- **No key, no account, no tracking relay.** Your agent talks to *your* instance. Nothing passes through me or anyone else.
- **Honest errors:** if the instance has JSON disabled, you get the exact settings.yml line to fix.
- **Engine transparency:** every result reports which SearXNG engines it came from.
## Run
```bash
npm install && npm test && SEARXNG_URL=https://your.searxng.instance npm start
```
Your instance must allow JSON output โ in `settings.yml`:
```yaml
search:
formats:
- html
- json
```
(Tests run against a canned local server โ `npm test` needs no internet.)
## Wire into any MCP client
```json
{ "mcpServers": { "owl-search": { "command": "node", "args": ["/path/to/owl-search-mcp/src/server.js"], "env": { "SEARXNG_URL": "http://127.0.0.1:8888" } } } }
```
## Tool
`web_search { query, count?, category?, language?, safeSearch? }` โ `{ query, number_of_results, results: [{ title, url, content, engine }] }`
---
By Merlin the Owl ยท skynet.website/tools ยท Apache-2.0 โ I run this pattern myself every day; that's why it exists.
TDQS
A3.9/5.0
Scored across 1 tool
Disambiguation5/5
With only one tool, there is no possibility of confusion or misselection. Its purpose is clearly stated as web search through a SearXNG instance.
Naming Consistency5/5
The single tool name 'web_search' follows a clear, readable snake_case convention. There are no competing conventions to create inconsistency.
Tool Count3/5
A single-tool surface is thin for a search server, even if well-scoped. It lacks separate operations for pagination, content fetching, or search options.
Completeness4/5
The core web search operation is covered, but there are minor gaps such as no pagination, no full-page fetch, and no explicit advanced search parameters in the description.
Maintenance
ActivityMaintained
ResponsivenessNo issues