Skip to main content
Glama
AngelN-Halo

MCP Web Search Pro

by AngelN-Halo

MCP Web Search Pro

一个扩展的、自托管的网络研究服务器,适用于兼容 MCP 的客户端。它为 AI 助手提供了发现网页、提取可读内容、渲染 JavaScript 应用程序、在页面不可用时使用互联网档案馆以及读取 YouTube 字幕的工具。

该服务设计用于本地或可信网络环境。它是无状态的,不需要 API 密钥,并在端口 8082 上暴露 MCP Streamable HTTP 传输。它可以与另一个端口上的轻量级网络搜索 MCP 服务器一起运行。

作为端口 8082 上的独立容器运行,与轻量级的 mcp-web-search(端口 8081)一起。根据任务将客户端指向合适的服务器——如果专业版感觉缓慢,轻量版仍然在那里,不受影响。

功能

  • 通过 DuckDuckGo 进行网络搜索,支持结果限制和区域选择。

  • 将可读的 HTML 提取为 Markdown,并移除导航和样板内容。

  • 自动 PDF 检测和文本提取。

  • 为 React、Vue、SPA 和其他 JS 密集型页面提供无头 Chromium 渲染。

  • 针对不可用或已更改页面的 Wayback Machine 快照。

  • 从 URL 或视频 ID 获取 YouTube 转录,支持可选的时间戳。

  • 用于容器和进程检查的 /health 端点。

  • 无状态 Streamable HTTP 和 stdio MCP 传输。

Related MCP server: Basic MCP Tools

MCP 工具

工具

描述

web_search

通过 DuckDuckGo (ddgs) 搜索网络。参数:query(必需),max_results(1–20),region。

web_fetch

获取 URL → Markdown。自动检测 PDF 并提取文本。使用 trafilatura 进行干净的文章提取(移除导航/广告/样板内容)。参数:url,timeout。

web_fetch_js

使用无头 Chromium 渲染 JS 密集型 / SPA 页面,然后提取文本。当 web_fetch 返回空/存根页面时使用。较慢(约 5–15 秒)。参数:url,wait_ms(0–15000,默认 2500),timeout。

web_fetch_archive

从 Wayback Machine 获取 URL 的最新(或带时间戳的)存档快照。在临时 503 错误时重试。参数:url,timestamp(可选 YYYYMMDDhhmm)。

youtube_transcript

获取 YouTube 视频的转录。接受完整的 YouTube URL 或仅 11 个字符的视频 ID。参数:url,include_timestamps(布尔值,默认 false)。

对于普通页面使用 web_fetch,因为它更快。当第一个工具返回空壳或不完整内容(因为网站依赖于客户端 JavaScript)时,使用 web_fetch_js。

使用 Docker 运行

docker compose up -d --build

验证:

curl http://localhost:8082/health      # → {"status":"ok"}

日志 / 重启 / 停止:

docker compose logs -f
docker compose restart
docker compose down

首次构建较大(约 400MB),因为它会为 Playwright 下载 Chromium。后续构建会重用缓存的层。

连接客户端

将任何兼容 MCP 的客户端指向:

http://<server-host>:8082/mcp

无需标头或 API 密钥。服务器以无状态模式运行。

在没有 Docker 的情况下本地运行

推荐使用 Python 3.12:

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
playwright install --with-deps chromium
python server.py

直接运行 HTTP 传输:

python server.py --sse --host 127.0.0.1 --port 8082

尽管历史上有 --sse 选项名称,但 HTTP 实现使用无状态 MCP Streamable HTTP 传输。

性能说明

  • 只有 web_fetch_js 在运行时较重——每次调用都会启动 Chromium(约 5–15 秒)。其他四个工具是轻量级的纯 Python,保持快速响应。

  • docker-compose.yml 中的 shm_size: 1gb 可防止容器内 Chromium 沙箱崩溃。

  • 对于常规的非 JS 页面,使用 web_fetch(快速);将 web_fetch_js 保留给使用 JavaScript 渲染内容的 React/Vue/SPA 网站。

配置

要更改端口,请编辑 docker-compose.yml 中的 ports: 映射和 command:。要启用原始请求/响应日志以进行调试,请切换到注释掉的 --verbose command: 行。

验证

此仓库旨在作为源代码和 Docker 构建配置推送。目前没有自动化测试套件。推荐的项目检查是:

git diff --check
docker compose config
docker compose up -d --build
curl http://localhost:8082/health
docker compose logs --tail=100
docker compose down

不要在没有添加身份验证或将其放在受信任的反向代理后面的情况下,将此服务直接发布到公共互联网。HTTP 模式绑定到 0.0.0.0,允许没有 API 密钥的请求,并允许所有来源;这对于本地 MCP 客户端很方便,但不是访问控制层。

安全与操作说明

  • web_fetch 和 web_fetch_js 可以请求任意 HTTP(S) URL。如果不受信任的用户可以调用该服务,请限制网络访问或添加 URL/DNS 保护措施。

  • 在短暂的本地调试会话之外,保持 --verbose 禁用,因为它会记录请求和响应体。

  • 依赖项使用最低版本约束。在依赖可重现的生产构建之前,请固定或锁定版本。

文件

  • server.py — MCP 服务器(5 个工具)

  • requirements.txt — mcp,httpx,beautifulsoup4,markdownify,ddgs,trafilatura,pypdf,youtube-transcript-api,playwright

  • Dockerfile — Python 3.12-slim + Playwright Chromium

  • docker-compose.yml — 端口 8082 上的服务,带有 shm_size: 1gb

许可证

目前未包含许可证文件。在接受外部贡献或重新分发项目之前,请添加许可证。

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Zero-auth multi-source research MCP server that enables web search, reading URLs, PDFs, GitHub repos, and querying Hacker News, Stack Overflow, Semantic Scholar, and YouTube transcripts without API keys.
    11
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    A self-hosted MCP server providing private web search, web page fetching, and current date/time tools, powered by a bundled SearXNG instance for API-key-free local search.
    2
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A fully local MCP server that provides web search via self-hosted SearXNG and page-to-markdown conversion (static and JS-rendered), all aggregated behind a single endpoint for use with AI assistants.
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP server enabling local-first web search, fetch, extract, and caching with citeable excerpts, no API key required. Supports research workflows for agents and apps.
    105 npm
    1
    MIT