Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Fetch bot-protected and JavaScript-heavy pages for AI agents, or parse them to JSON with templates.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
UNBLOCKINGAPI_KEY, UNBLOCKINGAPI_TIMEOUT_MS, AuthorizationAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Diese Adresse braucht einen Schlüssel in einem Header der Anfrage, und das Menü zum Hinzufügen von Connectors kann ihn nicht setzen. Nutze stattdessen Claude Code, Cursor oder VS Code.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"unblockingapi": {
"command": "npx",
"args": [
"-y",
"@unblockingapi/mcp"
],
"env": {
"UNBLOCKINGAPI_KEY": "your-value",
"UNBLOCKINGAPI_TIMEOUT_MS": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add --transport http unblockingapi https://mcp.unblockingapi.com/mcp --header 'Authorization: your-value'claude mcp add unblockingapi --env UNBLOCKINGAPI_KEY=your-value --env UNBLOCKINGAPI_TIMEOUT_MS=your-value -- npx -y @unblockingapi/mcpTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"unblockingapi": {
"url": "https://mcp.unblockingapi.com/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"unblockingapi": {
"command": "npx",
"args": [
"-y",
"@unblockingapi/mcp"
],
"env": {
"UNBLOCKINGAPI_KEY": "your-value",
"UNBLOCKINGAPI_TIMEOUT_MS": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"unblockingapi": {
"type": "http",
"url": "https://mcp.unblockingapi.com/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"unblockingapi": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@unblockingapi/mcp"
],
"env": {
"UNBLOCKINGAPI_KEY": "your-value",
"UNBLOCKINGAPI_TIMEOUT_MS": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Diese Adresse braucht einen Schlüssel in einem Header der Anfrage, und das Menü zum Hinzufügen von Connectors kann ihn nicht setzen. Nutze stattdessen Claude Code, Cursor oder VS Code.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
UNBLOCKINGAPI_TIMEOUT_MS envAuthorization geheim HTTP headerDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Die Tool-Liste dieses Servers haben wir noch nicht gelesen; wir prüfen die Endpunkte reihum.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto unblockingapi bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir lesen die Tool-Liste, wenn wir den Endpunkt prüfen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: UNBLOCKINGAPI_KEY, Authorization
Beides geht: Installiere ihn auf deinem Computer oder verbinde dich mit der Cloud-Version.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.8.2) kam vor 15 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Python MCP
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
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.
Local-only Python MCP server for the Files.com API.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Official Model Context Protocol server and Claude Code plugin for UnblockingAPI. Gives AI apps (Claude, Cursor, VS Code, Lovable, Replit, …) a real browser behind rotating residential proxies: fetch bot-protected and JavaScript-heavy pages, and parse any site a published template covers into structured JSON.
Hosted at `https://mcp.unblockingapi.com/mcp` — add it as a connector and sign in, no install. Or run it locally with npx -y @unblockingapi/mcp.
| Tool | What it does | Cost |
|---|---|---|
unblock_fetch | Fetch public web pages that block simple requests, and get clean Markdown or HTML back. Picks plain HTTP or a real browser per site by itself; pass template to get structured JSON instead. Optionally narrowed with a CSS select. | 1 credit per success; re-reading the same fetch is free |
find_templates | Find a template that parses a site into JSON — by the URL you are about to fetch, by keyword, or by category — with its output shape. | free |
get_build_guide | Guides for building apps on the REST API with plain HTTP: API reference, getting complete pages, templates, and recipes (rank tracker, listings aggregator, price monitor). | free |
Failed requests are free. The server's instructions, tool descriptions and the notes in each response steer the agent: let the API choose plain fetch or browser, check for a template before parsing a known site, scroll or wait when content is missing, and read the build guide before writing code that calls the API.
A template turns a page into named fields instead of markup. The catalogue is open-ended — search engines, marketplaces, property portals, company registries — and anyone can publish one from the editor. There is no special handling for any particular site: every template, official or community, is reached the same way.
find_templates(url: "https://www.google.com/search?q=…") → kjellberg/google-search
unblock_fetch(url: "…", template: "kjellberg/google-search") → { query, results, related_searches }
find_templates asks the API, which matches the URL against every published template's host, path and required query parameters the same way the template library does (* is one path segment, ** any deeper path, hosts exact unless the pattern says *. or .*), so a match is found however large the catalogue grows. More results than fit come back with a page to ask for next.
If a parser fails because the site changed, you get raw HTML back with parse_error: true rather than an error.
| Tool | Calls | Key |
|---|---|---|
unblock_fetch | POST https://api.unblockingapi.com/unblock (JSON body; template selects a template) | X-Api-Key |
find_templates | GET https://api.unblockingapi.com/templates.json?url=…&q=…&category=…&limit=…&page=… (the public catalogue, searched server-side; answers cached for 5 minutes), plus GET https://app.unblockingapi.com/public/v1/templates/ / for the output shape when three or fewer match | none |
get_build_guide | nothing: the guides ship in the package (guides/) | none |
Templates are not endpoints of their own: there is no /api/google-search or /api/ , only /unblock with template set.
Older versions, and listings copied from them, mention tools that no longer exist:
| Old tool | Removed in | Use instead |
|---|---|---|
google_search | 0.4.0 | find_templates(url: "https://www.google.com/search?q=…"), then unblock_fetch(url, template: "kjellberg/google-search") |
list_templates | 0.4.0 | find_templates (now also takes url) |
idealista_property | 0.3.0 | find_templates(url) for the Idealista page, then unblock_fetch with the template it returns |
ahrefs_website_authority | before 0.2.0 (never on npm) | find_templates(url: "https://ahrefs.com/website-authority-checker/?input=example.com") |
You need an UnblockingAPI account — sign up at https://unblockingapi.com (500 free credits, no card). Then pick one:
npx, for those who prefer to run it themselves.https://mcp.unblockingapi.com/mcp
Streamable HTTP. Apps that support MCP sign-in (OAuth) only need the URL: they open an UnblockingAPI page where you sign in and click *Allow*. The app never sees your key, and you can disconnect it any time under *Settings → Connected apps* at app.unblockingapi.com. Apps without sign-in send your key as Authorization: Bearer (or X-Api-Key: ).
| App | How | Guide |
|---|---|---|
| Claude.ai, Claude Desktop | *Customize → Connectors → + Add → Add custom connector*, paste the URL, *Connect* | unblockingapi.com/tools/claude |
| Cursor | One-click link, or "url" in ~/.cursor/mcp.json, then *Login* under Settings → MCP | docs/cursor-setup.md · site |
| VS Code (Copilot) | code --add-mcp '{"name":"unblockingapi","type":"http","url":"https://mcp.unblockingapi.com/mcp"}', sign in on first use | site |
| Windsurf | "serverUrl" in the MCP config (Cascade → MCPs → Open MCP config file) | site |
| Lovable | *Connectors → + → MCP server*, OAuth | site |
| Replit | *Integrations → MCP Servers → + Add MCP server*, *Test & save* | site |
| Bolt | *Connectors → Manage connectors → Custom MCP server*, transport HTTP, MCP OAuth | site |
| Zed | "url" (+ "headers") under context_servers | site |
| Cline | Remote Servers tab, "type": "streamableHttp" + key header | site |
| Gemini CLI / Antigravity | gemini mcp add --transport http … / "serverUrl" + key header | site |
| Claude API | mcp_servers entry, your key as authorization_token | site |
| n8n | MCP Client Tool, HTTP Streamable, Bearer Auth | site |
With a key instead of signing in:
# Claude Code
claude mcp add --transport http unblockingapi https://mcp.unblockingapi.com/mcp \ --header "Authorization: Bearer your_api_key_here"
{
"mcpServers": { "unblockingapi": { "url": "https://mcp.unblockingapi.com/mcp", "headers": { "Authorization": "Bearer your_api_key_here" } } } }
(Some apps name the URL key serverUrl or httpUrl; VS Code uses servers with "type": "http".) Agent frameworks: see Vercel AI SDK and LangChain.
The plugin connects Claude Code to the hosted server, signed in with your account, and adds a skill for the fetch and template workflow. In Claude Code:
/plugin marketplace add unblockingapi/mcp
/plugin install unblockingapi@unblockingapi-plugins
Then run /mcp, pick unblockingapi and choose Authenticate to sign in. New to this? Run /unblockingapi:setup and Claude walks you through it, then checks that it works. Full walkthrough: docs/claude-setup.md.
The same server over stdio. Needs Node.js 18+ and your key in UNBLOCKINGAPI_KEY.
# Claude Code
claude mcp add unblockingapi -e UNBLOCKINGAPI_KEY=your_api_key_here -- npx -y @unblockingapi/mcp
code --add-mcp '{"name":"unblockingapi","command":"npx","args":["-y","@unblockingapi/mcp"],"env":{"UNBLOCKINGAPI_KEY":"your_api_key_here"}}'
Claude Desktop (claude_desktop_config.json; restart after editing), Cursor (~/.cursor/mcp.json) and most other apps take this block:
{
"mcpServers": { "unblockingapi": { "command": "npx", "args": ["-y", "@unblockingapi/mcp"], "env": { "UNBLOCKINGAPI_KEY": "your_api_key_here" } } } }
Agentic clients that edit their own config will also set it up if you ask: "Install the @unblockingapi/mcp MCP server. My API key is sk_xxx. It runs over stdio via npx -y @unblockingapi/mcp and needs the env var UNBLOCKINGAPI_KEY."
| Var | Required | Default | Purpose |
|---|---|---|---|
UNBLOCKINGAPI_KEY | yes | — | Your API key. |
UNBLOCKINGAPI_BASE_URL | no | https://api.unblockingapi.com | Override the API base URL. |
UNBLOCKINGAPI_TIMEOUT_MS | no | 180000 | Per-request timeout. A plain fetch that falls back to a browser can take ~170 s. |
Once connected, ask your agent things like:
unblock_fetch(url) — the API renders it in a browser if the site needs onefind_templates(url) → unblock_fetch(url, template: "kjellberg/google-search")find_templates(url)find_templates(category: "real-estate")unblock_fetch parameters| Param | Type | Notes | |
|---|---|---|---|
url | string, required | http(s) only; media/binary files are rejected. | |
render | boolean | Omit to let the API decide (plain first, browser when blocked or a JS shell; learned per site). true always renders, false never. | |
location | string | 2-letter country code for the proxy (us, gb, de, …). An unsupported one is refused with the list. | |
wait_for | string | Implies a browser. stable (default), domcontentloaded, networkidle, or a CSS selector to wait for. | |
wait_state | enum | With a selector wait_for: visible (default), nonempty, hidden, stable. | |
scroll_steps | 0–10 | Implies a browser. Scroll this many times before the readiness check (lazy content). | |
wait_min_ms | 0–10000 | Implies a browser. Minimum delay after navigation. | |
settle_ms | 0–25000 | Implies a browser. Ceiling on the settle wait (default 5000) — capture happens as soon as the DOM is quiet for 500 ms. | |
wait_rules | array | Implies a browser. [{if: "#consent", then: "#results"}] — first visible if wins and its then replaces wait_for. | |
detect_ms | 0–25000 | Implies a browser. How long to probe wait_rules (default 800). | |
max_age | 0–300 | Accept a cached copy this many seconds old. Hits return in ms and carry cached: true. | |
template | string | Parse with a published template (handle/name, or handle/name@3 to pin a version) and return JSON. Forces that template's fetch settings. Find one with find_templates. | |
format | markdown \ | html | How the page comes back (default markdown: a fraction of the size). Template results are always JSON. |
select | string | CSS selector: return only the matching elements, in format. | |
fresh | boolean | Fetch again even if this exact fetch was made in the last 10 minutes. By default that copy is reused — so re-reading it with another select or format costs nothing. | |
max_chars | integer | Cap on returned body (default 120000), after format/select. Longer bodies are cut with a note. |
Responses start with a JSON metadata block (job_id, status, http_response_code, response_time_ms, render, render_reason, `readiness
Nur der Anfang wird gezeigt; den Rest findest du im Repo