Pure-Go browser for AI: fetch pages, render JS without Chromium, return clean Markdown over MCP.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-christopherdavenport-unblink": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Pure-Go browser for AI: fetch pages, render JS without Chromium, return clean Markdown over MCP.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationBe the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in browser / writing
🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
Browser automation with Puppeteer for web scraping and testing
Self-hosted URL- and file-to-Markdown service for humans and AI agents - web pages, documents, images, audio, YouTube. PWA + REST + MCP + Claude Code skill, Reddit-aware, refreshable share links.
The Apify MCP server enables your AI agents to extract data from social media, search engines, maps, e-commerce sites, or any other website using thousands of ready-made scrapers, crawlers, and automation tools available on the Apify Store.
MCP Security Weekly
Get CVE alerts and security updates for io.github.ChristopherDavenport/unblink and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A pure-Go (no cgo, no Chromium) "web browser" whose purpose is not visual rendering but exposing web information to an AI model. unblink fetches a page, parses it, strips visual-only junk (scripts, styles, navigation, ads), and hands the model a clean, token-budgeted Markdown representation — over the Model Context Protocol (MCP).
An AI doesn't need pixels. It needs structured meaning.
fetch(url) → parse HTML5 → [optionally execute JS] → semantic reduction → emit Markdown
v0.18.0. The full pipeline works end to end: MCP tools covering reading,
navigation, sessions, forms, structured data, schema extraction, site discovery,
and search. The
static read path turns most server-rendered pages into clean Markdown with zero
JavaScript; the JavaScript engine — on by default (opt out with --disable-js)
— renders mainstream SPA frameworks and powers live interactive sessions
(interact). It ships as one
static binary (~36 MB) with a ~26 MB idle footprint — measured head-to-head on
identical pages, roughly 5× lighter idle and 10× faster to start than a
headless Chromium, turning SPA fixtures around in ~2–10 ms per render
(ahead of the warm-browser MCP tools on the same corpus — the settle proves
idleness instead of waiting out a quiet window, ADR 0004), and it reads a
nav-heavy page for ~1% of the tokens of a browser-tool accessibility
snapshot (measured, against all
four alternatives). See
docs/architecture.md for the full design (phases 0–23)
and its non-goals, and docs/comparison.md for how unblink
compares to other AI web-browsing tools (Playwright MCP, Charlotte, Obscura,
Lightpanda).
The official MCP Go SDK requires Go ≥ 1.25. The Makefile sets
GOTOOLCHAIN=auto, so the go command downloads the toolchain pinned in
go.mod automatically — you do not need to install Go 1.25 yourself, and your
global go env is left untouched. (If you run go directly rather than via
make, prefix commands with GOTOOLCHAIN=auto.)
GOTOOLCHAIN=auto go install github.com/christopherdavenport/unblink/cmd/unblink@latest
Or run the multi-arch (amd64/arm64) Docker image — no Go toolchain needed:
docker run -i --rm ghcr.io/christopherdavenport/unblink:latest --version
Or download a prebuilt binary from the GitHub releases page, or build from source (see Build & run).
unblink speaks MCP over stdio, so any MCP-capable client launches it as a subprocess. For Claude Code:
claude mcp add unblink -- /path/to/unblink
# or, via Docker (no install):
claude mcp add unblink -- docker run -i --rm ghcr.io/christopherdavenport/unblink:latest
For Claude Desktop (or any client using the mcpServers config shape), add
to claude_desktop_config.json:
{
"mcpServers": {
"unblink": {
"command": "/path/to/unblink",
"args": []
}
// or, via Docker:
// "unblink": {
// "command": "docker",
// "args": ["run", "-i", "--rm", "ghcr.io/christopherdavenport/unblink:latest"]
// }
}
}
JavaScript rendering is on by default; add --disable-js for the zero-JavaScript
static read path (lighter, still handles most server-rendered pages). Add flags
like --search-provider or --tls-mimic to