Skip to main content

🌐 MCP Web Engine & Search Gateway

Privacy-First, Self-Hostable & SSRF-Hardened MCP Server & Web Engine for AI Agents MCP Specification 2026-07-28 Pure Stateless Core & Stdio / HTTP Dual Mode

PyPI Version npm Version License: MIT


⚡ Instant Quickstart with uvx (Recommended for AI Agents)

AI agents (Claude Desktop, Cursor, Windsurf, TurboLLM, Hermes Agent) can run mcp-web-engine in an isolated ephemeral environment with zero configuration:

# Run stdio MCP server in an isolated environment (10ms startup, 0% system contamination)
uvx mcp-web-engine

Or run via Git repository:

uvx --from git+https://github.com/Arbolencio/mcp-web-engine mcp-web-engine

📌 What it does & Why it exists

mcp-web-engine is a high-performance Model Context Protocol (MCP) server implementing the MCP Specification 2026-07-28 Pure Stateless Core. It provides AI Agents with secure, private, and SSRF-hardened access to multi-engine web search, raw content fetching, and clean HTML-to-Markdown extraction.

Key Capabilities & Architecture

  • Dual Execution Mode:
    • Stdio Mode (Default): Runs JSON-RPC over stdin/stdout for direct LLM client integration (uvx mcp-web-engine).
    • HTTP/SSE Server Mode: Runs FastAPI/Uvicorn server (mcp-web-engine --serve).
  • Pure Stateless Core (Spec 2026-07-28): Zero sessions, zero state, zero initialize handshake required. Every request is completely independent.
  • Protocol Methods: Implements server/discover, tools/list, and tools/call with standard JSON-RPC 2.0.
  • Zero Third-Party Tracking: Powered by an internal SearXNG meta-search engine aggregating 70+ sources with DuckDuckGo fallback.
  • Automatic URL Normalization: Handled transparently by normalize_searxng_url() — any provided SEARXNG_URL variation (http://127.0.0.1:8082, http://127.0.0.1:8082/, http://127.0.0.1:8082/search) automatically appends /search if missing.
  • SSRF Hardened: Pre-request DNS resolution checks prevent agents from accessing internal networks (localhost, 127.0.0.1, 192.168.x.x, 169.254.169.254). Step-by-step HTTP 301/302 redirect re-validation.
  • Zero --break-system-packages: Executed 100% in sandboxed virtual environments created on-the-fly by uv or venv.

🔌 Integration Guides

1. TurboLLM / Local MCP Catalog

{
  id: 'mcp-web-engine',
  name: 'MCP Web Engine',
  cat: 'Search',
  desc: 'Privacy-first, self-hostable & SSRF-hardened web search engine and scraper for AI agents.',
  cmd: 'uvx mcp-web-engine',
  uvx: true,
  argNote: 'Requires a running SearXNG instance.',
  envs: [
    { key: 'SEARXNG_URL', desc: 'SearXNG meta-search endpoint (default: http://127.0.0.1:8082/search)', required: true },
  ],
}

2. Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "mcp-web-engine": {
      "command": "uvx",
      "args": ["mcp-web-engine"],
      "env": {
        "SEARXNG_URL": "http://127.0.0.1:8082/search"
      }
    }
  }
}

3. Cursor / Windsurf / Hermes Agent

{
  "mcpServers": {
    "mcp-web-engine": {
      "command": "uvx",
      "args": ["mcp-web-engine"]
    }
  }
}

🛠️ Provided MCP Tools

Tool Name Parameters Description
web_search query (str), limit (int, default: 10) Multi-engine meta-search via SearXNG returning structured JSON results
fetch_url url (str), max_bytes (int, optional) Fetches raw web content after strict SSRF security validation
extract_markdown url (str), max_bytes (int, optional) Scrapes a webpage and converts HTML into clean, LLM-optimized Markdown

⚙️ Configuration & Environment Variables

Variable Required Default Description
SEARXNG_URL Yes http://127.0.0.1:8082/search SearXNG meta-search endpoint (Auto-normalizes trailing slashes and missing /search)
PORT No 5050 HTTP/SSE server port (Used only when running in --serve mode)
HOST No 0.0.0.0 HTTP/SSE server binding host
API_KEY No "" Optional authentication key for HTTP endpoints

🛠️ Development & Building

# Clone Repository
git clone https://github.com/Arbolencio/mcp-web-engine.git
cd mcp-web-engine

# Build Wheel for PyPI
python3 -m build --wheel

# Run locally in stdio mode via uv
uv run python -m mcp_web_engine.main

# Run locally in HTTP server mode via uv
uv run python -m mcp_web_engine.main --serve

🛡️ Security & Environment Isolation

  • SSRF Hardening: Blocks localhost, loopbacks, private subnets (10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12), percent-encoding bypasses (%31%32%37...), and re-validates Location headers on HTTP redirects step-by-step.
  • Zero Package Pollution: Execution via uvx or bin/cli.js never modifies global site-packages or uses dangerous flags like --break-system-packages.

📄 License

MIT License © 2026 MCP Web Engine Contributors.

Metadata

Release files for mcp-web-engine 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for mcp-web-engine 1.0.5
File Interpreter ABI Platform
mcp_web_engine-1.0.5-py3-none-any.whl Python 3 none any Details

Release files / mcp_web_engine-1.0.5-py3-none-any.whl

Download URL mcp_web_engine-1.0.5-py3-none-any.whl
Size 19.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3f38c3fbacec1d3a91abcde1c95488c294123d755debb391dd66cbb15d775e51
BLAKE2b-256 checksum
How to use checksums
b4cbe0701d6d7c6c15ec555d86d6f926b7f03ec93e46791c213f5790669c54c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

1.0.5 This release

1 release file

1.0.4

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page