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 整合