Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Give your AI the ability to read the web. Fetches URLs as clean markdown with multi-tier fallback.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
BRAVE_API_KEY비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"intercept": {
"command": "npx",
"args": [
"-y",
"intercept-mcp"
],
"env": {
"BRAVE_API_KEY": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add intercept --env BRAVE_API_KEY=your-value -- npx -y intercept-mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"intercept": {
"command": "npx",
"args": [
"-y",
"intercept-mcp"
],
"env": {
"BRAVE_API_KEY": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"intercept": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"intercept-mcp"
],
"env": {
"BRAVE_API_KEY": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 bighippoman 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: BRAVE_API_KEY
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(3.0.8)은 8개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Master CSS
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
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.
Inspect Master CSS classes, generated CSS, and project stylesheets from your AI client.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요