Skip to content
Conduit

mcp server

SearchInlet

SearchInlet is a high-performance, self-hosted MCP (Model Context Protocol) Gateway for SearXNG. It provides AI Agents with a secure, LLM-optimized interface for searching the internet, featuring adva

webdunesurfer/SearchInletcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 23, 2026

SearchInlet 🌊

SearchInlet is a high-performance, self-hosted MCP (Model Context Protocol) Gateway for SearXNG. It provides AI Agents with a secure, LLM-optimized interface for searching the internet, featuring advanced distillation, token management, and simple access control.


🚀 Key Features

  • MCP Native: Built using the official Go MCP SDK for seamless integration with Claude Desktop, Cursor, and other AI Agents.
  • SearXNG Powered: Aggregates results from 70+ search engines while maintaining privacy. Supports multiple backend URLs with automatic failover.
  • LLM Optimized:
    • Sanitization: Strips boilerplate, HTML, and scripts for clean context.
    • Truncation: Token-aware trimming using tiktoken to fit your model's context window.
    • Local Distillation: Intelligent relevance scoring and snippet extraction using local Ollama models (e.g. Qwen, Llama).
  • Self-Hosted Utility: Designed to be run on your own VPS. Includes a simple Admin UI for generating access tokens, setting basic rate limits, and managing local LLM models.
  • High Performance: Written in Go for low-latency concurrent processing.
  • Modern Dashboard: Real-time tracking of model downloads and usage statistics.

🛠 Architecture

SearchInlet acts as a bridge between your AI Agent and a local search backend, now featuring a dedicated distillation layer.

graph LR
    Agent[AI Agent / MCP Client] <--> Caddy[Caddy SSL]
    Caddy <--> SI[SearchInlet Gateway]
    SI <--> SX[SearXNG Backend]
    SI <--> OL[Ollama Service]
    
    subgraph "SearchInlet Internal"
        SI_MCP[MCP Server Layer]
        SI_Auth[Auth & Rate Limiting]
        SI_Proc[Optimization Pipeline]
        SI_DB[(SQLite Database)]
    end

Detailed architecture can be found in docs/Architecture.md.


📅 Roadmap & Phases

The project has successfully completed its core development phases:

  1. Phase 1: Core Foundation - Basic MCP gateway, SearXNG client, and sanitization logic. (✅ Completed)
  2. Phase 2: Access Control & Admin Layer - SQLite DB, Token generation, SSE transport, and simple Admin UI. (✅ Completed)
  3. Phase 3: Local Distillation - Advanced context optimization using small local LLMs via Ollama. (✅ Completed)
  4. Phase 4: Interaction & Performance - read_page tool, streaming responses, and progress tracking. (✅ Completed)

[!WARNING] Performance Note: Local distillation is CPU and RAM intensive. On standard VPS instances, it may take 30-60 seconds to process a single search. If your AI Agent returns a Request timed out error, consider disabling distillation or upgrading to a VPS with more CPU cores or a GPU.


🏃 Quick Start (Linux / Server Deployment)

Prerequisites

  • Docker & Docker Compose installed.

Installation

Deploying the SearXNG backend and building the MCP server takes just one command.

curl -sSL https://raw.githubusercontent.com/webdunesurfer/SearchInlet/main/install.sh | bash

The script will automatically:

  1. Clone the repository (if not already downloaded).
  2. Generate a secure, random SEARXNG_SECRET to protect sessions.
  3. Boot a local, privacy-respecting SearXNG instance using Docker.
  4. Cross-compile the Go MCP server binary (no local Go installation required).

Connecting your AI Agent (Cursor / Claude Desktop)

Option A: HTTPS / SSE (Recommended)

  1. Log into your dashboard at https://searchinlet.com.
  2. Generate an Access Token.
  3. Add the following to your Agent's MCP config:
{
  "mcpServers": {
    "searchinlet": {
      "url": "https://searchinlet.com/sse",
      "headers": {
        "Authorization": "Bearer sk-YOUR_TOKEN_HERE"
      }
    }
  }
}

Option B: SSH Tunnel (Legacy)

If you prefer not to expose the server via HTTPS, you can still connect via SSH:

{
  "mcpServers": {
    "searchinlet": {
      "command": "ssh",
      "args": [
        "user@your-server-ip",
        "SEARXNG_URL=http://localhost:8088/search /home/user/SearchInlet/bin/mcp-server-linux"
      ]
    }
  }
}

🧪 Testing with MCP Inspector

You can test the server using the official MCP Inspector:

npx @modelcontextprotocol/inspector ./bin/mcp-server

📄 License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0). See the LICENSE file for details.

↑↓ navigate openesc close