Skip to main content
Glama
Friezaaaa
by Friezaaaa

SmartFetch V1.8 — MCP-Auffindbarkeit

SmartFetch nimmt eine öffentliche Web-URL und gibt sauberen, agentenbereiten Text, Markdown, Links, Metadaten und die verwendete Abrufmethode zurück. Es versucht zuerst den kostengünstigen HTTP-Abruf und greift bei Bedarf auf einen echten Chromium-Browser zurück.

Was hat sich in V1.8 geändert

  • Das kostenpflichtige MCP-Tool fetch_webpage deklariert jetzt offizielle x402-Bazaar-Metadaten für die Agenten-Auffindbarkeit, ohne sein Ausführungs- oder Zahlungsverhalten zu ändern.

  • Das server.json im Stammverzeichnis bewirbt den vorhandenen /mcp-Streamable-HTTP-Endpunkt als reinen Remote-Server für die Official MCP Registry.

  • Durch dieses Repository-Update werden keine Registry-Veröffentlichung, kein Deployment, keine Änderung von Railway-Variablen und keine Zahlung durchgeführt.

Das gesamte HTTP-Zahlungs-, Bazaar- und native MCP-Verhalten von V1.7 bleibt unverändert:

  • Base Sepolia bleibt das Standard-x402-Netzwerk und verwendet weiterhin https://x402.org/facilitator ohne CDP-Anmeldedaten.

  • Base-Mainnet kann bei expliziter Auswahl den authentifizierten CDP-Facilitator von Coinbase verwenden.

  • Der Mainnet-Start erfordert beide CDP-API-Anmeldedaten und schlägt bei ungültigen Anmeldedaten oder fehlender Facilitator-Unterstützung fehl (Fail-Closed).

  • /meta unterscheidet zwischen aktivierten Testnet- und Mainnet-Zahlungsmodi.

  • cdp-sdk, FastAPI, Uvicorn und x402 sind exakt festgepinnt, sodass Infrastruktur-Upgrades explizit erfolgen.

Die Abruf-Engine, das Extraktions-/Browser-Verhalten, SSRF-Schutzmechanismen, Anfragegrenzen, Ratenbegrenzung und Nebenläufigkeitskontrollen sind unverändert.

Related MCP server: SteadyFetch

API

GET /health

Gibt Dienststatus/-version zurück.

GET /meta

Maschinenlesbare Dienstbeschreibung.

POST /fetch

{
  "url": "https://example.com/article",
  "max_chars": 20000,
  "force_browser": false
}

max_chars ist optional (Minimum 1.000; Standard 20.000; Maximum 50.000).

Beispiel-Antwortfelder:

{
  "success": true,
  "requested_url": "https://example.com/article",
  "final_url": "https://example.com/article",
  "status_code": 200,
  "render_method": "http",
  "title": "…",
  "content": "…",
  "markdown": "…",
  "links": [],
  "word_count": 1000,
  "content_hash": "…",
  "truncated": false,
  "elapsed_ms": 350,
  "request_id": "…",
  "service_version": "1.8.0"
}

Wenn der x402-Zahlungsschutz aktiviert ist, enthält der PAYMENT-REQUIRED-Header für POST /fetch eine Bazaar-Deklaration mit dem Eingabevertrag aus url, max_chars und force_browser sowie einer repräsentativen erfolgreichen Antwort. /, /health und /meta bleiben kostenlos und werben keine Bazaar-Metadaten.

MCP

Remote-MCP-Clients verbinden sich über Streamable HTTP mit /mcp. Der Server stellt genau ein Tool bereit:

fetch_webpage
  url: required string
  max_chars: optional integer (default 20000, minimum 1000, maximum 50000)
  force_browser: optional boolean (default false)

