Web Page Fetcher

io.github.paimonchan由 GitHub 账号 paimonchan 发布v0.1.2更新于 Oct 24, 2026

Fetch web pages with SSRF protection. Returns clean, readable markdown from any URL.

发布方自己的服务:App Store data for agents

概览

AI 生成的概览

让助手按 URL 抓取网页,并返回保留标题、列表、表格和代码块的整洁 Markdown 内容。

可以做什么
这是一个本地 MCP 服务器,接收 URL 后把页面内容转换为结构化 Markdown,采用类似 Readability 的正文提取,去除广告、导航和侧边栏。它内置 LRU 缓存、按域名限速、瞬时错误重试,以及包含私有 IP 拦截和重定向校验的 SSRF 防护。可选的构建标签可启用图片提取和基于无头 Chrome 的 JavaScript 渲染。
适用场景
适合助手需要阅读文章、博客、文档、新闻、论坛或日程页面并进行摘要或提取的场景。不适用于需要登录的页面、绕过付费墙,也不能替代完整的浏览器自动化工具。
运行要求
作为本地进程在用户机器上运行,仅支持桌面端。可通过 Go、Homebrew、Scoop、Winget 或 Docker 安装。无需账号或 API 密钥。可选的 JS 渲染需要已安装 Chrome 或 Chromium,并使用 jsrender 标签构建。配置通过环境变量完成,例如 PAIMON_MCP_FETCH_TIMEOUT、PAIMON_MCP_FETCH_MAX_LENGTH 和 PAIMON_MCP_FETCH_USER_AGENT。
安装前请注意
该服务器会向助手选定的 URL 发起外部 HTTP 请求,抓取到的内容会发送到这些站点。PAIMON_MCP_FETCH_DISABLE_ROBOTS 会关闭 robots.txt 检查,应谨慎使用。部分杀毒软件可能误报未签名的 Go 二进制文件;通过 go install、Docker 或自行从源码构建可避免。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Web Page Fetcher,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

paimon-mcp-fetch

Give your AI assistant the ability to read any webpage.

A lightweight MCP server that fetches URLs and returns clean, readable markdown. Built with Go — starts in 5ms, uses ~10MB RAM, zero runtime dependencies.

[Release] [Go Version] [License]


What It Does

You give it a URL → it returns clean markdown.

Good for:

  • Reading articles, blog posts, documentation
  • Extracting data from news sites, forums, schedules
  • Summarizing web content for your AI assistant
  • Getting structured output (headings, lists, tables, code blocks preserved)

Not good for:

  • Scraping login-protected pages
  • Bypassing paywalls
  • Replacing a full browser automation tool

Quick Start

1. Install

Pick one method:

bash
# Go (recommended)go install github.com/paimonchan/paimon-mcp-fetch/cmd/paimon-mcp-fetch@latest
# Homebrew (macOS/Linux)brew tap paimonchan/tapbrew install paimon-mcp-fetch
# Scoop (Windows)scoop bucket add paimonchan https://github.com/paimonchan/scoop-bucketscoop install paimon-mcp-fetch
# Winget (Windows)winget install paimonchan.paimon-mcp-fetch
# Dockerdocker run -i --rm ghcr.io/paimonchan/paimon-mcp-fetch:latest

2. Configure Your AI Assistant

Add this to your MCP client config:

json
{  "mcp": {    "paimon-mcp-fetch": {      "type": "local",      "command": ["paimon-mcp-fetch"],      "enabled": true    }  }}

3. Done

Your AI can now read any URL you give it.


Why This Over Other Fetch Tools?

paimon-mcp-fetchBasic text fetch
OutputStructured markdownPlain text
Article extractionReadability algorithm (strips ads, nav, sidebars)Raw HTML body
ImagesOptional extraction + processingNone
JS renderingOptional (headless Chrome)Static only
CachingBuilt-in LRU cacheNone
Rate limitingPer-domain, configurableNone
SSRF protection7-layer defenseNone
Startup time~5msVaries
Memory~10MBVaries

Configuration

Everything is controlled via environment variables. You probably don't need to change anything — defaults work well for most use cases.

