World Monitor
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.
Turn any URL into clean, structured, agent-ready content. $0.02/call via x402 on Base.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
5/5 Prüfungen bestanden · Was du fragst, läuft über den Server des Anbieters (cleanpage-mcp.cleanpage-mcp.workers.dev)
Zuerst: Welche KI nutzt du?
Wähle deine App, dann erscheinen die Schritte unten.
Klappt mit Claude · etwa 2 Min.
Kein Schlüssel, nichts zu installieren · Einmal auf claude.ai oder in der Desktop-App einrichten, dann im Chat nutzen · kostenlose Konten können 1 hinzufügen · bei Team/Enterprise fügt ein Owner ihn hinzu
CustomizeConnectors
Kopiere jeden Wert in das gleichnamige Feld in Claude und klicke Continue
CleanPagehttps://cleanpage-mcp.cleanpage-mcp.workers.dev/mcpAuthentication so lassen, wie Claude es erkannt hat, dann Add klicken
+ConnectorsCleanPage
Nutze CleanPage und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Claude sagt, dass es CleanPage nutzt, oder ein Werkzeug von CleanPage in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit ChatGPT nur in Firmen-Tarifen
ChatGPT Business, Enterprise oder Edu im Web, hinzugefügt von Admin oder Inhaber des Workspace · Mit Free, Plus oder Pro: Dein ChatGPT-Tarif kann MCP noch nicht selbst verbinden
Plugins+Add custom MCP server
Namen eingeben, Adresse unter Connection einfügen, Risikohinweis abhaken und Create as a plugin klicken
CleanPagehttps://cleanpage-mcp.cleanpage-mcp.workers.dev/mcpNeuen Chat öffnen und vor dem Tippen CleanPage aus deinen Plugins wählen
Nutze CleanPage und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn ChatGPT sagt, dass es CleanPage nutzt, oder ein Werkzeug von CleanPage in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von OpenAI abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit Claude Code · etwa 2 Min.
Kein Schlüssel, nichts zu installieren
Mac: Command+Leertaste drücken und Terminal tippen · Windows: PowerShell öffnen
claude mcp add --transport http --scope user cleanpage https://cleanpage-mcp.cleanpage-mcp.workers.dev/mcpCleanPage sollte in der Liste als verbunden erscheinen
Nutze CleanPage und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Claude Code sagt, dass es CleanPage nutzt, oder ein Werkzeug von CleanPage in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit Cursor · etwa 2 Min.
Kein Schlüssel, nichts zu installieren
Nutze CleanPage und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Cursor sagt, dass es CleanPage nutzt, oder ein Werkzeug von CleanPage in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Cursor abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit VS Code · etwa 2 Min.
Kein Schlüssel, nichts zu installieren
VS Code fragt nach einer Bestätigung; klicke Install
Nutze CleanPage und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn VS Code sagt, dass es CleanPage nutzt, oder ein Werkzeug von CleanPage in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von VS Code abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Andere Apps mit MCP, etwa Windsurf, Zed oder Gemini CLI, fügen Server unterschiedlich hinzu. Sieh in der App-Liste nach
Adresse für Apps, die über das Web verbinden
https://cleanpage-mcp.cleanpage-mcp.workers.dev/mcpJSON-Einstellungen stehen unten unter „Für Entwickler“
Claude Code
claude mcp add --transport http --scope user cleanpage https://cleanpage-mcp.cleanpage-mcp.workers.dev/mcpCursor (~/.cursor/mcp.json)
{
"mcpServers": {
"cleanpage": {
"url": "https://cleanpage-mcp.cleanpage-mcp.workers.dev/mcp"
}
}
}VS Code (mcp.json)
{
"servers": {
"cleanpage": {
"type": "http",
"url": "https://cleanpage-mcp.cleanpage-mcp.workers.dev/mcp"
}
}
}Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Basierend darauf, wie sich dieser Server verbindet, und auf der eigenen Doku jeder App, geprüft am 10. Nov. 2026.
Verbinden sich über das Internet in
ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast
Tool-Namen und -Beschreibungen genau so, wie der Server sie am 9. Nov. 2026 gemeldet hat. Geschrieben hat sie der Entwickler, nicht wir; wir zeigen sie als reinen Text.
clean_pageFetches a URL and returns clean, structured, agent-optimized content: readable markdown, plain text, metadata (author/date/site/word count), extracted links and images, an optional structured facts array, and a 0-100 quality score. Handles common failure modes (paywalls, bot-wall
healthFree. Returns service status, version, and uptime signal. Use to check the service is reachable before paying for anything.
list_capabilitiesFree. Returns the full list of tools this server offers, including which are paid, their prices, and their input schemas — so an agent can decide what to call before spending anything.
pricingFree. Returns current pricing, accepted payment network/asset, and the x402 payment flow details for paid tools.
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 12. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto IO31-WEB bestätigt, dem das Repo gehört
Code zuletzt geändert: vor 2 Monaten
Nutzt MIT
Antwort in 80 ms (HTTP 200)
Keine Anmeldung nötig
Wir haben 4 Tool-Beschreibungen gelesen und keine versteckten Anweisungen an die KI gefunden
Fragen, Tipps teilen oder melden, dass etwas nicht geht. Sortiert nach „hilfreich“.
Noch keine Beiträge. Stell die erste Frage oder teile einen Tipp.
Beiträge hier stammen von Nutzern, nicht vom PopNx-Team.
Noch keine Bewertungen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 5 von 5 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.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft in der Cloud des Entwicklers. Du verbindest dich übers Internet, ohne etwas zu installieren, aber was du sendest, läuft über die Server des Entwicklers.
Das GitHub-Repo wurde zuletzt vor 2 Monaten geändert, und die neueste Version (1.0.0) kam vor 2 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL und funktioniert daher auch in Apps mit Remote-MCP, etwa ChatGPT Business und höher.
In derselben Kategorie: World Monitor, Claude Flow, Windmill
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.
AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.
Run Windmill scripts and flows and manage jobs, schedules, resources and variables.
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.
A paid MCP tool that turns any URL into clean, structured, agent-optimized content. Agents pay $0.02 USDC per successful call via x402 on Base — no accounts, no API keys, no subscriptions.
clean_page(url) → { title, clean_markdown, plain_text, structured_facts,
metadata, links, images, quality_score, extraction_notes }
Built for Cloudflare Workers. Full TypeScript. No paid infra required beyond a domain and a Base wallet address.
GET /.well-known/agent.json — machine-readable capability cardGET /.well-known/mcp.json — MCP connection + pricing manifestGET /llms.txt — plain-text summary for LLM crawlershealth, list_capabilities, pricing (all free)https:// /mcp over Streamable HTTP: {
"mcpServers": { "cleanpage": { "url": "https:// /mcp", "transport": "streamable-http" } } }
POST /mcp
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "clean_page", "arguments": { "url": "https://example.com/article" } } }
The response is **HTTP 402** with an `accepts` array describing exactly what payment is required (amount, network, asset, payee address).
transferWithAuthorization (EIP-3009) payment payload for the requested amount, base64-encode it, and retry the *same* request with an X-PAYMENT header. Most x402 client libraries (e.g. x402-fetch, x402-axios) do steps 3–4 for you automatically.X-PAYMENT-RESPONSE header with the settlement transaction hash. Failed extractions (paywalls, bot-blocks, empty pages) are never charged — settlement only happens after a successful extraction.Full protocol details: see /llms.txt and /.well-known/mcp.json once deployed, or the "For agents" section of the landing page.
cleanpage/
├── src/ │ ├── index.ts # Hono app: routes, x402 payment gate, static asset fallback │ ├── types.ts # Shared types (Env, CleanPageResult, etc.) │ ├── config.ts # Reads env vars into a typed config object │ ├── mcp/ │ │ ├── server.ts # JSON-RPC 2.0 / MCP method dispatcher (stateless) │ │ └── tools.ts # Tool schemas + descriptions (clean_page, health, ...) │ ├── extraction/ │ │ ├── extractor.ts # Core pipeline: fetch → Readability → markdown/links/metadata │ │ └── enrichment.ts # Optional cheap LLM pass for structured_facts │ ├── payments/ │ │ └── x402.ts # x402 payment requirements, facilitator verify/settle │ └── middleware/ │ └── limits.ts # KV-backed rate limiting + call/revenue analytics ├── public/ # Static assets served at the Worker's root │ ├── index.html # Landing page (live demo, pricing, docs, for-agents) │ ├── robots.txt # Explicitly welcomes agent/LLM crawlers │ ├── llms.txt # Plain-text agent-facing summary │ └── .well-known/ │ ├── agent.json # Agent discovery/capability card │ └── mcp.json # MCP connection + pricing manifest ├── wrangler.toml # Cloudflare Workers config (bindings, vars) ├── package.json ├── tsconfig.json └── .env.example # Documents every config value
MCP transport. The MCP Streamable HTTP transport is implemented directly in src/mcp/server.ts as a stateless JSON-RPC 2.0 dispatcher (initialize, tools/list, tools/call, ping), rather than via the official SDK's Node-oriented HTTP transport class. This is a deliberate choice for correctness on Cloudflare Workers: the SDK's transport targets Node's http.IncomingMessage/ServerResponse, which Workers doesn't have. The dispatcher here follows the same wire protocol (JSON-RPC over a single POST endpoint, one server-scoped session per request) so any standard MCP client can connect to it. If you later run this on a Node-based host, you can swap in @modelcontextprotocol/sdk's StreamableHTTPServerTransport directly.
Payment gating. POST /mcp peeks at the parsed JSON-RPC body: only tools/call requests naming clean_page are payment-gated (src/index.ts); health, list_capabilities, pricing, and all non-tool-call methods (initialize, tools/list, etc.) pass straight through, rate-limited but free. This keeps the discovery surface fully open to agents while gating only the one paid capability.
Settlement timing. Payment is *verified* before extraction runs, but *settled* (broadcast on-chain) only after extraction succeeds. If extraction fails, the agent's payment authorization is simply discarded — nothing is charged.
No private key required. Because USDC on Base supports EIP-3009 meta-transactions, the resource server never holds a private key. PAYMENT_ADDRESS is a public wallet address; the facilitator submits the signed authorization on-chain and sponsors gas.
Extraction engine. @mozilla/readability (the engine behind Firefox Reader Mode) does the core content extraction, running against a DOM built with linkedom (a fast, dependency-light DOM implementation that works in Workers — jsdom does not). A small hand-written HTML→Markdown walker converts the extracted fragment to markdown, since no existing markdown-conversion library is both Workers-compatible and DOM-based. Heuristics before and after extraction catch common failure modes: paywall markers, bot-check pages, and JS-only empty shells all produce typed errors instead of low-quality output.
Optional LLM enrichment. structured_facts is populated only when the caller passes options.extract_facts: true, and only if ENABLE_LLM_ENRICHMENT=true and ANTHROPIC_API_KEY is set. It's off the critical path — if the enrichment call fails or is disabled, clean_page still returns a complete result with an empty structured_facts array and a note explaining why. There's no additional charge for using it.
Rate limiting & analytics. Both are implemented with a single KV namespace: a fixed 1-minute-window counter per client IP for free-tier calls, and a running JSON counter object for total calls / successes / failures / revenue, exposed read-only at GET /analytics.
| Component | What you need | Where to get it |
|---|---|---|
| Hosting | Cloudflare Workers (with Static Assets) | dash.cloudflare.com — free tier works to start |
| Domain + DNS | A domain proxied through Cloudflare | Any registrar; add to Cloudflare, point at the Worker |
| Wallet | A Base wallet address (public address only) | Any EVM wallet — Coinbase Wallet, MetaMask, etc. |
| x402 facilitator | Verifies/settles payments | https://x402.org/facilitator (testnet-friendly default); Coinbase-operated or self-hosted facilitators for mainnet production volume |
| KV namespace | Rate limiting + analytics storage | wrangler kv namespace create CLEANPAGE_KV |
| LLM (optional) | Structured fact extraction | Anthropic API key, only if ENABLE_LLM_ENRICHMENT=true |
No database, no queue, no separate backend — everything runs in the one Worker.
# 1. Install dependencies
npm install
npx wrangler kv namespace create CLEANPAGE_KV npx wrangler kv namespace create CLEANPAGE_KV --preview
npx wrangler secret put ANTHROPIC_API_KEY
npm run typecheck
npm run deploy
npm run dev
X402_NETWORK from base-sepolia to base in wrangler.toml.X402_FACILITATOR_URL to a mainnet-capable facilitator (confirm your chosen facilitator supports Base mainnet settlement — verify current facilitator options, as this ecosystem is still young and options change).See .env.example for the full annotated list. Summary:
| Variable | Required | Default | Purpose |
|---|---|---|---|
PAYMENT_ADDRESS | yes | — | Base wallet address receiving USDC |
X402_NETWORK | yes | base-sepolia | base or base-sepolia |
X402_FACILITATOR_URL | yes | https://x402.org/facilitator | Facilitator used for verify/settle |
CLEAN_PAGE_PRICE_USD | yes | 0.02 | Price per successful clean_page call |
PUBLIC_BASE_URL | yes | — | Your deployed URL, used in discovery files |
FREE_RATE_LIMIT_PER_MIN | no | 30 | Free-tier calls per IP per minute |
ENABLE_LLM_ENRICHMENT | no | true | Enables structured_facts extraction |
LLM_MODEL | no | claude-haiku-4-5-20251001 | Model used for enrichment |
ANTHROPIC_API_KEY | only if enrichment enabled | — | Secret; set via wrangler secret put |
{
"mcpServers": { "cleanpage": { "url": "https://cleanpage.yourdomain.com/mcp", "transport": "streamable-http" } } }
Request:
{
"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "clean_page", "arguments": { "url": "https://example.com/article", "options": { "extract_facts": true } } } }
Successful response (after payment) — result.content[0].text is a JSON string shaped like:
{
"title": "Article title", "clean_markdown": "# Article title\n\nBody content as markdown…", "plain_text": "Body content as plain text…", "structured_facts": [ { "claim": "…", "category": "fact", "confidence": 0.82 } ], "metadata": { "author": "Jane Doe", "published_date": "2026-08-01T00:00:00Z", "site_name": "Example", "language": "en", "word_count": 812, "reading_time_minutes": 4, "fetched_at": "2026-09-17T12:00:00.000Z", "final_url": "https://example.com/article", "status_code": 200 }, "links": [{ "url": "https://example.com/other", "text": "related", "type": "internal" }], "images": ["https://example.com/hero.jpg"], "quality_score": 85, "extraction_notes": [] }
error_code | Meaning | Retryable |
|---|---|---|
INVALID_URL | Malformed, non-http(s), or a blocked internal address | no |
FETCH_FAILED | Non-2xx response, non-HTML content, or oversized page | sometimes |
TIMEOUT | Page didn't respond within the timeout | yes |
PAYWALL_DETECTED | Subscription/metered paywall detected | no |
BLOCKED_BY_SITE | Bot-check/CAPTCHA or JS-only empty shell | no |
EMPTY_CONTENT | No substantial article content found |