Hermes Agent MCP-Config-Kontextvariablen: ${userHome}, ${workspaceFolder} und 3 weitere Cursor-artige Variablen

Einen MCP-Server einzurichten sollte fünf Minuten dauern – stattdessen kämpfst du dich durch Konfigurationen voller absoluter Pfade. Jeder neue Rechner, jedes Teammitglied, jeder verschobene Projektordner bedeutet: alles von Hand anpassen. Und sobald die mcp.json im Repo landet, funktioniert sie bei niemandem außer dir. Diese Woche bringt Hermes Cursor-artige Kontextvariablen mit, damit Pfade endlich portabel werden.
Immer noch hartkodierte Pfade in deiner MCP-Konfiguration?
Die Konfiguration von MCP-Servern hat ein lästiges, wiederkehrendes Problem: Pfade. /Users/neo/.cache/mcp, C:\Users\neo\projects\webapp — neuer Rechner, neuer Benutzer, neues Projektverzeichnis, und man bearbeitet alles erneut. Schlimmer noch: Committet das Team die MCP-Konfiguration ins Repository, unterscheiden sich alle absoluten Pfade, und eine gemeinsame mcp.json lässt sich nicht portabel halten.
Ein am 2026-08-08 in Hermes Agent main gemergtes Feature behebt genau das: MCP-Server-Konfigurationen unterstützen jetzt die Interpolation Cursor-artiger Kontextvariablen — ${userHome}, ${workspaceFolder}, ${workspaceFolderBasename}, ${pathSeparator} und ${/}. Daraus folgen zwei Dinge:
- Eine für Cursor geschriebene
mcp.jsonzieht ohne eine einzige Pfadänderung zu Hermes um; - Pfade in Konfigurationen lassen sich endlich semantisch und relativ formulieren — portabel über Rechner und Benutzer hinweg.
Die 5 Kontextvariablen
| Variable (Groß-/Kleinschreibung beachten) | Wird aufgelöst zu |
|---|---|
${userHome} |
Das Home-Verzeichnis des aktuellen Benutzers (os.path.expanduser("~")) |
${workspaceFolder} |
Das Workspace-Wurzelverzeichnis der Sitzung (siehe Auflösungskette unten) |
${workspaceFolderBasename} |
Der Basename von ${workspaceFolder} (letztes Pfadsegment) |
${pathSeparator} |
Das Pfadtrennzeichen des Betriebssystems (os.sep — \ unter Windows, / sonst) |
${/} |
Kurzform für ${pathSeparator} |
⚠️ Groß-/Kleinschreibung ist wichtig: nur diese fünf exakten Schreibweisen werden erkannt.
${USERHOME}ist keine Kontextvariable — sie fällt wie jede andere${...}-Referenz auf die normale Umgebungsvariablen-Auflösung zurück.
Praxisnahe Konfigurationsbeispiele
Variablen können an jeder Zeichenkettenposition eines Servereintrags auftauchen: args, env, url, headers — überall.
Beispiel 1: filesystem-Server auf den aktuellen Workspace gerichtet
mcp_servers:
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "${workspaceFolder}"]
Egal, woher du Hermes startest: Der filesystem-Server zielt automatisch auf den Workspace der aktuellen Sitzung — keine Session-IDs zum Merken, kein vorheriges cd.
Beispiel 2: Cache-Verzeichnis aus Home + Trennzeichen aufgebaut
mcp_servers:
my-server:
command: "node"
args: ["server.js"]
env:
CACHE_DIR: "${userHome}${/}.cache${/}mcp"
${/} sorgt dafür, dass diese eine Konfiguration gleichzeitig unter Windows (\) und macOS/Linux (/) funktioniert.
Beispiel 3: Direkt von Cursor migrieren
Das häufigste Muster in Cursors mcp.json ist die "${env:VAR}"-Secret-Referenz. Hermes unterstützt sie ebenfalls:
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "${env:GITHUB_TOKEN}"
${env:GITHUB_TOKEN} und ${GITHUB_TOKEN} werden zur selben Variablen aufgelöst; die Werte werden aus dem Secret-Bereich des aktiven Profils gelesen (mit Fallback auf die Prozessumgebung). Lege das Secret einfach in ~/.hermes/.env ab, und schon passt alles. Eine nicht gesetzte Variable behält ihren wörtlichen Platzhalter, statt einen Fehler zu werfen.
Wie ${workspaceFolder} aufgelöst wird (Prioritätsreihenfolge)
${workspaceFolder} ist nicht einfach das Prozess-Startverzeichnis — es durchläuft eine dreistufige Kette:
- Das aufgezeichnete Terminal-cwd der Sitzung: wird bei jedem abgeschlossenen Terminalbefehl geschrieben und über die rohe Session-ID zugeordnet — ein
cdeiner Sitzung kann niemals in die Auflösung einer anderen Sitzung hineinleaken; - Ein registrierter Task-/Session-cwd-Override: das cwd, das TUI-/Desktop-/ACP-Sitzungen registrieren, bevor irgendein Tool läuft;
- Ein sentinelfreies absolutes
$TERMINAL_CWD: der Worktree-Pfad, der fürhermes -w <worktree>-Sitzungen gesetzt wird.
Nur wenn kein verlässlicher Anker existiert, fällt es auf das Prozess-os.getcwd() zurück.
In der Praxis bedeutet das: Öffne ein Projekt in der Desktop-App oder wechsle in der TUI per cd in ein Unterverzeichnis, und ${workspaceFolder} folgt dem tatsächlichen Workspace der aktuellen Sitzung — nicht dem Verzeichnis, aus dem du zufällig gestartet bist.
Auflösungsreihenfolge: Kontextvariablen → Umgebungsvariablen → Literal
Für jede ${...}-Referenz versucht die Interpolation der Reihe nach:
- Exakter Treffer gegen die 5 Kontextvariablen (höchste Priorität);
- Umgebungsvariablen-Auflösung (Secret-Bereich des Profils →
os.environ); - Andernfalls bleibt der wörtliche Platzhalter erhalten (z. B. bleibt
"${NOT_EXIST}"unverändert).
Kontextvariablen ändern also keine bestehende Umgebungsvariablen-Semantik — alte Referenzen wie ${HOME} sind vollkommen unberührt; du hast lediglich fünf „erstklassige“ Namen dazubekommen.
Wann sich das auszahlt
- Teamweit geteilte Konfigurationen:
mcp_serversins Repository committen, und nach einem Clone funktioniert alles bei jedem Teammitglied — Schluss damit, sich gegenseitig auf den absoluten Pfaden herumzutreten; - Synchronisation über mehrere Rechner: Desktop + Laptop + CI teilen sich eine Konfiguration;
${userHome}und${/}absorbieren die Plattformunterschiede; - An den Workspace gebundene Tools: Server, die gegen das aktuelle Projekt laufen müssen (filesystem, Linters, Codesuche) —
${workspaceFolder}folgt der Sitzung automatisch.
Die vollständige Referenz der MCP-Server-Keys (tools.include/exclude, die trust-Stufe, auth: oauth und mehr) findest du in unserer hermes-mcp-Befehlsreferenz. Für die größere MCP-Geschichte im aktuellen Release wirf einen Blick in die Release-Notizen zu v0.20.0 Herald. Neu bei Hermes Agent? Starte mit der Installationsanleitung, bevor du experimentierst.
Fazit: Ersetze in deiner MCP-Konfiguration absolute Pfade durch ${userHome}, ${workspaceFolder} und ${/} — und du bekommst Portabilität plus das „folgt dem aktuellen Workspace“-Verhalten gratis, mit Konfigurationen, die unverändert mit dem Cursor-Ökosystem interoperabel sind.