MCP ENOENT beheben: npx, uvx und Startpfade prüfen
MCP startet nicht und meldet ENOENT? Programmpfad, Arbeitsverzeichnis, Argumente und stdio-Ausgabe prüfen, mit Beispielen für die Fehlereingrenzung.
Was ENOENT beim MCP-Start bedeutet
Wenn der Client spawn npx ENOENT meldet, beginnt die Fehlersuche beim lokalen Prozessstart. Die Meldung ist noch kein Beleg für einen defekten MCP-Endpunkt. Bei Node.js kann sie sowohl einen nicht gefundenen Befehl als auch ein nicht vorhandenes Arbeitsverzeichnis betreffen. Prüfen Sie deshalb beide Angaben. Ein neu ausgestellter Zugangsschlüssel behebt einen fehlenden Programmpfad nicht.
Terminal und Client getrennt prüfen
Notieren Sie den tatsächlich eingetragenen Befehl. Prüfen Sie unter macOS oder Linux beispielsweise mit command -v npx, unter PowerShell mit Get-Command npx, wo das Programm liegt. Ersetzen Sie npx durch uvx, node oder docker, wenn Ihre Konfiguration dieses Programm startet. Diese Abfragen zeigen den Suchpfad des Terminals. Ein Desktopprogramm kann eine andere Umgebung geerbt haben. Übertragen Sie daher keinen auf einem anderen Rechner gefundenen Pfad ungeprüft. Ein absoluter, lokal bestätigter Programmpfad ist ein sinnvoller Gegenversuch.
Befehl, Argumente und Verzeichnis auseinanderhalten
Ein command-Feld und eine args-Liste beschreiben unterschiedliche Teile des Starts. Steht die ganze Terminalzeile im Programmnamen, kann der Client nach einer Datei suchen, deren Name auch Leerzeichen und Optionen enthält. Orientieren Sie sich am Format Ihres Clients. Prüfen Sie außerdem, ob das gesetzte Arbeitsverzeichnis existiert und für das Benutzerkonto des Clients erreichbar ist. Relative Pfade können vom Startverzeichnis abhängen. Bei Windows-Startdateien wie .cmd muss der dokumentierte Startweg des Clients berücksichtigt werden.
| Beobachtung | Prüfung |
|---|---|
| ENOENT trotz installiertem Paket | Programmpfad und Arbeitsverzeichnis des Clients |
| Start im Terminal erfolgreich | Umgebung des Desktopprogramms vergleichen |
| JSON-Fehler nach dem Start | Wrapper-Ausgabe auf stdout prüfen |
Nach dem Start die Protokollstufe prüfen
Ist ENOENT verschwunden, folgt ein eigener Test: gelingt die Initialisierung? Ein laufender Prozess allein genügt nicht. Bei stdio darf stdout nur Protokollnachrichten tragen; normale Diagnoseausgabe gehört auf stderr. Untersuchen Sie bei einem sofortigen Abbruch zunächst die erste Meldung und den Exitcode. Ein Terminalprozess, der auf Eingaben wartet, ist nicht automatisch hängen geblieben. Halten Sie den erfolgreichen Start und den erfolgreichen Protokolltest als zwei getrennte Ergebnisse fest.
Sichern Sie die bisherige Datei lokal und notieren Sie die erste Fehlermeldung.
Ändern Sie genau einen Startparameter und laden Sie den Client neu.
Prüfen Sie Initialisierung und Werkzeugliste, bevor Sie eine fachliche Operation ausführen.
Im Fehler-Navigator finden Sie weitere Fehlerbilder und passende nächste Schritte. Die Konfigurationsvorlage hilft beim Abgleich des Formats. Nutzen Sie den Registervergleich, wenn ähnlich benannte Einträge unterschiedliche Pakete oder Startwege führen. Eine Registerangabe beschreibt die Quelle; sie ersetzt Ihren Verbindungstest nicht.
- Muss ich das Paket neu installieren?
- Nicht als ersten Schritt. Prüfen Sie zunächst, ob der Client das Startprogramm und Arbeitsverzeichnis findet.
- Ist stderr ein Fehler?
- Nein. Auch normale Diagnosemeldungen dürfen dort erscheinen; Meldung und Exitcode sind gemeinsam zu lesen.
- Warum funktioniert derselbe Befehl im Terminal?
- Das Terminal kann einen anderen Suchpfad und andere Umgebungsvariablen als das Desktopprogramm besitzen. Vergleichen Sie beide Startumgebungen.
- Was prüfe ich nach einem erfolgreichen Start?
- Prüfen Sie die MCP-Initialisierung und anschließend die Werkzeugliste. Erst danach folgt die benötigte Operation.
Quellen geprüft am 1. Oktober 2026. Die Prüfschritte sind redaktionelle Vorschläge für Ihre eigene Umgebung.
- Node.js: Child process
Abrufbefehl anzeigen
curl -s https://nodejs.org/api/child_process.html - MCP: Debugging
Abrufbefehl anzeigen
curl -s https://modelcontextprotocol.io/docs/tools/debugging - MCP 2025-11-25: Transports
Abrufbefehl anzeigen
curl -s https://modelcontextprotocol.io/specification/2025-11-25/basic/transports