Das Tool liest, ruft ab, scrapt oder extrahiert öffentliche Webseiten für Agenten und gibt den vorhandenen SmartFetch-Text, Markdown, Links und Abruf-Metadaten zurück. Es verwendet wie POST /fetch dieselbe SSRF-Validierung, denselben Executor, dasselbe Anfragetimeout, dieselbe Nebenläufigkeitsgrenze, Ausgabegrenze, denselben HTTP-Abruf und denselben Browser-Fallback; es führt keine HTTP-Anfrage zurück an die öffentliche API aus.

Wenn x402 aktiviert ist, gibt ein unbezahlter tools/call-Aufruf die native MCP-x402-Zahlungsaufforderung zurück. Eine gültige Zahlung wird vor dem Abruf verifiziert und nach erfolgreicher Tool-Ausführung einmal abgerechnet. Netzwerk, öffentlicher Zahlungsempfänger und Preis stammen aus X402_NETWORK, X402_PAY_TO und X402_PRICE. Es wird kein privater Verkäuferschlüssel oder Wallet-Geheimnis akzeptiert oder benötigt.

Die unbezahlte MCP-Zahlungsaufforderung enthält eine Bazaar-Deklaration für fetch_webpage mit Transport streamable-http, dem vorhandenen Eingabevertrag und einer repräsentativen SmartFetch-Ausgabe. Ihre Zahlungsressource bleibt mcp://tool/fetch_webpage. Die vorhandene HTTP-Bazaar-Ressource für POST /fetch ist getrennt und unverändert.

Das server.json im Stammverzeichnis beschreibt den öffentlichen Remote-Endpunkt unter https://smartfetch-production-ea53.up.railway.app/mcp. Die Registry-Veröffentlichung ist eine separate, authentifizierte Operator-Aktion; das Hinzufügen des Manifests veröffentlicht oder deployed den Dienst nicht.

Lokal ausführen

python -m pip install -r requirements.txt
python -m smartfetch.server

Dann:

curl http://127.0.0.1:8787/health
curl -X POST http://127.0.0.1:8787/fetch \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://example.com"}'

Windows-Benutzer können setup_windows.bat und dann start_windows.bat ausführen.

Wenn X402_ENABLED nicht gesetzt oder falsch ist, erfordert der Start keine Zahlungseinstellungen und /fetch bleibt für lokale und entfernte Tests kostenlos.

x402-Zahlungsmodi

Zahlungen bleiben deaktiviert, sofern nicht explizit aktiviert. Base Sepolia ist die Standardeinstellung und erfordert nur die öffentliche Empfängeradresse:

X402_ENABLED=true
X402_PAY_TO=0xYOUR_PUBLIC_RECEIVING_ADDRESS
X402_PRICE=$0.005
X402_NETWORK=eip155:84532

X402_PRICE und X402_NETWORK verwenden die angezeigten Werte, wenn sie weggelassen werden. Der Standardpreis bleibt $0.005.

Base-Mainnet muss explizit ausgewählt werden und verwendet den authentifizierten CDP-Facilitator von Coinbase:

X402_ENABLED=true
X402_PAY_TO=0xYOUR_PUBLIC_RECEIVING_ADDRESS
X402_PRICE=$0.005
X402_NETWORK=eip155:8453
CDP_API_KEY_ID=YOUR_CDP_API_KEY_ID
CDP_API_KEY_SECRET=YOUR_CDP_API_KEY_SECRET

Mainnet erfordert beide CDP-Anmeldedaten. Fehlende, ungültige oder unbrauchbare Anmeldedaten, nicht unterstützte exakte Base-Mainnet-Zahlungen oder jeglicher Facilitator-/Middleware-Initialisierungsfehler brechen den Start ab. SmartFetch fällt niemals auf kostenlosen Zugriff oder den Testnet-Facilitator zurück, wenn Mainnet ausgewählt ist. Jedes andere Netzwerk außer Base Sepolia und Base-Mainnet wird abgelehnt.

Nur POST /fetch ist geschützt. /health, / und /meta bleiben immer kostenlos. Aktivierte /meta-Antworten melden x402-enabled-testnet oder x402-enabled-mainnet, ohne Konfigurationswerte preiszugeben.

