Skip to directory

SearXNG Search MCP (community)

Ihor Sokoliuk (community-maintained; not operated by SearXNG)

stdio by default; optional Streamable HTTP4 documented tools2

About SearXNG Search MCP (community)

A community-maintained MCP server that connects clients to an operator-controlled or trusted SearXNG instance for web search, suggestions, instance capability discovery, and bounded reading of selected URLs.

What you can use it for

  • Search the web through a private or trusted SearXNG metasearch instance.
  • Refine queries using instance suggestions and inspect engines/categories available on the instance.
  • Read a selected HTML, text, JSON, or bounded PDF URL as agent-readable content.
Connection and setup
Hosting
Local npm stdio process or Docker stdio container; optional separately operated Streamable HTTP deployment.
Transport
stdio by default; optional Streamable HTTP
Endpoint
Local process; no hosted endpoint documented
Authentication
The local MCP server does not require a search-vendor API key. It requires the base URL of an existing SearXNG instance with JSON search enabled. If that instance is protected with HTTP Basic Auth, credentials may be included in the SEARXNG_URL; keep them in secure local configuration. Optional MCP HTTP bearer or OAuth settings are separate from upstream SearXNG authentication.

Requirements

  • Node.js 22 or later for the documented npx/npm local setup; Docker is an alternative runtime.
  • An existing SearXNG instance that the user operates or trusts, with JSON search enabled. This MCP package does not install or host SearXNG.
  • Network access from the MCP process to the configured SearXNG base URL.

Setup steps

  1. Install Node.js 22 or later and choose a SearXNG instance that you operate or trust. Configure that instance to enable JSON search output.
  2. Add a local stdio MCP server with command npx, args [-y, mcp-searxng], and environment variable SEARXNG_URL set to the SearXNG base URL. Do not set MCP_HTTP_PORT for local stdio.
  3. If the SearXNG instance requires HTTP Basic Auth, configure its credentials only in the secure local SEARXNG_URL value; do not commit or share the URL containing credentials.
  4. Reconnect the MCP client and inspect its tool inventory. The maintainer documents four tools: searxng_web_search, searxng_search_suggestions, searxng_instance_info, and web_url_read.
  5. For a harmless functional check, call searxng_instance_info or search for SearXNG documentation. A discovered tool list alone does not prove the upstream instance is reachable or returns results.
  6. If the server is missing, confirm Node.js is 22+, the client passed SEARXNG_URL to the child process, and logs show a clean MCP startup. If tools appear but search fails, check that the instance is reachable and its JSON API is enabled.
Tools 4

The maintainer README and tools guide document four tools and their parameters. The actual search engines/categories and defaults depend on the configured SearXNG instance; no tools/list or live instance call was performed.

  • searxng_web_search

    Run a paginated search with optional time, language, safe-search, engine/category, result-format, and detail filters.

    Parameters: query, pageno, time_range, language, safesearch, min_score, num_results, categories, engines, response_format, result_detail
    01
  • searxng_search_suggestions

    Get autocomplete suggestions for a query.

    Parameters: query, language
    02
  • searxng_instance_info

    Inspect available instance categories, engines, and defaults.

    Parameters: includeEngines, includeDisabled, category, refresh
    03
  • web_url_read

    Read selected URL content as Markdown/text with bounded extraction controls; PDF text is supported, OCR is not.

    Parameters: url, startChar, maxLength, section, paragraphRange, readHeadings
    04
Limitations and notes
  • The server depends on a separate SearXNG instance and does not expose all upstream search-engine APIs or install the upstream service.
  • A public SearXNG operator may receive or log search queries; privacy depends on the instance operator.
  • The official SearXNG wordmark is too wide to remain readable as a square card icon. The accepted image is the verified community maintainer avatar, so the publisher stays clearly labeled as community maintained.
  • URL reading fetches selected URLs directly and applies size/time limits; it is not a general rendered-page browser and does not OCR scanned PDFs.
  • No MCP initialize, tools/list, or representative tool call was performed; documentation alone does not establish connection or functionality.
Original sources
  • maintainer repository documentation

    Documents the community-maintained server, Node.js 22 requirement, exact npx command, required SEARXNG_URL, JSON-enabled upstream prerequisite, default stdio transport, four tool names, connection-check guidance, and privacy limitations.

  • maintainer tool reference

    Documents all four tool names and parameter names, plus search/read behavior and limits.

  • maintainer configuration reference

    Documents SEARXNG_URL, optional upstream Basic Auth, local stdio configuration, Docker alternative, and separate optional HTTP auth.

  • verified repository owner profile

    The maintainer profile is linked from the repository owner page. Its avatar was decoded as JPEG, converted to a local 192x192 PNG, and visually inspected on light and dark backgrounds. The square maintainer avatar was selected as fallback after the SearXNG official wordmark proved unsuitable at icon size.

  • official product logo review

    The official SearXNG product logo is a 640x110 wordmark; it was decoded and rejected for the square server-card icon because it becomes too small to read. It remains evidence for the product brand, not the selected image.

  • maintainer complete tool reference

    The selected community repository documents the exact four tool names and required local SearXNG instance; other projects with similar names have different inventories.

Documentation checked 2026-10-28T00:00:00Z. Connection has not been runtime tested.