Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Give your AI the ability to read the web. Fetches URLs as clean markdown with multi-tier fallback.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
BRAVE_API_KEYValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"intercept": {
"command": "npx",
"args": [
"-y",
"intercept-mcp"
],
"env": {
"BRAVE_API_KEY": "your-value"
}
}
}
}Run this in your terminal
claude mcp add intercept --env BRAVE_API_KEY=your-value -- npx -y intercept-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"intercept": {
"command": "npx",
"args": [
"-y",
"intercept-mcp"
],
"env": {
"BRAVE_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"intercept": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"intercept-mcp"
],
"env": {
"BRAVE_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account bighippoman, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: BRAVE_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (3.0.8) reached the registry 8 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Date Math
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Exact date/time math for agents: business days, holidays, time zones, cron, RRULE, SLA. x402 paid.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Give your AI the ability to read the web. One command, no API keys required.
Without it, your AI hits a URL and gets a 403, a wall, or a wall of raw HTML. With intercept, it almost always gets the content — clean markdown, ready to use.
Handles tweets, YouTube videos (with transcripts when available), arXiv papers, PDFs, Wikipedia articles, and GitHub repos. If the first strategy fails, it tries up to 14 more before giving up.
Works with any MCP client: Claude Code, Claude Desktop, Codex, Cursor, Windsurf, Cline, and more.
claude mcp add intercept -s user -- npx -y intercept-mcp
codex mcp add intercept -- npx -y intercept-mcp
Settings → MCP → Add Server:
{
"mcpServers": { "intercept": { "command": "npx", "args": ["-y", "intercept-mcp"] } } }
Settings → MCP → Add Server → same JSON config as above.
Add to your claude_desktop_config.json:
{
"mcpServers": { "intercept": { "command": "npx", "args": ["-y", "intercept-mcp"] } } }
Any client that supports stdio MCP servers can run npx -y intercept-mcp.
No API keys needed for the fetch tool.
URLs are processed in four stages:
Known URL patterns are routed to dedicated handlers before the fallback pipeline:
| Pattern | Handler | What you get |
|---|---|---|
twitter.com/*/status/*, x.com/*/status/* | Twitter/X | Tweet text, author, media, engagement stats (via third-party APIs) |
youtube.com/watch?v=*, youtu.be/* | YouTube | Title, channel, duration, views, description, transcript (when captions available) |
arxiv.org/abs/*, arxiv.org/pdf/* | arXiv | Paper metadata, authors, abstract, categories |
*.pdf | Extracted text (text-layer PDFs only) | |
*.wikipedia.org/wiki/* | Wikipedia | Clean article content via Wikimedia REST API |
github.com/{owner}/{repo} | GitHub | Raw README.md content |
github.com/{o}/{r}/blob/{ref}/{path} | GitHub | Raw file content, code-fenced by language |
github.com/{o}/{r}/issues/{n}, /pull/{n} | GitHub | Issue/PR title, state, body, diff stats, comments (via GitHub API) |
github.com/{o}/{r}/releases/tag/{t}, /releases/latest | GitHub | Release notes (via GitHub API) |
The GitHub API endpoints work unauthenticated (60 requests/hour). Set GITHUB_TOKEN to raise the limit.
After specialized handlers, public requests check agentsweb.org for a complete result within the requested freshness window. Partial, stale, mismatched, and blocked responses are rejected. Cache latency depends on the network and storage location.
Complete public live retrievals can contribute refresh hints. agentsweb verifies a page through its own retrieval pipeline before publishing it. Confirmations do not reset retrieval time. Authenticated, signed, and GitHub-token requests never use the public cache.
Opt out entirely with INTERCEPT_SHARED_CACHE=false, or use read-only mode (consume but never contribute) with INTERCEPT_CACHE_READ_ONLY=true.
agentsweb.org also exposes standalone endpoints for direct use:
See agentsweb.org/docs for full API documentation.
If no handler matches (or the handler returns nothing), the URL enters the multi-tier pipeline:
| Tier | Fetchers | Behavior |
|---|---|---|
| 0 | agentsweb | Fresh, complete shared content |
| 1 | Native Markdown, direct HTML | Contact the origin first |
| 2 | Cloudflare Browser Run, Jina | Hosted extraction; parallel with a short quality comparison window |
| 3 | Stealth, Codetabs, FlareSolverr, configured unlocker | Additional live retrieval paths |
| 4 | Wayback, Arquivo, Common Crawl, archive.ph; RSS and scholarly/discussion sources | Labeled historical or partial fallbacks |
| 5 | Open Graph metadata | Metadata only; insufficient stubs are failures |
A successful hosted result stops a slower provider after a 200 ms comparison window. Repeated provider failures trigger a short cooldown. Direct-host health is tracked per host. Historical snapshots never outrun live sources; noCache disables archives unless allowArchive is explicitly true.
Results are cached in-memory with TTL (60 min for successes, 5 min for failures). Max 250 entries with LRU eviction. Failures are cached by retrieval policy, so a shallow failed attempt does not prevent a later broader retry. Duplicate in-flight requests share work while retaining independent cancellation. All three knobs are configurable via INTERCEPT_CACHE_TTL_MS, INTERCEPT_CACHE_FAILURE_TTL_MS, and INTERCEPT_CACHE_SIZE.
fetchFetch a URL and return its content as clean markdown.
url (string, required) — URL to fetchmaxTier (number, optional, 1-5) — Stop at this tier for speed-sensitive casesmaxLength (number, optional, default 50000) — Maximum characters to returnstartIndex (number, optional, default 0) — Character offset for paginating long contentnoCache (boolean, optional) — Skip session and shared caches and fetch livetimeoutMs — Overall deadline, including downloads (default 25000; research 35000)maxAgeSeconds — Maximum cache age (default 3600; 0 forces retrieval)allowArchive — Permit labeled historical fallbacks (disabled by noCache unless explicitly enabled)Long pages are truncated at maxLength with a notice telling the agent which startIndex continues the content. Structured output reports source, quality, contentLength, truncated, nextStartIndex, and cacheAgeSeconds so agents can branch on them programmatically. It also reports completeness, sourceKind, retrievedAt, verifiedAt when available, canonicalUrl, contentHash, and title. Research includes verbatim relevant passages with offsets and citation URLs; set passagesOnly to return those excerpts instead of full documents.
Direct image URLs (.png, .jpg, .gif, .webp, up to 5 MB) are returned as an MCP image block instead of text, so the agent's own vision model can read charts, diagrams, screenshots, and scanned documents. The structured output reports source: "image", mimeType, and bytes.
fetch_batchFetch up to 10 URLs in parallel, each through the same handler/fallback chain.
urls (string[], required, 1-10) — URLs to fetchmaxTier, noCache — as in fetchmaxLength (number, optional, default 20000) — Per-URL character budgetresearchSearch the web and fetch the top results in one call — replaces a search followed by several fetches.
query (string, required) — Search querycount (number, optional, 1-5, default 3) — Results to fetchmaxLength (number, optional, default 20000) — Per-result character budgetsite (string, optional) — Restrict to a domainfreshness (string, optional) — day, week, month, or yearsearchSearch the web and return results.
query (string, required) — Search querycount (number, optional, 1-20, default 5) — Number of resultssite (string, optional) — Restrict results to a domainfreshness (string, optional) — day, week, month, or yearpage (number, optional, 1-10) — Results page for paginationUses Brave Search API if BRAVE_API_KEY is set, then SearXNG if SEARXNG_URL is set, then DuckDuckGo as an unreliable last resort. freshness and page are ignored by the DuckDuckGo fallback.
extractExtract specific values from a page as JSON instead of markdown prose — for when you need particular data, not the whole page. Honors per-domain auth and proxies.
url (string, required) — The URL to extract fromselectors (object, optional) — Map of field name → CSS selector. Each value is either a selector string (returns the first match's text) or { selector, attr?, all? } — attr extracts an attribute (e.g. href), all: true returns every match as an array.tables (boolean, optional) — Convert every HTML table to an array of row objects (defaults to true when no selectors are given).{
"url": "https://shop.example.com/item", "selectors": { "title": "h1", "price": ".price", "images": { "selector": "img.gallery", "attr": "src", "all": true } } }
Returns the extracted fields and/or tables as structured output.
intercept://session/recentMarkdown list of URLs fetched and cached in this session, most recent first. Re-fetching any of them is instant.
research-topicSearch for a topic and fetch the top results for a multi-source summary.
topic (string) — The topic to researchdepth (string, default "3") — Number of top results to fetchextract-articleFetch a URL and extract the key points from the content.
url (string) — The URL to fetch and summarize| Variable | Required | Description |
|---|---|---|
BRAVE_API_KEY | No | Brave Search API key for search |
SEARXNG_URL | No | Self-hosted SearXNG instance URL (recommended) |
GITHUB_TOKEN | No | GitHub token raising API rate limits for the issue/PR/release handler |
INTERCEPT_AUTH | No | JSON map of domain → headers/cookies, to fetch content you're logged in to (see Per-domain authentication) |
CF_API_TOKEN | No | Cloudflare API token with "Browser Rendering - Edit" permission |
CF_ACCOUNT_ID | No | Cloudflare account ID (required if CF_API_TOKEN is set) |
USE_STEALTH_FETCH | No | Set to true to enable stealth fetcher (see warning below) |
FLARESOLVERR_URL | No | URL of a FlareSolverr instance (e.g. http://localhost:8191) to solve Cloudflare/DDoS-Guard challenges |
WEB_UNLOCKER_URL | No | GET template (with a {url} placeholder and your API key) for a commercial web-unlocker like ScrapingBee/ScraperAPI/ZenRows — the paid last resort for the hardest sites |
INTERCEPT_SHARED_CACHE | No | Set to false to disable the agentsweb.org shared cache |
INTERCEPT_CACHE_READ_ONLY | No | Set to true to consume but never contribute to the shared cache |
INTERCEPT_CACHE_TTL_MS | No | In-memory cache TTL for successful fetches in ms (default 3600000 = 60 min) |
INTERCEPT_CACHE_FAILURE_TTL_MS | No | In-memory cache TTL for failed fetches in ms (default 300000 = 5 min) |
INTERCEPT_CACHE_SIZE | No | Max in-memory cache entries (default 250) |
HTTPS_PROXY / HTTP_PROXY | No | Standard proxy passthrough — routes all outbound fetches (including stealth) through the proxy. Honors NO_PROXY. |
INTERCEPT_PROXIES | No | Comma/space-separated list of HTTP(S) proxies to rotate across, with automatic retry through the next proxy on a blocked response. Takes precedence over HTTPS_PROXY. |
Search: Has a DuckDuckGo fallback but it's rate-limited and unreliable. For production use, self-host SearXNG and set SEARXNG_URL (see below), or get a Brave Search API key.
Fetch: Works without any keys. Set CF_API_TOKEN + CF_ACCOUNT_ID to enable Cloudflare Browser Run (formerly Browser Rendering) for JavaScript-heavy pages (SPAs, React sites).
Use at your own risk. When enabled, t
Only the beginning is shown; read the rest in the repo