mm.tech
security stable Rust

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

Verwandte Repos