Enables privacy-focused web searches through Brave search engine, supporting parallel queries and configurable result limits.
Provides web search capabilities using DuckDuckGo's privacy-focused search engine with support for result caching and customizable result counts.
Allows web searches through Ecosia's eco-friendly search engine with configurable result limits and parallel search support.
Enables searching public Facebook content through social media search tools.
Provides search capabilities for public GitHub content across repositories, issues, and discussions.
Supports retrieving archived versions of web pages from Google Cache through the archives search functionality.
Enables searching public Instagram content through social media search tools.
Provides search capabilities for public Medium articles and publications.
Enables privacy-focused web searches through Mojeek search engine with support for parallel queries and result caching.
Allows searching public Pinterest content including pins and boards.
Provides search capabilities for public Reddit posts, comments, and communities across the platform.
Enables privacy-focused web searches through Startpage with support for parallel queries and configurable result limits.
Allows searching public TikTok content through social media search tools.
Provides search capabilities for YouTube videos and channels through social media search functionality.
📂 MCP Web Search Server
A privacy‑focused web, social media, and archive search server exposing tools via the Model Control Protocol (MCP) for controlled access to external search capabilities.
Table of Contents
🎯 Features
Parallel search across multiple privacy‑focused web engines.
Social media lookup for public content on major platforms.
Archive retrieval from Wayback Machine, archive.today, Google Cache and others.
Dynamic listing of supported engines and archive services.
Result caching with LRU eviction to speed up repeated queries.
📦 Installation & Quick Start
1️⃣ Create & activate a Python virtual environment (.venv).
2️⃣ Install all required dependencies from requirements.txt.
3️⃣ Launch the MCP Search Server (main.py) which listens on stdin/stdout for JSON‑RPC messages.
📌 Ensure the startup script is executable:
chmod +x run.sh
⚙️ Command‑Line Options
Option | Description |
,
| Path to the working directory (default: current process dir). |
The server itself does not require additional CLI flags; all configuration is performed via JSON‑RPC.
🤝 Integration with LM Studio
Add an entry to your mcp.json so LM Studio can start the server automatically:
📌 Make the script executable (
chmod +x /absolute/path/to/run.sh) and run./run.shonce to install the virtual environment before launching LM Studio.
📡 MCP API Overview
All communication follows JSON‑RPC 2.0 over stdin/stdout.
initialize
Response: protocol version (2024-11-05), server capabilities (tool enumeration) and basic server info (name, version).
tools/list
Response: an array of tool definitions (name, description, input schema).
tools/call
Note: The tool identifier key is name, not tool.
🛠️ Available Tools
web_search
Search the web using multiple privacy‑focused engines in parallel.
Name | Type | Required | Description |
| string | ✅ | Search query (max 500 characters). |
| string | ❌ (default
) | Engine to use (
,
,
,
,
,
or
). |
| integer | ❌ (default 20) | Max results per engine (1‑50). |
Example
The server returns a formatted text block containing titles, URLs and snippets from each selected engine.
social_search
Search public content on major social‑media platforms.
Name | Type | Required | Description |
| string | ✅ | Search query (max 500 characters). |
| string | ❌ (default
) | Platform to search (
,
,
,
,
,
,
,
,
,
,
or
). |
Example
The response contains direct URLs that can be opened in a browser.
archives_search
Find archived versions of a URL across multiple web‑archive services.
Name | Type | Required | Description |
| string | ✅ | Complete URL (must include
or
). |
| string | ❌ (default
) | Archive service (
,
,
,
,
,
,
or
). |
| boolean | ❌ (default false) | When true, the server queries the Wayback Machine API for snapshot statistics. |
Example
The response lists archive URLs and, if requested, snapshot counts and timestamps.
list_engines
List all available privacy‑focused search engines.
Name | Type | Required | Description |
(No parameters) | — | — | — |
Example
The server returns a markdown‑formatted overview of each engine and usage notes.
list_archives_services
List all supported web‑archive services.
Name | Type | Required | Description |
(No parameters) | — | — | — |
Example
The response includes a description of each service, its ID and key features.
clear_cache
Clear the internal search‑result cache.
Name | Type | Required | Description |
(No parameters) | — | — | — |
Example
The server replies with a confirmation message.
🔐 Security Features
Query sanitisation – strips control characters, removes HTML tags and enforces
MAX_QUERY_LENGTH(500).Strict URL validation – accepts only
http://orhttps://schemes with a valid domain.Blocked patterns – regexes prevent
<script>injection,javascript:URIs and event‑handler attributes.Input schema enforcement – each tool validates required fields via the JSON‑RPC
inputSchema.Rate limiting – an asyncio semaphore caps concurrent external requests (
MAX_CONCURRENT_SEARCHES).
© 2025 Undici77 – All rights reserved.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Enables privacy-focused web searches, social media lookups, and web archive retrieval across multiple engines including DuckDuckGo, Brave, Reddit, YouTube, and Wayback Machine with built-in caching and security features.