owl-search-mcp
Provides web search through a self-hosted SearXNG instance, exposing a web_search tool that returns aggregated search results with engine attribution.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@owl-search-mcpsearch the web for the latest news on AI regulation"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ฆ owl-search-mcp
Web search for AI agents with zero API keys โ through your own SearXNG 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
npm install && npm test && SEARXNG_URL=https://your.searxng.instance npm startYour instance must allow JSON output โ in settings.yml:
search:
formats:
- html
- json(Tests run against a canned local server โ npm test needs no internet.)
Related MCP server: SearXNG MCP Server
Wire into any MCP client
{ "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.
Available Tools
1 toolweb_searchKeyless web search (own SearXNG)A
Search the web through the operator's own SearXNG instance โ no API key, no paid tier, no tracking relay. Returns title/url/snippet per result with the engines each hit came from. Requires SEARXNG_URL in the server environment.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| query | Yes | ||
| category | No | ||
| language | No | ||
| safeSearch | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does a good job on several fronts: it discloses the operational requirement (SEARXNG_URL in the server environment), the privacy posture, and the return shape (title/url/snippet plus contributing engines). It stops short of rate limits, result freshness, pagination, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, and nothing is strictly redundant. The triple negation ('no API key, no paid tier, no tracking relay') leans slightly promotional, but each clause adds a distinct operational fact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The env prerequisite and return format are covered, which matters because there is no output schema. However, a five-parameter tool with zero schema documentation leaves the agent guessing about category, safeSearch, language and count, so the definition is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across five parameters, so the description must compensate and it does not: count, category (an enum with five values), language, and safeSearch (0-2) are never mentioned or explained. The only hint about results is the mention of title/url/snippet, which says nothing about how the inputs shape them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (the web) and immediately differentiates the mechanism: the operator's own SearXNG instance rather than a commercial API. An agent can tell exactly what this tool does and under what infrastructure it runs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated โ there are no siblings and no when-not-to-use guidance, and the only explicit condition given is the SEARXNG_URL environment prerequisite. That prerequisite is useful, but the description never says when this search is preferable to another retrieval path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.0.0- First observed
web_search
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion or misselection. Its purpose is clearly stated as web search through a SearXNG instance.
The single tool name 'web_search' follows a clear, readable snake_case convention. There are no competing conventions to create inconsistency.
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.
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
Related MCP Connectors
Provides AI assistants with access to Seltz's powerful Web Search capabilities.
Google search, news, maps, scholar and public webpages for AI agents, with Markdown results.
Free web search for AI agents. No API key required. Hosted MCP in active development.
The best web search for your AI Agent
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to perform privacy-respecting web searches through SearXNG, with support for multiple search engines, categories, and advanced filtering options.127 npm27MIT
- AlicenseAqualityDmaintenanceEnables web search, image search, and news search through a self-hosted SearXNG instance. Provides privacy-focused meta-search capabilities aggregating results from multiple search engines.3127 npm1MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to perform web searches and read URL content via a SearXNG instance.28 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables web search and content scraping from multiple engines via a local SearXNG instance, allowing AI assistants to retrieve and extract web content.1-