Labsco
MCP SERVER

SearXNG MCP Server

by tobioffice

Runs web searches through a SearXNG instance you supply, refines a vague query against that instance's own autocomplete, and reads the page behind a result back as markdown.

Web Search EnginesVerified
Summary
You bring the instance, which makes searxng_instance_info part of setup rather than a curiosity: what this server can search is whatever the instance in SEARXNG_URL has enabled.

searxng_web_search accepts engines and categories, but the values that will actually resolve come from the /config of your own instance, and searxng_instance_info is the call that reads them back — including which engines are common across instances and which are listed as available. The URL reader is deliberately bounded: PDF text extraction is capped on input, output, page count, time, concurrency and memory, and OCR is not supported, so a scanned page has no text path through it.

What it is

A search client for a SearXNG instance named in SEARXNG_URL, with 4 tools: a web search filtered by engine and category, autocomplete, a capability probe against the instance's /config, and a URL reader that returns readable content.

What you get
  • Search narrowed the way SearXNG itself is configured: searxng_web_search takes a query plus categories, engines, language, time_range, safesearch and a min_score floor, pages with pageno, sizes with num_results, and returns a title, URL and content snippet for each result.
  • Result depth as an argument rather than a second round trip: result_detail and response_format set how much of each result comes back on the same call.
  • Query refinement before a search is spent: searxng_search_suggestions returns autocomplete suggestions from the configured instance for a partial query in a given language.
  • Capability discovery against the live instance: searxng_instance_info reads /config from the reachable configured instances and reports categories.common and categories.available, engines.common and engines.available, defaults, locales and plugins, with refresh, includeEngines and includeDisabled shaping the report.
  • Full-page reading with content-type handling: web_url_read converts HTML to markdown, pretty-prints JSON, and returns plain text, YAML, TOML and XML as fenced readable text, with maxLength, startChar, section, paragraphRange and readHeadings available to take a slice instead of the whole page.
Requirements

A SearXNG instance you can reach, with its base URL supplied as SEARXNG_URL.

Setup effort

One command — npx -y mcp-searxng