paimon-mcp-fetch
Enables GitHub Copilot in VS Code to fetch and read any webpage, returning structured markdown.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@paimon-mcp-fetchfetch https://example.com/blog"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
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
Related MCP server: superFetch MCP Server
Quick Start
1. Install
Pick one method:
# Go (recommended)
go install github.com/paimonchan/paimon-mcp-fetch/cmd/paimon-mcp-fetch@latest
# Homebrew (macOS/Linux)
brew tap paimonchan/tap
brew install paimon-mcp-fetch
# Scoop (Windows)
scoop bucket add paimonchan https://github.com/paimonchan/scoop-bucket
scoop install paimon-mcp-fetch
# Winget (Windows)
winget install paimonchan.paimon-mcp-fetch
# Docker
docker run -i --rm ghcr.io/paimonchan/paimon-mcp-fetch:latest2. Configure Your AI Assistant
Add this to your MCP client config:
{
"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-fetch | Basic text fetch | |
Output | Structured markdown | Plain text |
Article extraction | Readability algorithm (strips ads, nav, sidebars) | Raw HTML body |
Images | Optional extraction + processing | None |
JS rendering | Optional (headless Chrome) | Static only |
Caching | Built-in LRU cache | None |
Rate limiting | Per-domain, configurable | None |
SSRF protection | 7-layer defense | None |
Startup time | ~5ms | Varies |
Memory | ~10MB | Varies |
Configuration
Everything is controlled via environment variables. You probably don't need to change anything — defaults work well for most use cases.
Variable | Default | What it does |
|
| Request timeout (ms) |
|
| Max page size (10MB) |
|
| Cache lifetime (5 min) |
|
| Requests/sec per domain |
|
| Max burst size |
|
| Retry on transient errors |
|
| Enable headless Chrome |
Optional Features
Image Processing
Extract and process images from webpages:
go build -tags image -o paimon-mcp-fetch ./cmd/paimon-mcp-fetch/JS Rendering
For JavaScript-heavy sites (SPAs, dynamic content):
go build -tags jsrender -o paimon-mcp-fetch ./cmd/paimon-mcp-fetch/
PAIMON_MCP_FETCH_JS_RENDER_ENABLED=true ./paimon-mcp-fetchNote: 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
{
"mcp": {
"paimon-mcp-fetch": {
"type": "local",
"command": ["paimon-mcp-fetch"],
"enabled": true
}
}
}Claude Desktop
Config file: claude_desktop_config.json
{
"mcpServers": {
"paimon-mcp-fetch": {
"command": "paimon-mcp-fetch"
}
}
}Cursor
Config file: .cursor/mcp.json (project) or ~/.cursor/mcp.json (global)
{
"mcpServers": {
"paimon-mcp-fetch": {
"command": "paimon-mcp-fetch",
"env": {}
}
}
}VS Code (GitHub Copilot)
Config file: .vscode/mcp.json (workspace) or user settings
{
"servers": {
"paimon-mcp-fetch": {
"type": "stdio",
"command": "paimon-mcp-fetch"
}
}
}Cline
Config file: .cline/mcp.json
{
"mcpServers": {
"paimon-mcp-fetch": {
"command": "paimon-mcp-fetch"
}
}
}Windsurf
Config file: .windsurf/mcp.json
{
"mcpServers": {
"paimon-mcp-fetch": {
"command": "paimon-mcp-fetch"
}
}
}With Custom Configuration
All clients support environment variables. Example with custom timeout and cache:
{
"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:
Use
go install— antivirus sees the signed Go compilerUse Docker — no local binary
Build from source — verify the code yourself
Architecture
Built with Clean Architecture principles:
MCP Server → UseCase → Domain (entities, ports)
↑
Adapters implement interfacesDomain — 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.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/paimonchan/paimon-mcp-fetch'
If you have feedback or need assistance with the MCP directory API, please join our Discord server