No description
  • TypeScript 93.7%
  • JavaScript 6.2%
  • Dockerfile 0.1%
Find a file
2026-05-24 16:05:48 -04:00
.github/workflows feat: update mcp-publisher installation method in workflow 2026-04-01 01:38:45 -05:00
.mcp Point metadata at Carpocratian fork 2026-05-19 09:45:08 -04:00
__tests__ Replace search-and-read with research evidence tool 2026-05-24 16:05:48 -04:00
scripts feat: update server.json version handling and simplify package version assignment 2026-04-01 01:20:54 -05:00
src Replace search-and-read with research evidence tool 2026-05-24 16:05:48 -04:00
.dockerignore feat: Add .dockerignore and update .gitignore to include additional files and directories 2025-04-16 20:07:07 -05:00
.gitignore Added screenshots 2026-05-19 10:23:27 -04:00
CONFIGURATION.md Add structured search tools and gate direct URL reads 2026-05-19 09:41:45 -04:00
CONTRIBUTING.md Point metadata at Carpocratian fork 2026-05-19 09:45:08 -04:00
Dockerfile fix: optimize Dockerfile by removing global npm installation 2026-04-01 17:36:24 -05:00
eslint.config.js refactor: update server implementation to use McpServer and enhance logging 2026-03-30 16:34:12 -05:00
LICENSE Initial commit 2024-12-22 20:00:51 -06:00
package-lock.json Add structured search tools and gate direct URL reads 2026-05-19 09:41:45 -04:00
package.json Point metadata at Carpocratian fork 2026-05-19 09:45:08 -04:00
quick-start.png Resize screenshots 2026-05-19 10:26:30 -04:00
README.md Replace search-and-read with research evidence tool 2026-05-24 16:05:48 -04:00
searxng_news_headlines.png Resize screenshots 2026-05-19 10:26:30 -04:00
searxng_video_search.png Resize screenshots 2026-05-19 10:26:30 -04:00
tsconfig.json [feat] restructure project to use 'src' directory for source files and update related paths 2025-08-22 19:38:46 -05:00

mcp-searxng

A fork of mcp-searxng: an MCP server for querying a SearXNG instance from an MCP client.

This fork keeps the package name mcp-searxng, adds structured search-oriented tools, and disables arbitrary direct URL reads by default.

Repository: https://git.carpocratian.org/sibyl/mcp-searxng.git

What This Fork Does

  • Exposes SearXNG-backed search tools over MCP
  • Returns normalized structured search results by default
  • Supports dedicated news, image, video, and research evidence tools
  • Keeps web_url_read available only behind ENABLE_WEB_URL_READ=true
  • Supports both STDIO and HTTP transport

Security Posture

The direct web_url_read tool is disabled by default in this fork.

That means:

  • searxng_research still performs controlled internal reads of selected search results
  • internal fetch-and-convert logic still exists for top search results
  • arbitrary user-supplied URL reads are not exposed unless you opt in

To enable direct URL reads in a trusted deployment:

ENABLE_WEB_URL_READ=true

If you expose the HTTP transport on a network, also use the hardened HTTP settings described in CONFIGURATION.md.

Build

git clone https://git.carpocratian.org/sibyl/mcp-searxng.git
cd mcp-searxng
npm install
npm run build

Quick Start

Example MCP client configuration using the local build:

{
  "mcpServers": {
    "searxng": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-searxng/dist/index.js"],
      "env": {
        "SEARXNG_URL": "https://search.example.com"
      }
    }
  }
}

Tools

General SearXNG search with structured normalized output by default.

Key inputs:

  • query
  • pageno
  • categories
  • engines
  • time_range
  • language
  • response_mode

searxng_news_headlines

News-focused wrapper around SearXNG with news category and same-day recency defaults.

Image-focused wrapper around SearXNG.

Video-focused wrapper around SearXNG.

searxng_research

Searches first, reads selected result pages, chunks the Markdown, and returns ranked source evidence.

Key inputs:

  • query
  • max_results
  • max_chunks
  • max_chunks_per_source
  • max_content_length
  • chunk_target_chars
  • chunk_overlap_chars

web_url_read

Disabled by default.

Enable it only for trusted deployments:

ENABLE_WEB_URL_READ=true

Transport

By default the server uses STDIO.

To enable HTTP transport:

MCP_HTTP_PORT=3000

HTTP mode exposes:

  • POST /mcp
  • GET /mcp
  • DELETE /mcp
  • GET /health

Configuration

The most important variables are:

  • SEARXNG_URL
  • ENABLE_WEB_URL_READ
  • MCP_HTTP_PORT
  • MCP_HTTP_HARDEN
  • MCP_HTTP_AUTH_TOKEN
  • MCP_HTTP_ALLOWED_ORIGINS
  • MCP_SERVER_NAME

Full reference: CONFIGURATION.md

Development

npm test
npm run build

Notes

  • This fork currently keeps the original package name.
  • The MCP package identifier in package.json still reflects the upstream namespace.