Beliebte Suchanfragen
//

MCP-Server sicher konfigurieren mit Passwortmanager CLIs

9.3.2026 | 4 Minuten Lesezeit

MCP Server sind mittlerweile als Erweiterungen für Coding Agents wie Claude Code oder Cursor zu alltäglichen Tools geworden. Doch bei der Konfiguration der MCP Server gibt es oft ein Sicherheitsrisiko.

Viele MCP Server brauchen Credentials, API Tokens oder andere Secrets, um sich an externen Diensten zu authentifizieren. Oft werden die Secrets als Umgebungsvariable für den MCP Server konfiguriert und dafür direkt in Konfigurationsdateien hardcoded.

⚠️ So liegen die Secrets unverschlüsselt auf der Festplatte!

In diesem Blog-Post möchte ich vorstellen, wie Secrets sicher außerhalb von solchen Konfigurationsdateien verwaltet werden können.

Die Gefahr durch hardcoded Secrets

Dieses Vorgehen sieht man oft, zum Beispiel in der Doku zum Perplexity MCP Server. Dort wird beschrieben, wie der MCP Server mit folgender Konfiguration in einer claude.json Datei hinterlegt werden kann.

1{
2  "mcpServers": {
3    "perplexity": {
4      "type": "stdio",
5      "command": "npx",
6      "args": [
7        "-y",
8        "perplexity-mcp"
9      ],
10      "env": {
11        "PERPLEXITY_API_KEY": "your_key_here"
12      }
13    }
14  }
15}

Dass das eine reale Gefahr darstellt, zeigt sich immer wieder. Credential Stealers wie der Shai-Hulud 2.0 Worm haben in jüngster Zeit systematisch Credentials wie GitHub Tokens, npm Tokens, AWS Keys und SSH Private Keys aus Entwicklerumgebungen gestohlen.

Sichere Konfiguration mit Passwortmanager CLIs

Mit Hilfe von Kommandozeilen-Tools von Passwortmanagern lassen sich Secrets sicher und bequem an MCP Server übergeben. Hier verwenden wir 1Password als Beispiel. Andere Passwortmanager bieten ähnliche Funktionalität, zum Beispiel Bitwarden.

Die Idee: Secrets liegen oft schon sicher in 1Password. Optimalerweise kopieren wir diese nicht von dort in Klartext-Konfigurationsdateien, sondern übergeben sie aus dem Password Manager direkt an die MCP Server. Mit dem Kommandozeilen-Tool von 1Password ist genau das möglich.

Das Tool verbindet sich mit der 1Password App und hat so Zugriff auf die Secrets. Vorher fordert es den Nutzer aber auf diesen Zugriff zu erlauben, zum Beispiel per TouchID auf Macs. Nun können wir über die Kommandozeile auf Einträge aus 1Password Vaults zugreifen. Es gibt Befehle für das Auflisten op item list, Erstellen op item create, und Auslesen op item get von Einträgen. (Dokumentation)

Für die Verwendung mit MCP Servern (oder generell Anwendungen, die Secrets benötigen) ist aber der op run Befehl am besten geeignet. Als Parameter übergeben wir diesem den Pfad zu einer .env Datei (mehr dazu später) und einen Befehl, der ausgeführt werden soll, in diesem Fall der MCP Server.

op run --env-file .env -- <command> <arg1> <arg2> …

Es werden zwei Bindestriche verwendet, um den auszuführenden Befehl von den anderen Argumenten zu trennen. Alles nach den Bindestrichen wird als Teil des auszuführenden Befehls gesehen. So ist es möglich dort Befehle mit Parametern anzugeben.

Für den Perplexity MCP Server sieht das also so aus:

op run --env-file .env -- npx -y perplexity-mcp

Diesen Befehl tragen wir jetzt in die MCP Server Konfigurationsdatei unserer Coding Agenten ein, zum Beispiel claude.json für Claude Code:

1{
2  "mcpServers": {
3    "perplexity": {
4      "type": "stdio",
5      "command": "op",
6      "args": [
7        "run",
8        "--env-file",
9        "/your/full/path/.env",
10        "--",
11        "npx",
12        "-y",
13        "perplexity-mcp"
14      ]
15    }
16  }
17}

Die Umgebungsvariable muss hier nicht mehr angegeben werden, da diese von dem op Tool mit Hilfe der .env Datei gesetzt wird. Für die env Datei muss der volle Pfad zu der Datei, die wir als Nächstes anlegen, angegeben werden.

Der entscheidende Punkt: in die .env Datei tragen wir jetzt nicht direkt den Perplexity API-Key ein, sondern eine Referenz zu dem Eintrag in 1Password, wo wir den Key sicher hinterlegen.

PERPLEXITY_API_KEY=op://Employee/Perplexity API Key/password

Hier nutzen wir eine 1Password Secret Reference, welche auf das Password Feld des Perplexity API-Key Eintrags zeigt. Diese Referenz lässt sich ganz bequem aus der 1Password App kopieren, sobald man die Integration für die CLI in der 1Password Anwendung aktiviert hat. Wie das geht, ist hier erklärt.

Kopieren der Secret Reference aus einem 1Password-Eintrag

Alternativ geht das auch übers Terminal:

op item get "Perplexity API Key" --format json --fields password | jq .reference

Perplexity API Key ist hierbei der Name des Eintrags in 1Password, in dem der API-Key gespeichert ist.

Das Ergebnis

Wenn ich nun Claude Code starte, wird der op Befehl ausgeführt, welcher mich zunächst fragt, ob ich den Zugriff erlaube:

TouchID-Authentifizierung beim Zugriff auf 1Password-Secrets

Wenn ich das bestätige, liest op die in der .env Datei referenzierten Secrets aus und übergibt sie als Umgebungsvariablen an den MCP Server. Die Secrets sind so nur zur Laufzeit im MCP Server Prozess vorhanden.

Der MCP Server hat so aber immer noch Zugriff auf die Secrets! Es bleiben immer noch die Gefahren, die vom MCP Server selbst ausgehen. Bei der großen und immer weiter wachsenden Anzahl an verfügbaren MCP Servern, zum Beispiel auf GitHub, gibt es einige Sicherheitsrisiken und Schwachstellen.

1Password empfiehlt außerdem Service Accounts zu verwenden, um fein-granulare Permissions zu definieren und somit den Zugriff einzuschränken. Und neuerdings gibt es mit Environments noch einen anderen Weg mit 1Password Umgebungsvariablen zu verwalten.

Beitrag teilen

//

Weitere Artikel in diesem Themenbereich

Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.

//
Jetzt für unseren Newsletter anmelden

Alles Wissenswerte auf einen Klick:
Unser Newsletter bietet dir die Möglichkeit, dich ohne großen Aufwand über die aktuellen Themen bei codecentric zu informieren.