freshcrate
Skin:/
Home > MCP Servers > mcp-searxng

mcp-searxng

MCP Server for SearXNG

Why this rank:Strong adoptionRecent releaseHealthy release cadence

Description

MCP Server for SearXNG

README

SearXNG MCP Server

An MCP server that integrates the SearXNG API, giving AI assistants web search capabilities.

https://nodei.co/npm/mcp-searxng.png?downloads=true&downloadRank=true&stars=true

https://badgen.net/docker/pulls/isokoliuk/mcp-searxng

SearXNG Server MCP server

Quick Start

Add to your MCP client configuration (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "searxng": {
      "command": "npx",
      "args": ["-y", "mcp-searxng"],
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}

Replace YOUR_SEARXNG_INSTANCE_URL with the URL of your SearXNG instance (e.g. https://search.example.com).

Features

  • Web Search: General queries, news, articles, with pagination.
  • URL Content Reading: Advanced content extraction with pagination, section filtering, and heading extraction.
  • Intelligent Caching: URL content is cached with TTL (Time-To-Live) to improve performance and reduce redundant requests.
  • Pagination: Control which page of results to retrieve.
  • Time Filtering: Filter results by time range (day, month, year).
  • Language Selection: Filter results by preferred language.
  • Safe Search: Control content filtering level for search results.

How It Works

mcp-searxng is a standalone MCP server โ€” a separate Node.js process that your AI assistant connects to for web search. It queries any SearXNG instance via its HTTP JSON API.

Not a SearXNG plugin: This project cannot be installed as a native SearXNG plugin. Point it at any existing SearXNG instance by setting SEARXNG_URL.

AI Assistant (e.g. Claude)
        โ”‚  MCP protocol
        โ–ผ
  mcp-searxng  (this project โ€” Node.js process)
        โ”‚  HTTP JSON API  (SEARXNG_URL)
        โ–ผ
  SearXNG instance

Tools

  • searxng_web_search

    • Execute web searches with pagination
    • Inputs:
      • query (string): The search query. This string is passed to external search services.
      • pageno (number, optional): Search page number, starts at 1 (default 1)
      • time_range (string, optional): Filter results by time range - one of: "day", "month", "year" (default: none)
      • language (string, optional): Language code for results (e.g., "en", "fr", "de") or "all" (default: "all")
      • safesearch (number, optional): Safe search filter level (0: None, 1: Moderate, 2: Strict) (default: instance setting)
  • web_url_read

    • Read and convert the content from a URL to markdown with advanced content extraction options
    • Inputs:
      • url (string): The URL to fetch and process
      • startChar (number, optional): Starting character position for content extraction (default: 0)
      • maxLength (number, optional): Maximum number of characters to return
      • section (string, optional): Extract content under a specific heading (searches for heading text)
      • paragraphRange (string, optional): Return specific paragraph ranges (e.g., '1-5', '3', '10-')
      • readHeadings (boolean, optional): Return only a list of headings instead of full content

Installation

NPM (global install)
npm install -g mcp-searxng
{
  "mcpServers": {
    "searxng": {
      "command": "mcp-searxng",
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}
Docker

Pre-built image:

docker pull isokoliuk/mcp-searxng:latest
{
  "mcpServers": {
    "searxng": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "SEARXNG_URL",
        "isokoliuk/mcp-searxng:latest"
      ],
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}

To pass additional env vars, add -e VAR_NAME to args and the variable to env.

Build locally:

docker build -t mcp-searxng:latest -f Dockerfile .

Use the same config above, replacing isokoliuk/mcp-searxng:latest with mcp-searxng:latest.

Docker Compose

docker-compose.yml:

services:
  mcp-searxng:
    image: isokoliuk/mcp-searxng:latest
    stdin_open: true
    environment:
      - SEARXNG_URL=YOUR_SEARXNG_INSTANCE_URL
      # Add optional variables as needed โ€” see CONFIGURATION.md

MCP client config:

{
  "mcpServers": {
    "searxng": {
      "command": "docker-compose",
      "args": ["run", "--rm", "mcp-searxng"]
    }
  }
}
HTTP Transport

By default the server uses STDIO. Set MCP_HTTP_PORT to enable HTTP mode:

{
  "mcpServers": {
    "searxng-http": {
      "command": "mcp-searxng",
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL",
        "MCP_HTTP_PORT": "3000"
      }
    }
  }
}

Endpoints: POST/GET/DELETE /mcp (MCP protocol), GET /health (health check)

Test it:

MCP_HTTP_PORT=3000 SEARXNG_URL=http://localhost:8080 mcp-searxng
curl http://localhost:3000/health

Configuration

Set SEARXNG_URL to your SearXNG instance URL. All other variables are optional.

Full environment variable reference: CONFIGURATION.md

Troubleshooting

403 Forbidden from SearXNG

Your SearXNG instance likely has JSON format disabled. Edit settings.yml (usually /etc/searxng/settings.yml):

search:
  formats:
    - html
    - json

Restart SearXNG (docker restart searxng) then verify:

curl 'http://localhost:8080/search?q=test&format=json'

You should receive a JSON response. If not, confirm the file is correctly mounted and YAML indentation is valid.

See also: SearXNG settings docs ยท discussion

Contributing

See CONTRIBUTING.md

License

MIT โ€” see LICENSE for details.

Release History

VersionChangesUrgencyDate
v1.1.0**Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v1.0.4...v1.1.0 In two words: fixed the URL FETCH tool and added the MCP_HTTP_HOST parameter to customize the MCP Server address binding.High6/3/2026
v1.0.4## What's Changed * fix: escape user input in extractSection regex to prevent ReDoS (CWE-1333) by @sebastiondev in https://github.com/ihor-sokoliuk/mcp-searxng/pull/71 * docs: improve tool description to prevent LLM using `prompt` instead of `query` by @MikeWang0316tw in https://github.com/ihor-sokoliuk/mcp-searxng/pull/80 * fix: add mcp-protocol-version to CORS allowedHeaders by @michaeltg17 in https://github.com/ihor-sokoliuk/mcp-searxng/pull/77 ## New Contributors * @sebastiondev made High5/23/2026
v1.0.3## What's Changed * fix: create new McpServer per HTTP session to prevent 'Already connected' crash by @frap129 in https://github.com/ihor-sokoliuk/mcp-searxng/pull/66 ## New Contributors * @frap129 made their first contribution in https://github.com/ihor-sokoliuk/mcp-searxng/pull/66 **Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v1.0.1...v1.0.3High4/5/2026
v1.0.1## What's Changed * Enhance SEARXNG_URL validation, error handling, and documentation by @ihor-sokoliuk in https://github.com/ihor-sokoliuk/mcp-searxng/pull/64 ## New Contributors * @ihor-sokoliuk made their first contribution in https://github.com/ihor-sokoliuk/mcp-searxng/pull/64 **Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.10.5...v1.0.1Medium4/1/2026
v0.10.1Mainly, the dependencies are updated to the latest version to address vulnerabilities. **Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.10.0...v0.10.1Medium3/30/2026
v0.10.0## What's Changed * feat: add separate proxy config and custom user_agent for web_url_read by @531014023 in https://github.com/ihor-sokoliuk/mcp-searxng/pull/55 * Add troubleshooting docs for SearXNG JSON format 403 error by @Copilot in https://github.com/ihor-sokoliuk/mcp-searxng/pull/58 ## New Contributors * @531014023 made their first contribution in https://github.com/ihor-sokoliuk/mcp-searxng/pull/55 **Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.9.2...Low3/21/2026
v0.9.2Add handler for listing resource templates **Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.9.1...v0.9.2Low3/11/2026
v0.9.1## What's Changed * Track package-lock.json in version control by @Copilot in https://github.com/ihor-sokoliuk/mcp-searxng/pull/50 * Update console.log to console.error for better MCP STDIO compliance by @SamAcctX in https://github.com/ihor-sokoliuk/mcp-searxng/pull/51 * Release 0.9.1 by @Copilot in https://github.com/ihor-sokoliuk/mcp-searxng/pull/52 ## New Contributors * @SamAcctX made their first contribution in https://github.com/ihor-sokoliuk/mcp-searxng/pull/51 **Full Changelog**Low2/22/2026
v0.8.0Added a User-Agent header to requests **Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.7.11...v0.8.0Low11/9/2025
v0.7.11Added linux/arm64 Docker image **Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.7.9...v0.7.11Low10/29/2025
v0.7.9Added `NO_PROXY` env variable **Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.7.8...v0.7.9Low10/29/2025
v0.7.8Code cleanup and proxy fix ## What's Changed * refactor(logging): merge message and data in notification params by @sheldonxxxx in https://github.com/ihor-sokoliuk/mcp-searxng/pull/29 ## New Contributors * @sheldonxxxx made their first contribution in https://github.com/ihor-sokoliuk/mcp-searxng/pull/29 **Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.7.0...v0.7.8Low10/19/2025
v0.7.0## What's Changed * Fix error when connecting via HTTP by @cdzombak in https://github.com/ihor-sokoliuk/mcp-searxng/pull/25 * Allow reading a page in parts by @cdzombak in https://github.com/ihor-sokoliuk/mcp-searxng/pull/24 ## New Contributors * @cdzombak made their first contribution in https://github.com/ihor-sokoliuk/mcp-searxng/pull/25 **Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.6.2...v0.7.0Low9/25/2025
v0.6.2**Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.6.1...v0.6.2Low9/6/2025
v0.6.1**Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.6.0...v0.6.1Low8/24/2025
v0.6.0**Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.5.2...v0.6.0Low8/23/2025
v0.5.2## What's Changed * Add 'score' to the result, update dependencies * adds eval testing by @mclenhard in https://github.com/ihor-sokoliuk/mcp-searxng/pull/10 ## New Contributors * @mclenhard made their first contribution in https://github.com/ihor-sokoliuk/mcp-searxng/pull/10 **Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.5.1...v0.5.2Low8/9/2025
v0.5.1regular monitor and addressing of CVEs **Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.5.0...v0.5.1Low7/7/2025
v0.5.0## What's Changed * Make it work with Goose by @genkernel in https://github.com/ihor-sokoliuk/mcp-searxng/pull/9 * Add support for HTTP Basic Auth by @hutchisr in https://github.com/ihor-sokoliuk/mcp-searxng/pull/12 ## New Contributors * @genkernel made their first contribution in https://github.com/ihor-sokoliuk/mcp-searxng/pull/9 * @hutchisr made their first contribution in https://github.com/ihor-sokoliuk/mcp-searxng/pull/12 **Full Changelog**: https://github.com/ihor-sokoliuk/mcp-sLow6/2/2025
v0.4.5Fixed NPM installationLow4/22/2025
v0.4.1**Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.4.0...v0.4.1Low4/19/2025
v0.4.0**Full Changelog**: https://github.com/ihor-sokoliuk/mcp-searxng/compare/v0.3.4...v0.4.0Low4/19/2025
v0.3.3Automatically generated release for version 0.3.3 Changes since v0.3.2: Merge branch 'main' of github.com:ihor-sokoliuk/mcp-searxng Low4/17/2025
v0.3.2Automatically generated release for version 0.3.2 Changes since v0.3.1: fix: Update auto-release workflow to use Ubuntu runner and simplify Git configuration stepsLow4/17/2025

Dependencies & License Audit

Loading dependencies...

Similar Packages

mcp-ts-coreAgent-native TypeScript framework for building MCP servers. Build tools, not infrastructure.v0.10.0
studioOpen-source control plane for your AI agents. Connect tools, hire agents, track every token and dollarv2.396.1
ntfy-me-mcpAn ntfy MCP server for sending/fetching ntfy notifications to self-hosted or ANY ntfy.sh server from AI Agents ๐Ÿ“ค (supports secure token auth & more - use with npx or docker!)v1.4.2
mockloop-mcpIntelligent Model Context Protocol (MCP) server for AI-assisted API development. Generate mock servers from OpenAPI specs with advanced logging, performance analytics, and server discovery. Optimized v2.2.9
node9-proxyThe Execution Security Layer for the Agentic Era. Providing deterministic "Sudo" governance and audit logs for autonomous AI agents.v1.29.0

More in MCP Servers

claude-plugins-officialOfficial, Anthropic-managed directory of high quality Claude Code Plugins.
langchain4jLangChain4j is an open-source Java library that simplifies the integration of LLMs into Java applications through a unified API, providing access to popular LLMs and vector databases. It makes impleme
hyperframesWrite HTML. Render video. Built for agents.
claude-code-guideClaude Code Guide - Setup, Commands, workflows, agents, skills & tips-n-tricks go from beginner to power user!