SmartFetch verwendet X402_PAY_TO als öffentliche Empfängeradresse und benötigt kein CDP_WALLET_SECRET. Geben Sie niemals einen privaten MetaMask-Schlüssel oder eine Wiederherstellungsphrase eines Verkäufers an: SmartFetch erfordert, liest, akzeptiert, protokolliert oder speichert keines von beidem.

Lokale Validierung

python tests/security_smoke.py
python tests/api_local_smoke.py

api_local_smoke.py aktiviert absichtlich den Zugriff auf private Netzwerke nur innerhalb des Testprozesses, damit es ein localhost-Fixture verwenden kann.

Container

docker build -t smartfetch:v1.8 .
docker run --rm -p 8787:8787 smartfetch:v1.8

Der Container installiert Chromium automatisch.

Öffentliches Deployment

Dieses Paket ist Docker-bereit. Railway kann das enthaltene Dockerfile und railway.json deployen; jeder Docker-Host, der ausgehenden HTTPS und genügend RAM für einen Chromium-Prozess bereitstellt, sollte ebenfalls funktionieren.

Empfohlene anfängliche Umgebungsvariablen:

MAX_CONCURRENT_BROWSERS=1
MAX_CONCURRENT_FETCHES=4
DEFAULT_MAX_OUTPUT_CHARS=20000
MAX_OUTPUT_CHARS=50000
FETCH_TIMEOUT_SECONDS=12
BROWSER_TIMEOUT_SECONDS=15
TOTAL_REQUEST_TIMEOUT_SECONDS=25
RATE_LIMIT_PER_MINUTE=30
RATE_LIMIT_BURST=10
X402_ENABLED=false

Setzen Sie ALLOW_PRIVATE_NETWORK=1 in der Produktion nicht.

Wichtiger SSRF-Deployment-Hinweis

Die URL-Validierung auf Anwendungsebene ist enthalten, aber das Browser-Rendering kann Seiten-Subressourcen ausführen. Für ein bezahltes öffentliches Deployment sollte der Browser-Container zusätzlich durch Host-/Netzwerk-Egress-Richtlinien von Cloud-Metadaten und privaten RFC1918-Netzwerken isoliert werden. Wir werden dies erneut härten, bevor das temporäre Ratenlimit entfernt wird und bevor der x402-Start erfolgt.

Testen des öffentlichen Deployments

Führen Sie unter Windows test_remote_windows.bat aus, fügen Sie die öffentliche URL ein und laden Sie tests/remote_20_results.json hoch.

Oder:

python tests/remote_20.py https://YOUR-PUBLIC-URL

Unser Deployment-Gate bleibt mindestens 18/20, einschließlich aller fünf erzwungenen Browser-Anfragen.

Status des Zahlungsstarts

V1.8 bewahrt die vorhandene Zahlungskonfiguration für Base Sepolia und Base-Mainnet. Diese Repository-Änderung veröffentlicht selbst nicht in der MCP Registry, deployed den Dienst nicht und ändert keine Railway-Variablen. Das aktive Zahlungsnetzwerk wird über X402_NETWORK gesteuert: eip155:84532 für Base Sepolia oder eip155:8453 für Base-Mainnet.

F
license - not found
Not graded
quality - not tested
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to read web pages reliably, returning clean markdown content, hyperlinks, and metadata without navigation or ad noise.
    3
    14
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents with reliable web fetching capabilities, handling retries, caching, and anti-bot bypass automatically.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to fetch and extract clean, readable content from web pages, and search within pages for specific queries, without needing a full browser.
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Web intelligence for AI agents: fetch, render, extract, research. x402 micropayments, no API keys.

  • The web capability layer for AI agents: render, extract, DNS, SSL, WHOIS & more via x402.

  • Read a URL as clean markdown, screenshot a website, url to PDF. Web access for agents, no signup.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Friezaaaa/smartfetch'

If you have feedback or need assistance with the MCP directory API, please join our Discord server