SmartFetch
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_webpagedeklariert jetzt offizielle x402-Bazaar-Metadaten für die Agenten-Auffindbarkeit, ohne sein Ausführungs- oder Zahlungsverhalten zu ändern.Das
server.jsonim 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/facilitatorohne 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).
/metaunterscheidet 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.serverDann:
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:84532X402_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_SECRETMainnet 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.pyapi_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.8Der 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=falseSetzen 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-URLUnser 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.
This server cannot be installed
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
- AlicenseAqualityBmaintenanceEnables AI agents to read web pages reliably, returning clean markdown content, hyperlinks, and metadata without navigation or ad noise.314MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI agents with reliable web fetching capabilities, handling retries, caching, and anti-bot bypass automatically.MIT
- AlicenseAqualityCmaintenanceEnables AI agents to fetch any web page as clean markdown or screenshot it, turning URLs into LLM-ready context.211MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to fetch and extract clean, readable content from web pages, and search within pages for specific queries, without needing a full browser.1MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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