Jeder MCP-Server ist ein weiteres Geheimnis, das Ihr Agent ausleiten kann.
Jeder MCP-Server ist ein weiteres lebendiges Geheimnis und erweitert den Umfang dessen, was durch eine versehentliche Eingabe erreicht werden kann. Prüfen Sie die Token-Bereiche und wenden Sie vier Korrekturen an, um den Einflussbereich einzuschränken.
Quellen: Every MCP Server You Add Gives Your Agent Another Credential
Es beginnt unschuldig. Am Montag wird GitHub verbunden, am Dienstag Slack, dann Postgres, anschließend Notion, danach ein interner Abrechnungsserver, den ein Kollege an einem Nachmittag programmierte und nie dokumentierte. Jeder Zusatz macht den Agenten leistungsfähiger. Jeder fügt außerdem einen weiteren Schlüssel zu dem Ring hinzu, den er ständig bei sich trägt.
Probleme tauchen in der Regel zufällig auf, wenn jemand etwas Unverwandtes debuggt und die Konfigurationsdatei öffnet. Sechs Server, sechs sensible Daten – alles in Klartext in einem Home-Verzeichnis, ohne Ablaufdatum und ohne Eigentümer. Zu diesem Zeitpunkt wirkt MCP nicht mehr wie ein nützliches Werkzeug, sondern eher wie eine Belastung.
Die Rechnung
Nach ein paar Monaten Begeisterung sieht eine typische Einrichtung so aus:
{
"mcpServers": {
"gh": { "cmd": "gh-mcp", "env": { "GH_TOKEN": "ghp_live_9f2a" } },
"db": { "cmd": "pg-mcp", "env": { "PG_URL": "postgres://app:hunter2@prod/main" } },
"sl": { "cmd": "slk-mcp", "env": { "SLACK_TOKEN": "xoxb-live-771" } }
}
}
Drei Server, drei Geheimnisse, eine Datei – und keine Rotation. Sie können Ihren eigenen Rechner in Sekundenschnelle überprüfen, indem Sie in den üblichen Konfigurationsordnern nach Zeichenketten suchen, die wie Token aussehen.
grep -rIl "ghp_\|xoxb-\|sk-" ~/.config ~/.claude ~/Library 2>/dev/null | wc -l
Diejenigen, die es betreiben, finden oft mehr, als sie erwartet hatten. Eine Anzahl von elf, wenn man angenommen hatte, es seien drei, ist nichts Ungewöhnliches.
Der wirklich schmerzhafte Teil
Die auf der Festplatte gespeicherten Zugangsdaten sind nur die weniger kritische Hälfte des Problems. Die größere Herausforderung besteht darin, dass jede dieser Schlüssel nun bei einem einzigen Entscheidungsträger liegen und dieser Entscheidungsträger Texte aus dem Internet liest.
one agent loop
|
+---------+---------+---------+---------+
| | | | |
github slack postgres notion billing
(14 scp) (9 scp) (rw all) (rw ws) (rw all)
| | | | |
+---------+---------+---------+---------+
|
one poisoned input
Ein Kommentar zu einem Problem, eine Notion-Seite oder eine Zeile in einer Tabelle können jeweils eine Aktion vorschlagen, und der Agent verfügt über alle notwendigen Informationen, um diese auszuführen. Das ist das Problem des verwirrten Stellvertreters in neuem Gewand. Der Agent wird nicht manipuliert – er ist hilfsbereit und kann Ihre Anweisung nicht von Texten unterscheiden, die ihr nur ähneln.
Die Lücke messen
Eine nützliche Übung besteht darin, alle Aufrufe der Tools über zwei Wochen lang zu protokollieren und anschließend zu vergleichen, was jedes Token tun darf und was es tatsächlich getan hat. Ein Ergebnis einer solchen Überprüfung:
| Service | Granted Scopes | Scopes Used | Utilization |
| -------- | --------------: | ------------------: | ----------: |
| GitHub | 14 | 3 | 21.4% |
| Slack | 9 | 2 | 22.2% |
| Postgres | Full RW | 1 table, reads only | Minimal |
| Notion | Whole workspace | 2 pages | Minimal |
Ungefähr vier Fünftel der gewährten Zugriffsrechte wurden nicht genutzt. Dieser Mangel ist kein Komfortproblem – es handelt sich vielmehr um ein Risiko, das man trägt, ohne etwas dafür zu erhalten.
Lösungen, nach Nutzen geordnet
Ein Token pro Server, der auf die eigentlichen Aufgaben dieses Servers abgestimmt ist. Gemeinsam genutzte Token bedeuten gemeinsame Verantwortung. Wenn etwas schiefgeht, sollte das Audit-Log auf einen Server verweisen und nicht auf eine Person.
Standardmäßig nur Leserecht für alles, was Daten enthält. Zwei SQL-Sätze, eine spezielle Rolle sowie Leserechte nur für die Tabellen, die der Agent tatsächlich liest, verwandeln den schlimmsten Fall von einem verlorenen Table in einen durchgesickerten Abfragedatenstrom.
create role agent login password 'rotate_me';
grant usage on schema public to agent;
grant select on orders, users to agent;
Kurzlebige Token anstelle dauerhafterer. Lassen Sie ein Tresor auf Anfrage eine Zugangsdaten erstellen, deren Gültigkeitsdauer in Minuten gemessen wird. Ein Geheimnis, das am Dienstagmorgen gestohlen wird, ist bereits am Dienstagnachmittag wertlos.
async function tok(srv) {
const r = await fetch(`${VAULT}/issue/${srv}`, { method: "POST" });
const { token, ttl } = await r.json();
return { token, exp: Date.now() + ttl * 1000 };
}
Es werden nicht nur die Chats, sondern auch die Anrufe protokolliert. Eine einfache Schicht, die den Server, die Argumente sowie ein Zeitstempel für jede Funktion des Tools aufzeichnet, besteht aus nur wenigen Zeilen Code. Im oben erwähnten Audit wurde dadurch aufgedeckt, dass ein Server einen Endpunkt aufrief, den niemand von ihm verlangt hatte.
function wrap(name, fn) {
return async (args) => {
log({ srv: name, args, at: Date.now() });
return fn(args);
};
}
Eine Regel zum Übernehmen
Bevor ein Server eingeführt wird, betrachten Sie ihn als feindlich und fragen Sie sich, was er ohne jegliche Hilfe erreichen könnte. Wenn die ehrliche Antwort unangenehm ist, beschränken Sie die Berechtigungen oder lassen Sie den Server aus. Versprechen Sie nicht, es später zu beheben – schließlich kommt das später selten, am wenigsten an einem Freitag.
Das alles ist kein Argument gegen MCP. Es hat das Integrationschaos beseitigt, das dazu führte, dass die Agenten wie Spielzeuge wirkten. Der Punkt ist, dass jeder zusätzliche Server auch eine Berechtigung mit sich bringt, und solche Berechtigungen verdienen dieselbe Sorgfalt wie jede andere Schlüssel für die Produktion.
Verwandte Literatur
- Praktische Anmerkungen: Erstellen Sie einen KI-Finanzagenten mit EODHDs MCP-Server — Schritt-für-Schritt-Anleitung zu den Praktischen Anmerkungen: Erstellen Sie einen KI-Finanzagenten mit EODHDs MCP-Server: Verträge, Überprüfungen sowie Code-Blöcke für Teams, die MCP-Systeme ohne diese Anleitung entwickeln.
- Praktische Anmerkungen: Kann Ihr Agent nach MCPs suchen? — Schritt-für-Schritt-Anleitung zu den Praktischen Anmerkungen: Kann Ihr Agent nach MCPs suchen?: Verträge, Überprüfungen sowie Code-Blöcke für Teams, die dieses Muster nutzen.