MCP server that relays search and URL-fetching requests to a SearXNG metasearch instance, with SSRF protection, caching, rate limiting, and audit logging
Four tools with clear, actionable descriptions (avg 156 chars, within baseline 194). All tools have input schemas with typed parameters. However, output schemas are not documented in the source code, and parameter descriptions lack depth on constraints/formats. Tool naming follows verb_noun convention (searxng_web_search, searxng_read_url) but is somewhat generic, 'searxng_' prefix adds context but doesn't clarify the action as clearly as 'search_web' or 'fetch_url' would. No error handling guidance visible. No tool annotations (readOnlyHint, etc.) despite all being read-only operations.
Fetch a URL and return its content as structured markdown. Use when you've decided to read specific URLs in full; to triage results use searxng_web_search first.
List the URLs fetched in this session, with fetch timestamps and outcomes. Useful for auditing what sources an agent consulted.
Fetch a URL and return structured metadata (title, description, image, language, publish date). Lighter-weight than searxng_read_url when you only need metadata.
SearXNG metasearch relay (not Google/Bing). Returns titles, URLs, snippets with per-result engine attribution. Target a backend with the engines param (e.g. engines='wikipedia,github') or a !bang — not a site: filter, which only affects general-web engines.
Output schemas not documented. Tools return structured data but LLMs cannot see field names, types, or whether pagination is supported. searxng_web_search likely returns results array but structure is opaque.
Parameter descriptions lack format/constraint details. 'engines' param says 'comma-separated list' but no validation rules, max length, or valid engine names documented. 'lang' param has no format specification (ISO 639-1? BCP 47?).
No error handling guidance. Tools provide no recovery hints if search fails, URL is unreachable, or metadata extraction fails. LLMs cannot self-correct or know whether to retry.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Tool annotations missing. All four tools are read-only (Risk: READ_ONLY noted in metadata) but no readOnlyHint in schema. Agents cannot infer safety from tool definitions alone.
searxng_session_sources has empty input schema (no parameters). Description says 'List the URLs fetched in this session' but no pagination, filtering, or limit parameters. If session has 1000+ URLs, response could exhaust context.