MCP Armor
Drop-in Rust-Sidecar für MCP-Server
v0.2: stdio-MCP-Wrapper mit Aho-Corasick + Regex + Unicode-NFKC-Scanner-Pipeline, Ed25519-Manifest-Verify mit TOFU-Keystore, Sigstore-Rekor-Bridge, OTLP-gRPC-Export, 10-CVE-Block-Liste aus OX-Advisory 2026-04-15. 9 Control-Plane-MCP-Tools, 133 Tests, MIT.
Welches Problem es löst
Ein MCP-Client vertraut dem Server, mit dem er spricht. Er vertraut der Werkzeugliste, die er bekommt, er vertraut den Beschreibungen in dieser Liste, und nichts im Protokoll zwingt den Server, sich auszuweisen. Anthropic hat diese Entwurfsfragen als außerhalb des Umfangs der Spezifikation eingestuft. mcp-armor baut genau die Laufzeit-Verteidigungen, die dort abgelehnt wurden, als Beiwagen zwischen Client und beliebigem Server.
Wie es arbeitet
Der Verkehr läuft durch einen vierstufigen Prüfer: ein Aho-Corasick-Vorfilter, eine Regex-Stufe, dann ein Normalisierungsdurchgang, der Nullbreiten-Zeichen, Richtungsmarken und Unicode-Tags entfernt und danach erneut prüft, und zuletzt eine Skelett-Faltung gegen Verwechselbare, die Homoglyphen fängt, ein kyrillisches Doppel des Wortes ignore kommt also nicht mehr durch. Es prüft Ed25519-Signaturen von Manifesten mit einem Vertrauen-beim-ersten-Kontakt-Schlüsselspeicher und einer Brücke zu Sigstore Rekor, und es entfernt Lader-Umgebungsschlüssel wie LD_PRELOAD und NODE_OPTIONS aus jedem Kindprozess, den es startet. Seit Version 0.8 liest es außerdem jeden Werkzeugkatalog auf Anweisungen, die in einer Werkzeugbeschreibung oder deren Parameterschema versteckt sind, und das ist die Vergiftung, die schon beim ersten Blick da ist und nie als Abweichung auffällt. Es ist eine einzelne signierte Rust-Binärdatei, und die CI erzwingt ein p99-Budget unter fünf Millisekunden.
Wann du es nimmst
Setz es vor jeden MCP-Server, den du nicht selbst geschrieben hast, und besonders vor alles, was du aus einem Marktplatz installiert hast. Es hüllt einen bestehenden Server ein, ohne ihn zu verändern, gibt OTLP-Telemetrie über gRPC aus und hält seine Blockade-Entscheidungen in einem Ringpuffer, den ein nur lesender Steuerungs-Server an den Client zurückgibt.
Wann du es nicht nimmst
Es bewacht die Leitung zwischen Client und Server. Zu dem, was deine eigene Anwendung danach mit einer Modellantwort macht, sagt es nichts, und es ersetzt keine Richtlinienschicht in deinem Code. Für die TypeScript-Seite davon ist ai-shield das Schwesterprojekt, und die Ausweich-Muster hier stammen von dort.
Stars
★ 1
installs
↓ 193
Clones (14d)
⊟ 121
Sprache
Rust
Tools
11
Aktualisiert
2026-08-21
Installation
cargo install mcp-armor