隐私搜索服务器

MCP Web Search Server 是一款专注于隐私保护的网页、社交媒体和存档搜索服务器,通过模型控制协议(MCP)提供对外部搜索能力的受控访问。

  • by undici77
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 undici77/MCPWebSearch

使用说明

📂 MCP Web搜索服务器

一个以隐私为重点的网络、社交媒体和档案搜索服务器,通过模型控制协议(MCP)公开工具,以控制对外部搜索功能的访问。


目录


🎯 特性

  • 并行查找 跨多个以隐私为中心的网络引擎。
  • 社交媒体查询 主要平台上的公共内容。
  • 档案检索 来自Wayback Machine、archive.today、谷歌缓存等。
  • 动态列表 支持的引擎和归档服务。
  • 结果缓存 通过LRU驱逐来加快重复查询。

📦 安装和快速启动

# Clone the repository (if applicable)
git clone https://github.com/undici77/MCPWebSearch.git
cd MCPWebSearch

# Run the startup script (adjust name if different)
./run.sh -d /path/to/working/directory

1️⃣ 创建并激活 Python虚拟环境(.venv).
2️⃣ 安装 来自的所有必需依赖项 requirements.txt.
3️⃣ 发射 MCP搜索服务器(main.py)它在听 用于JSON-RPC消息的stdin/stdout。

📌 确保启动脚本可执行: chmod +x run.sh


⚙️ 命令行选项

选项 描述
-d, --directory 工作目录的路径(默认:当前进程目录)。

服务器本身不需要额外的CLI标志;所有配置都是通过JSON-RPC执行的。


🤝 与LM集成 工作室

将条目添加到您的 mcp.json so LM Studio可以自动启动服务器:

{
  "mcpServers": {
    "web-search": {
      "command": "/absolute/path/to/run.sh",
      "args": [
        "-d",
        "/absolute/path/to/working/directory"
      ],
      "env": { "WORKING_DIR": "." }
    }
  }
}

📌 使脚本可执行(chmod +x /absolute/path/to/run.sh)然后跑 ./run.sh 在启动LM之前安装一次虚拟环境 工作室。


📡 MCP API概述

所有通信如下 JSON-RPC 2.0 通过stdin/stdout。

initialize

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {}
}

响应:协议版本(2024-11-05)、服务器功能(工具枚举)和基本服务器信息(name, version).

tools/list

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/list",
  "params": {}
}

响应:一组工具定义(名称、描述、输入模式)。

tools/call

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "<tool_name>",
    "arguments": { … }
  }
}

备注:工具标识符密钥为 name,不 tool.


🛠️ 可用工具

网络搜索

并行使用多个以隐私为重点的引擎搜索网络。

名称 类型 必填 描述
query string ✅ 搜索查询(最大 500 字符)。
engine string ❌ (默认值all) 要使用的发动机(duckduckgo, brave, startpage, ecosia, mojeek, yandex 或 all).
max_results 整数 ❌ (默认值 20) 每个引擎的最大结果(1‑50)。

示例

{
  "jsonrpc": "2.0",
  "id": 10,
  "method": "tools/call",
  "params": {
    "name": "web_search",
    "arguments": {
      "query": "privacy focused search engines",
      "engine": "duckduckgo",
      "max_results": 15
    }
  }
}

服务器返回一个格式化的文本块,其中包含来自每个选定引擎的标题、URL和代码片段。


社交搜索

在主要社交媒体平台上搜索公共内容。

名称 类型 必填 描述
query string ✅ 搜索查询(最大 500 字符)。
platform string ❌ (默认值all) 搜索平台(twitter, reddit, youtube, github, stackoverflow, medium, pinterest, tiktok, instagram, facebook, linkedin 或 all).

示例

{
  "jsonrpc": "2.0",
  "id": 11,
  "method": "tools/call",
  "params": {
    "name": "social_search",
    "arguments": {
      "query": "AI ethics research",
      "platform": "reddit"
    }
  }
}

响应包含可以在浏览器中打开的直接URL。


档案搜索

在多个web存档服务中查找URL的存档版本。

名称 类型 必填 描述
url string ✅ 完整的URL(必须包括 http:// 或 https://).
service string ❌ (默认值all) 存档服务(wayback, archive_today, google_cache, bing_cache, yandex_cache, cachedview, ghostarchive 或 all).
check_availability boolean ❌ (默认值 false) 当为true时,服务器向Wayback Machine API查询快照统计信息。

示例

{
  "jsonrpc": "2.0",
  "id": 12,
  "method": "tools/call",
  "params": {
    "name": "archives_search",
    "arguments": {
      "url": "https://example.com",
      "service": "wayback",
      "check_availability": true
    }
  }
}

响应列出了存档URL,如果需要,还列出了快照计数和时间戳。


list_engines

列出所有可用的以隐私为重点的搜索引擎。

名称 类型 必填 描述
(无参数) — — —

示例

{
  "jsonrpc": "2.0",
  "id": 13,
  "method": "tools/call",
  "params": {
    "name": "list_engines",
    "arguments": {}
  }
}

服务器返回每个引擎的markdown格式的概述和使用说明。


列表_档案_服务

列出所有支持的web存档服务。

名称 类型 必填 描述
(无参数) — — —

示例

{
  "jsonrpc": "2.0",
  "id": 14,
  "method": "tools/call",
  "params": {
    "name": "list_archives_services",
    "arguments": {}
  }
}

响应包括对每个服务、其ID和关键功能的描述。


clear_cache

清除内部搜索结果缓存。

名称 类型 必填 描述
(无参数) — — —

示例

{
  "jsonrpc": "2.0",
  "id": 15,
  "method": "tools/call",
  "params": {
    "name": "clear_cache",
    "arguments": {}
  }
}

服务器以确认消息进行回复。


🔐 安全功能

  • 查询净化 –去除控制字符,删除HTML标签并强制执行 MAX_QUERY_LENGTH (500).
  • 严格的URL验证 –仅接受 http:// 或 https:// 具有有效域的方案。
  • 堵塞的图案 –regex防止 <script> 注射, javascript: URI和事件处理程序属性。
  • 输入架构强制 –每个工具都通过JSON-RPC验证必填字段 inputSchema.
  • 速率限制 –异步信号量限制并发外部请求(MAX_CONCURRENT_SEARCHES).

©2025 Undici77-保留所有权利。