VariableDefaultWhat it does
PAIMON_MCP_FETCH_TIMEOUT_MS12000Request timeout (ms)
PAIMON_MCP_FETCH_MAX_HTML_BYTES10485760Max page size (10MB)
PAIMON_MCP_FETCH_CACHE_TTL_SECS300Cache lifetime (5 min)
PAIMON_MCP_FETCH_RATE_LIMIT_PER_SECOND5.0Requests/sec per domain
PAIMON_MCP_FETCH_RATE_LIMIT_BURST10Max burst size
PAIMON_MCP_FETCH_RETRY_MAX_ATTEMPTS3Retry on transient errors
PAIMON_MCP_FETCH_JS_RENDER_ENABLEDfalseEnable headless Chrome

Optional Features

Image Processing

Extract and process images from webpages:

bash
go build -tags image -o paimon-mcp-fetch ./cmd/paimon-mcp-fetch/

JS Rendering

For JavaScript-heavy sites (SPAs, dynamic content):

bash
go build -tags jsrender -o paimon-mcp-fetch ./cmd/paimon-mcp-fetch/PAIMON_MCP_FETCH_JS_RENDER_ENABLED=true ./paimon-mcp-fetch

Note: Requires Chrome or Chromium installed. Slower (~3-5s/page) but handles sites that static fetch can't.


Supported AI Assistants

Works with any MCP-compatible client. Add the configuration below to your client's config file.

OpenCode

Config file: ~/.config/opencode/opencode.json

json
{  "mcp": {    "paimon-mcp-fetch": {      "type": "local",      "command": ["paimon-mcp-fetch"],      "enabled": true    }  }}

Claude Desktop

Config file: claude_desktop_config.json

json
{  "mcpServers": {    "paimon-mcp-fetch": {      "command": "paimon-mcp-fetch"    }  }}

Cursor

Config file: .cursor/mcp.json (project) or ~/.cursor/mcp.json (global)

json
{  "mcpServers": {    "paimon-mcp-fetch": {      "command": "paimon-mcp-fetch",      "env": {}    }  }}

VS Code (GitHub Copilot)

Config file: .vscode/mcp.json (workspace) or user settings

json
{  "servers": {    "paimon-mcp-fetch": {      "type": "stdio",      "command": "paimon-mcp-fetch"    }  }}

Cline

Config file: .cline/mcp.json

json
{  "mcpServers": {    "paimon-mcp-fetch": {      "command": "paimon-mcp-fetch"    }  }}

Windsurf

Config file: .windsurf/mcp.json

json
{  "mcpServers": {    "paimon-mcp-fetch": {      "command": "paimon-mcp-fetch"    }  }}

With Custom Configuration

All clients support environment variables. Example with custom timeout and cache:

json
{  "mcpServers": {    "paimon-mcp-fetch": {      "command": "paimon-mcp-fetch",      "env": {        "PAIMON_MCP_FETCH_TIMEOUT_MS": "30000",        "PAIMON_MCP_FETCH_CACHE_TTL_SECS": "600"      }    }  }}

Security

Built with security in mind from day one:

  • SSRF Protection — 7-layer defense against server-side request forgery
  • Private IP blocking — Can't access localhost or internal networks
  • Redirect validation — Every redirect hop re-checked for safety
  • Size limits — Stream-based reading, no memory bombs
  • Timeouts — All requests have deadlines
  • No secrets in logs — API keys and tokens never logged

Windows Antivirus

Some antivirus may flag unsigned Go binaries as a false positive. This is a known industry issue. Solutions:

  1. Use go install — antivirus sees the signed Go compiler
  2. Use Docker — no local binary
  3. Build from source — verify the code yourself

Architecture

Built with Clean Architecture principles:

MCP Server → UseCase → Domain (entities, ports)                        ↑            Adapters implement interfaces
  • Domain — Business rules, zero external dependencies
  • UseCase — Orchestration logic
  • Adapters — HTTP client, content extractor, cache, rate limiter, image processor, JS renderer

Full details in the project plan.


License

MIT — do whatever you want with it.


Built with Go. Zero runtime dependencies. Single binary. ~10MB RAM. Starts in 5ms.

来源:README.md,提交 8ca944b

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Fetcher 集成