Stand 13.10.2026: Der offizielle MCP-Servers-Release führt Fetch 2026.10.10 auf und dokumentiert die standardmäßige Ablehnung von Zielen, die auf nicht öffentliche, Loopback- oder Metadaten-Adressen auflösen. Das ist nach dem Update zunächst ein erwartetes Sicherheitsverhalten, kein Beleg für einen ausgefallenen Webserver. Prüfen Sie zuerst die tatsächlich angefragte Adresse und deren Auflösung; aktivieren Sie den Zugriff auf private IP-Adressen nur für eine vertrauenswürdige, begrenzte Testumgebung. Offizieller MCP-Servers-Release v1.0.0, Fetch-Änderung.
Dieser Beitrag ist für Teams, die mit einem AI Agent lokale Webanwendungen testen oder einen MCP-Server betreiben.
Wenn der Zugriff nach einem Update scheitert, hilft die Anleitung dabei, zwischen einer absichtlichen Adresssperre und einem Fehler im Dienst zu unterscheiden.
Zuletzt aktualisiert am 13.10.2026; geprüft anhand des offiziellen MCP-Servers-Release, der Fetch-Dokumentation und der zugehörigen Änderung. Die Angaben beziehen sich auf den dort dokumentierten Stand; prüfen Sie bei späteren Aktualisierungen erneut die README und den Quellcode.
MCP Fetch 2026: localhost systematisch prüfen
Die Änderung ist für eine typische lokale Entwicklungsadresse relevant, weil localhost keine öffentliche Gegenstelle bezeichnet. Der Name steht üblicherweise für das Loopback-Interface des Rechners, auf dem die Anfrage ausgeführt wird. Er sagt jedoch nicht, welcher Rechner gemeint ist: Läuft Fetch in einem Container, einer VM oder einem entfernten Dienst, bezeichnet localhost dessen eigene Laufzeitumgebung und nicht automatisch den Arbeitsplatzrechner.
Die neue Standardprüfung bewertet laut Fetch-README und der oben verlinkten Fetch-Änderung, ob das Ziel zu den ausgeschlossenen Adressbereichen gehört. Dazu zählen private Netzwerke, Loopback und Metadaten-Adressen. Die konkreten Adressklassen lassen sich mit den IANA-Einträgen für IPv4-Sonderadressen, den IANA-Einträgen für IPv6-Sonderadressen und der RFC-1918-Beschreibung privater IPv4-Netze einordnen.
Warum scheitert der Abruf nach dem MCP-Fetch-Update bei localhost? Meistens, weil die Anfrage nicht an eine öffentlich erreichbare Adresse geht. Auch wenn der lokale Webserver korrekt läuft, kann Fetch die Anfrage bewusst ablehnen, bevor die Anwendung sie erhält. Ein Browser auf dem Entwicklerrechner und ein MCP-Server in einer anderen Laufzeitumgebung haben zudem unterschiedliche Netzwerkgrenzen. Ein erfolgreicher Browseraufruf beweist daher nicht, dass der MCP-Server dasselbe Ziel erreichen kann.
Trennen Sie drei Fälle: localhost beziehungsweise eine Loopback-Adresse, eine private Adresse im lokalen Netz und eine öffentliche IP-Adresse. Private IPv4-Bereiche sind in RFC 1918 beschrieben; bei IPv6 gelten eigene Sonderadressbereiche. Die maßgebliche Information ist nicht der Text in der URL allein, sondern das Ziel, zu dem der Hostname bei der Anfrage tatsächlich aufgelöst wird.
Vor dem Eingriff die Anfragegrenze bestimmen
Bevor Sie Konfigurationen ändern, klären Sie, wo Fetch läuft und wer die URL erzeugt. Ein AI Agent MCP Server kann Anfragen aus unterschiedlichen Komponenten weiterreichen: aus dem Modell, einer Tool-Schicht, einem Container oder einem Proxy. Die URL im Agentenprotokoll zeigt zwar, was angefordert wurde, aber nicht zwingend, welche Adresse Fetch am Ende kontaktiert hat.
Erheben Sie deshalb, soweit Ihre Umgebung das zulässt, drei getrennte Hinweise: die vom Agenten übergebene URL, den tatsächlichen Request-Eintrag von Fetch und den Status des Entwicklungsservers. Verwenden Sie dabei vertrauenswürdige lokale Logs oder eine kontrollierte Testanfrage. Ein vom Modell formulierter Link ist keine Netzwerkdiagnose: Er belegt weder, dass der Host erreichbar ist, noch dass der Dienst auf dem erwarteten Interface lauscht.
Die laufende Anwendung sollte außerdem nicht nur „gestartet“ sein. Prüfen Sie, an welche Schnittstelle sie gebunden ist. Ein Dienst, der ausschließlich an Loopback lauscht, ist aus einer anderen Netzwerkumgebung nicht ohne Weiteres erreichbar. Umgekehrt kann ein Dienst, der auf allen Interfaces lauscht, unbeabsichtigt von weiteren Geräten erreichbar werden. Diese Abwägung ist ein Grund, nicht einfach die Bind-Adresse zu erweitern, nur um einen fehlgeschlagenen Fetch-Aufruf zu umgehen.
Eine erfolgreiche Anfrage mit einem lokalen HTTP-Client belegt nur den Zugriff aus dessen eigener Laufzeitumgebung. Für die Diagnose zählt, ob der MCP-Fetch-Prozess denselben Netzwerkpfad und dieselbe DNS-Auflösung verwendet.
Wie lässt sich der Zugriff auf einen lokalen Entwicklungsserver ermöglichen? Zuerst muss geklärt sein, ob Fetch im selben Netzwerk-Namespace läuft wie der Server. Falls der Zugriff wirklich nötig ist, dokumentiert Fetch eine explizite Option zum Zulassen privater IP-Adressen: --allow-private-ip. Prüfen Sie vor dem Start die aktuelle Fetch-README, übernehmen Sie die dort beschriebene Syntax für Ihre Installation und begrenzen Sie die Option auf den vertrauenswürdigen Testlauf. Die Änderung erweitert den zulässigen Zielbereich; sie ersetzt keine Netzsegmentierung und sollte nicht als allgemeine Betriebs-Voreinstellung behandelt werden.
Weiterleitungen einzeln auflösen
Ein häufiger Fehlalarm entsteht bei einer öffentlich wirkenden Startadresse. Die erste URL kann auf eine öffentliche Website zeigen, während eine Weiterleitung zu einer lokalen oder privaten Adresse führt. Die Fetch-Änderung bezieht Weiterleitungsanfragen in die Prüfung ein; ein öffentliches Ausgangsziel ist also keine Garantie dafür, dass jede spätere Station akzeptiert wird. Verhalten und Implementierung sind in der oben verlinkten Fetch-Änderung dokumentiert.
Wird eine Weiterleitung von einer öffentlichen Seite auf eine interne Adresse blockiert? Nach der dokumentierten Schutzlogik kann eine solche Weiterleitung abgelehnt werden, wenn ihr Ziel in einen gesperrten Adressbereich fällt. Prüfen Sie daher die komplette Kette statt nur die erste URL: Ausgangshost, Status der Antwort, Ziel jeder Weiterleitung und die Auflösung des jeweiligen Hostnamens. Ein Login-Portal, ein Entwickler-Vorschau-Link oder ein URL-Kürzer kann auf eine andere Gegenstelle verweisen, als der ursprüngliche Link erwarten lässt.
Bei der Diagnose sollten Sie unterscheiden, ob die Ablehnung beim ersten Request oder erst an einer späteren Station auftritt. Falls Ihre Logs nur den ursprünglichen Link erfassen, fehlt möglicherweise genau der Hinweis, der den Fehler erklärt. Aktivieren Sie keine umfassend ausführlichen Produktionslogs, wenn dadurch Zugangsdaten, Sitzungstokens oder vertrauliche URLs erfasst würden. Für Tests genügt häufig eine gezielt begrenzte Protokollierung der Hostnamen und Statusübergänge, sofern Ihre Datenschutz- und Sicherheitsvorgaben das erlauben.
DNS und Proxy als wechselnde Grenze behandeln
Ein Hostname kann je nach Resolver, Netzwerk und Zeitpunkt unterschiedliche Adressen liefern. Wenn ein Name einmal öffentlich und ein anderes Mal intern aufgelöst wird, kann das zu scheinbar wechselhaftem Verhalten führen. Prüfen Sie daher die Auflösung dort, wo Fetch tatsächlich läuft, nicht nur auf dem Entwicklungsrechner. Notieren Sie, welcher Resolver beziehungsweise Proxy beteiligt ist, und vergleichen Sie die Zieladresse mit den Sonderadressbereichen der IANA.
Warum funktioniert derselbe Hostname manchmal und manchmal nicht? Eine mögliche Ursache ist eine abweichende DNS-Antwort; ebenso können Proxy-Einstellungen die Stelle verändern, an der die Namensauflösung stattfindet. Ein lokaler DNS-Test auf dem Rechner beweist nicht, dass der MCP-Prozess oder ein zwischengeschalteter Proxy dieselbe Antwort verwendet. Auch hier gilt: Die konkrete Fehlermeldung und die Anfragekette sind aussagekräftiger als ein allgemeiner Verbindungstest.
Die offizielle Dokumentation beschreibt die Grenzen der Schutzmaßnahme; sie verspricht keine vollständige Abwehr sämtlicher SSRF-Risiken. Insbesondere sollten Sie weder eine erfolgreiche IP-Prüfung mit einer umfassenden Sicherheitsgarantie gleichsetzen noch annehmen, dass DNS-Rebinding- oder Proxy-Konstellationen in jeder Architektur gleich behandelt werden. Lesen Sie dazu die MCP-Sicherheitsempfehlungen zusammen mit der konkreten Fetch-Implementierung. Ein Proxy kann die Auflösung und den Zugriffspfad beeinflussen; die Schutzwirkung muss deshalb in der tatsächlichen Betriebsumgebung überprüft werden.
Checkliste für einen kontrollierten Test
Nutzen Sie die folgende Reihenfolge, bevor Sie eine Ausnahme aktivieren:
- [ ] Laufzeitumgebung identifizieren: Notieren Sie, ob Fetch lokal, in einem Container, in einer VM oder auf einem entfernten Host läuft.
- [ ] Zieladresse erfassen: Halten Sie die tatsächlich an Fetch übergebene URL fest und prüfen Sie, ob sie
localhost, Loopback, eine private IP-Adresse oder einen öffentlichen Host verwendet. - [ ] Auflösung am richtigen Ort prüfen: Ermitteln Sie die Antwort aus der Fetch-Laufzeitumgebung beziehungsweise über den dort verwendeten Resolver oder Proxy.
- [ ] Dienst-Bindung prüfen: Bestätigen Sie, dass der Webserver läuft und auf der Schnittstelle lauscht, die aus der Fetch-Umgebung erreichbar sein soll.
- [ ] Weiterleitungskette nachvollziehen: Erfassen Sie jede relevante Station und prüfen Sie die Zieladresse nach jeder Umleitung.
- [ ] Ablehnung der Schutzprüfung zuordnen: Vergleichen Sie den Fehler mit den offiziellen Fetch-Hinweisen, statt aus einem Browser-Ergebnis auf den MCP-Pfad zu schließen.
- [ ] Ausnahme eng begrenzen: Verwenden Sie
--allow-private-ipnur, wenn der lokale Zugriff notwendig und die Testumgebung vertrauenswürdig sowie kontrolliert ist. - [ ] Ausnahme zurücknehmen: Starten Sie Fetch nach dem Test wieder mit der Standardkonfiguration und prüfen Sie, dass die Änderung nicht als allgemeine Dienstvorgabe erhalten bleibt.
Verfahren nach Aufwand und Sicherheitswirkung abwägen
Die folgende Gegenüberstellung ist eine qualitative Betriebseinschätzung, keine Messung der Laufzeit oder der Ausfallsicherheit. „Eignung“ bewertet, wie gut ein Weg für einen begrenzten lokalen Integrationstest passt. Welche Option vertretbar ist, hängt davon ab, ob der Agent dieselbe Umgebung wie der Webserver erreichen muss und ob sich der Netzwerkzugriff begrenzen lässt.
| Vorgehen | Eignung für lokale Tests | Vorteil | Grenze, die Sie einplanen sollten |
|---|---|---|---|
| Adresse, Auflösung und Request-Kette prüfen, Standard beibehalten | Hoch, wenn ein Fehler zunächst eingegrenzt werden muss | Klärt, ob die Ablehnung zur Schutzlogik passt | Gewährt keinen Zugriff auf private Ziele |
| Isolierte Testumgebung mit gezielter Ausnahme | Bedingt bis hoch, wenn Zugriff wirklich erforderlich ist | Ermöglicht kontrollierte Tests gegen einen lokalen Dienst | Vergrößert den erlaubten Zielbereich; Konfiguration muss nach dem Test zurückgesetzt werden |
| Öffentlichen Testendpunkt bereitstellen | Bedingt, wenn der Test aus einer entfernten Laufzeit erfolgen muss | Vermeidet die Annahme, dass localhost auf den Entwicklerrechner zeigt |
Erfordert eine abgesicherte, begrenzte Erreichbarkeit und saubere Verwaltung des Testzugangs |
| Lokale Anwendung unverändert lassen und MCP-Zugriff nicht freigeben | Hoch, wenn der Zugriff nicht erforderlich ist | Die bestehende Netzwerkgrenze bleibt erhalten | Der konkrete Agent-Test muss anders aufgebaut oder in eine passende Umgebung verlegt werden |
Die zweite Tabelle bewertet, wo typische Fehlerquellen liegen. Die Kategorien sind keine offiziellen Produktbewertungen, sondern eine Entscheidungshilfe für den Ablauf Ihrer Diagnose.
| Prüfschritt | Wenn das zutrifft | Nächster sinnvoller Schritt |
|---|---|---|
| Fetch läuft nicht auf dem Entwicklungsrechner | localhost verweist auf die Laufzeitumgebung des Fetch-Prozesses |
Netzwerkpfad klären oder den Test in eine passende Umgebung verlagern |
| Die Startadresse ist öffentlich, eine spätere Station aber privat | Die Ablehnung kann erst bei der Weiterleitung entstehen | Request-Kette und Zielauflösung jeder Station prüfen |
| Dieselbe Domain liefert unterschiedliche Zieladressen | Resolver, Proxy oder DNS-Konfiguration können beteiligt sein | Auflösung aus der Fetch-Umgebung dokumentieren und Sicherheitsgrenze prüfen |
| Der Dienst lauscht nur auf Loopback | Eine getrennte Laufzeit kann den Dienst unter Umständen nicht erreichen | Bind-Adresse und Isolation gemeinsam bewerten, nicht unkontrolliert öffnen |
| Privater Zugriff ist für den Test erforderlich und freigegeben | Eine Ausnahme kann in der kontrollierten Umgebung sinnvoll sein | --allow-private-ip gemäß aktueller Dokumentation eng einsetzen und danach zurücksetzen |
Welche Risiken entstehen, wenn private IP-Adressen zugelassen werden? Fetch darf dann Ziele ansprechen, die bei der Standardkonfiguration abgewiesen würden. Je nach Umgebung kann das den Zugriff auf interne Dienste oder lokale Schnittstellen ermöglichen, die nicht für den Agenten vorgesehen waren. Das Risiko ist besonders relevant, wenn URL-Eingaben aus nicht vertrauenswürdigen Quellen stammen, wenn ein Agent frei Ziele bestimmen kann oder wenn ein Proxy andere Netzwerkgrenzen als der Entwicklerrechner hat. Die Freigabe sollte deshalb nicht als allgemeine Reparatur für einen einzelnen Testfehler dienen.
Ausnahme nur dort aktivieren, wo sie überprüfbar bleibt
Wenn der Test den Zugriff auf den lokalen Dienst tatsächlich benötigt, dokumentieren Sie vor dem Start Zweck, Laufzeitumgebung und erwartete Zieladresse. Prüfen Sie dann die aktuelle README, verwenden Sie die dort beschriebene Option und starten Sie Fetch nur in der dafür vorgesehenen Testkonfiguration. Der Name --allow-private-ip lässt sich in der Fetch-Dokumentation überprüfen; der Quellcode zeigt die zugehörige Adressprüfung. Ändern Sie nicht nebenbei andere Netzwerkregeln, weil sonst bei einem erfolgreichen Test unklar bleibt, welche Änderung den Zugriff ermöglicht hat.
Planen Sie auch den Rückweg ein: Beenden Sie den Testprozess, entfernen Sie die Ausnahme aus Startskripten und prüfen Sie, dass Automatisierungen sie nicht für spätere Aufrufe weiterreichen. Bei gemeinsam genutzten Agenten oder Build-Umgebungen sollte die Änderung nicht unbemerkt in eine Standardkonfiguration wandern. Wenn mehrere Personen die Umgebung verwenden, gehören Zweck und Rücknahme der Änderung in deren Betriebsnotizen.
Das passt auch zu den allgemeinen MCP-Sicherheitsempfehlungen: Die zulässigen Fähigkeiten eines Servers sollten zur Aufgabe passen und in einer Umgebung getestet werden, deren Netzwerkgrenzen bekannt sind. Eine Ausnahme, die für einen Entwicklerprototyp akzeptabel ist, muss nicht für einen gemeinsam genutzten Agenten oder einen produktiven Dienst geeignet sein.
Lokaler Rechner oder gemietete Mac-Testumgebung
Ein lokaler Rechner ist oft die richtige Wahl, wenn Fetch und Webserver im selben kontrollierten Umfeld laufen und der Test keine getrennte Netzwerktopologie nachbilden muss. Ein ausgeliehener oder gemieteter Mac löst dagegen nicht automatisch DNS-, Proxy- oder Weiterleitungsprobleme. Er kann jedoch sinnvoll sein, wenn Tests eine separate Laufzeitumgebung benötigen und der eigene Rechner nicht dauerhaft als erreichbarer Testhost dienen soll. Prüfen Sie vorab, welche Zugriffs- und Netzwerkgrenzen Ihre konkrete Konfiguration tatsächlich bietet.
| Option | Was Sie gewinnen | Zu berücksichtigende Nachteile | Passender Einsatz |
|---|---|---|---|
| Eigener Entwicklungsrechner | Direkter Zugriff auf lokale Werkzeuge und schnelle Anpassung | localhost gilt nur in diesem Rechnerkontext; Tests hängen an dessen Verfügbarkeit und Konfiguration |
Einzelentwicklung und eng begrenzte lokale Tests |
| Öffentlicher oder intern erreichbarer Testhost | Getrennte Laufzeit und reproduzierbarer Netzwerkpfad | Zusätzliche Absicherung, Verwaltung von Zugangsdaten und Erreichbarkeit erforderlich | Teamtests, wenn der Agent nicht lokal läuft |
| Zeitweise gemietete Mac-Umgebung bei zekmac | Eine gesonderte Testumgebung, ohne dafür dauerhaft einen eigenen Rechner vorzuhalten | Netzwerkzugriff, Isolation und Rücknahme der Fetch-Ausnahme müssen weiterhin von Ihnen geprüft werden | Zeitlich begrenzte Tests, für die eine separate Mac-Laufzeit benötigt wird |
Bei einer Umgebung, die gemeinsam oder über längere Zeit genutzt wird, sollten Sie außerdem Verantwortlichkeiten für Updates, Zugriff und Datenaufbewahrung klären. Für Datenschutz und DSGVO-Konformität ist nicht allein entscheidend, wo ein Mac steht: Relevant sind auch die verarbeiteten Testdaten, die eingerichteten Konten, Protokolle und die tatsächlichen Zugriffsrechte. Für einen kurzlebigen Test mit unkritischen Beispieldaten können andere Anforderungen gelten als für einen dauerhaften Dienst mit personenbezogenen Informationen.
Wenn Ihre Tests auf dem eigenen Rechner an dessen lokaler Netzwerktopologie festhängen, vergleichen Sie den Aufwand einer isolierten Laufzeit mit den Grenzen des lokalen Ansatzes, statt die Fetch-Sperre pauschal zu umgehen. Die zekmac-Übersicht und die Preisübersicht helfen dabei, eine zeitweise Mac-Umgebung als Alternative einzuordnen; bei Fragen zur konkreten Nutzung finden Sie weitere Informationen in der zekmac-Hilfe. Für gelegentliche Tests kann eine separate Umgebung den Zugriff vom persönlichen Rechner entkoppeln. Wenn dagegen dauerhaft hohe Last, spezielle physische Schnittstellen oder eine fest integrierte lokale Testtopologie erforderlich sind, kann ein eigener Rechner die passendere Lösung bleiben.
Entscheidend ist die Reihenfolge: erst Ziel, Weiterleitungen und Auflösung nachvollziehen, dann entscheiden, ob eine Ausnahme wirklich notwendig ist. MCP Fetch lehnt private und Loopback-Ziele standardmäßig ab; wenn ein kontrollierter Test den Zugriff trotzdem benötigt, beschränken Sie --allow-private-ip auf genau diese Umgebung und stellen Sie anschließend die Standardgrenze wieder her.
zekmac M4 Remote-Knoten
Sichere Tests auf einem eigenen Mac durchführen
Mit zekmac mieten Sie einen exklusiven physischen Mac mini für kontrollierte MCP-Fetch-Tests in einer getrennten Entwicklungsumgebung.