MCP-Server mit 1Password absichern: Zugangsdaten-Leaks in Agent-Konfigurationen verhindern

by Nancy Wang and Robert Menke
November 19, 2025 - 4 min

Related Categories
Beim Konfigurieren von MCP-Servern werden API-Schlüssel häufig direkt im Code oder in Konfigurationsdateien gespeichert. Ohne strukturiertes Secrets Management entsteht ein hohes Risiko für Credential-Leaks.
Wenn Sie in letzter Zeit mit KI-Tools gearbeitet haben …
Dann haben Sie vermutlich schon eine Datei wie diese im Root-Verzeichnis Ihres Projekts gesehen:
{
"tools": {
"github": {
"endpoint": "https://api.github.com",
"auth": {
"token": "ghp_your-secret-token"
}
}
}
}Das ist eine typische mcp.json – eine Datei, die viele agentische Entwicklungsumgebungen (wie Cursor oder Claude Code) verwenden, um einem MCP-Server mitzuteilen, welche APIs aufgerufen werden dürfen und welche Zugangsdaten dafür genutzt werden. In vielen Projekten werden dabei API-Schlüssel als Secrets im Klartext hinterlegt.
Das ist praktisch. Es funktioniert.
Aber es ist auch ein Klartext-Secret, das jederzeit geleakt werden kann.
Ohne sicheres Secrets Management können API-Schlüssel leicht kompromittiert werden.
Wird dieses Repository auf GitHub hochgeladen, mit Teammitgliedern synchronisiert oder einfach versehentlich nicht in der .gitignore ausgeschlossen, ist Ihr API-Schlüssel kompromittiert.
Best Practice aus der Entwickler-Community
Einer der schönsten Aspekte der Arbeit im Bereich Security ist zu sehen, wie die Community sichere Best Practices entwickelt, noch bevor Anbieter sie offiziell dokumentieren.
Ein Entwickler mit dem Namen @codekiln hat eine hervorragende Anleitung veröffentlicht, die zeigt, wie sich die mcp.json von Cursor mit der 1Password CLI absichern lässt.
Sein Ansatz ist einfach: Statt Tokens direkt in der Konfiguration zu hinterlegen, werden sie aus dem 1Password-Vault referenziert und zur Laufzeit mit op run injiziert.
Hier ist die zentrale Idee:
op run --env-file=.env -- cursor mcp-server start
Der Ansatz wirkt klein – verändert aber alles. Keine Zugangsdaten im Klartext. Kein manuelles Copy-Paste. Keine Tokens in der Git-Historie.
Die vollständige Anleitung finden Sie hier: So richten Sie Cursor MCP mit 1Password GitHub-Tokens ein.
„Was 1Password bei der Absicherung von Agent-Konfigurationen macht, entspricht genau der Zukunft, die wir uns vorgestellt haben, als wir Hooks entwickelt haben“, sagt Travis McPeak, Leiter Informationssicherheit bei Cursor. „Entwickler sollten sich nicht zwischen Sicherheit und Produktivität entscheiden müssen.“
API-Schlüssel mit Secrets Management zur Laufzeit laden
Dieses Muster funktioniert für jedes MCP- oder KI-Tool, das Umgebungsvariablen zur Authentifizierung verwendet – zum Beispiel Cursor, Claude Code, lokale LangChain-MCP-Server und viele weitere.
Sie müssen nicht auf neue SDKs oder Integrationen warten. Mit der 1Password CLI (op) können Sie das bereits heute umsetzen. Schauen wir uns die Implementierung Schritt für Schritt an:
Schritt 1: Secrets in 1Password speichern
Erstellen Sie für jedes benötigte Token einen Vault-Eintrag. Speichern Sie API-Schlüssel sicher im Secrets Management von 1Password. Zum Beispiel:
Vault: AI Eintrag: GitHub Access Token Feld: token
Greifen Sie anschließend über eine Secret-Referenz darauf zu:
op read "op://AI/GitHub Access Token/token"
Format-Hinweis:
op://<vault>/<item>/<field>
Dabei handelt es sich um Verweise, nicht um echte Werte. Nur 1Password kann diese auflösen, wenn Sie einen Prozess über die CLI starten.
Schritt 2: Secrets in Ihrer .env referenzieren
Ihre .env-Datei sieht nun beispielsweise so aus:
GITHUB_TOKEN=op://AI/GitHub Access Token/token
OPENAI_API_KEY=op://AI/OpenAI Key/key
Jede Variable ist ein Verweis auf ein verschlüsseltes Secret – nicht das Secret selbst.
Schritt 3: Starten Sie Ihren MCP-Server mit op run
Umschließen Sie Ihren Befehl mit op run, um Secrets zur Laufzeit abzurufen und zu injizieren:
op run --env-file=.env -- mcp-server start
Das passiert dabei:
op run liest Ihre
.env-Datei.Es löst alle
op://references.Die Secrets werden im Arbeitsspeicher entschlüsselt.
Sie werden als Umgebungsvariablen für diesen Prozess gesetzt.
Sobald der Prozess beendet ist, verschwinden die Secrets wieder.
Überprüfen Sie es selbst:
op run --env-file=.env -- printenv | grep GITHUB_TOKEN
Außerhalb dieser Shell existiert das Token nicht.
Schritt 4: Halten Sie Ihre mcp.json sauber
Sobald Ihre Umgebungsvariablen eingerichtet sind, kann Ihre Konfiguration einfach bleiben.
Beispiel:
{
"tools": {
"github": {
"endpoint": "https://api.github.com",
"auth": { "token": "${GITHUB_TOKEN}" }
}
}
}Sie können diese Datei problemlos versionieren. Keine Secrets im Klartext. Keine nachträglichen Bereinigungs-Commits.
Warum das funktioniert
Häufiges Problem | Lösung |
Secrets im Klartext im Code | In 1Password-Vaults speichern |
Geteilte | Secret-Referenzen verwenden |
Secrets bleiben im Arbeitsspeicher bestehen | Nur während der Prozesslaufzeit entschlüsseln |
Manuelle Rotation von Zugangsdaten | Zentrale Verwaltung in 1Password |
Lücken in der Nachvollziehbarkeit | Integriertes Logging und Zugriffskontrollen |
Sie ändern nicht, wie Ihre Entwickler-Tools funktionieren – sondern nur, wie sie Zugangsdaten erhalten. So lassen sich MCP-Server, APIs und API-Schlüssel mit modernem Secrets Management deutlich sicherer betreiben.