mcp-redact
mcp-redact
Local-first CLI und MCP-Server zum Schwärzen sensibler Texte, bevor Logs, Konfigurationen und Fehler mit KI-Tools geteilt werden.
mcp-redact hilft Ihnen bei einer wichtigen Aufgabe, bevor Sie Text in Claude Code, Cursor oder andere KI-Tools einfügen: das Schwärzen von Geheimnissen und sensiblen Daten.
Warum gibt es dieses Tool?
Entwickler fügen häufig Logs, .env-Dateien, Request-Header, Stack-Traces und Konfigurations-Snippets in KI-Tools ein. Diese Snippets können API-Schlüssel, Bearer-Token, Cookies, E-Mails und andere sensible Werte enthalten.
mcp-redact wurde entwickelt, um diesen Prozess sicherer zu machen:
Local-first
Deterministische, Regex-basierte Schwärzung
Gemeinsame Engine für CLI und MCP
Lesbare Platzhalter wie
[REDACTED_EMAIL]
Vorher / Nachher
Vorher
Authorization: Bearer abcdefghijklmnop123456
user_email=user@example.com
callback=https://example.com/callback?token=secret123&lang=en
Cookie: session=abcdef123456; theme=darkNachher
Authorization: Bearer [REDACTED_AUTHORIZATION_HEADER]
user_email=[REDACTED_EMAIL]
callback=https://example.com/callback?token=[REDACTED_SENSITIVE_URL]&lang=en
Cookie: session=[REDACTED_COOKIE_HEADER]; theme=darkSchnellstart
Voraussetzungen:
Node.js 20+
pnpm
Abhängigkeiten installieren:
pnpm installAuf einer Beispieldatei ausführen:
pnpm dev -- --file ./examples/sample.logText über stdin weiterleiten:
pnpm dev -- < ./examples/sample.logBeispieldateien
Dieses Repository enthält Beispiel-Inputs, die Sie für lokale Tests und Demos verwenden können:
examples/sample.logexamples/sample.envexamples/sample.jsonexamples/sample.yamlexamples/mcp-redact.config.json
Alle Beispielwerte sind fiktiv.
CLI-Nutzung
Von stdin lesen
pnpm dev -- < ./examples/sample.logAus einer Datei lesen
pnpm dev -- --file ./examples/sample.logpnpm dev -- --file ./examples/sample.envAusgabe in eine Datei schreiben
pnpm dev -- --file ./examples/sample.env --output ./sanitized.envJSON-Ausgabe
pnpm dev -- --file ./examples/sample.log --format jsonBeispielausgabe:
{
"redactedText": "Authorization: Bearer [REDACTED_AUTHORIZATION_HEADER]\nuser_email=[REDACTED_EMAIL]\ncallback=https://example.com/callback?token=[REDACTED_SENSITIVE_URL]&lang=en\nCookie: session=[REDACTED_COOKIE_HEADER]; theme=dark\n",
"summary": {
"totalMatches": 4,
"byType": {
"authorization_header": 1,
"email": 1,
"sensitive_url": 1,
"cookie_header": 1
}
}
}Nur Zusammenfassung ausgeben
pnpm dev -- --file ./examples/sample.log --summary-onlyBeispielausgabe:
Total matches: 4
By type:
- authorization_header: 1
- cookie_header: 1
- email: 1
- sensitive_url: 1Aktivierte Gruppen einschränken
Nur persönliche Detektoren ausführen:
pnpm dev -- --file ./examples/sample.log --only personalEine Gruppe zur Laufzeit deaktivieren:
pnpm dev -- --file ./examples/sample.log --disable httpEine Konfigurationsdatei verwenden
pnpm dev -- --file ./examples/sample.log --config ./examples/mcp-redact.config.jsonDie Beispielkonfiguration aktiviert nur die Gruppen personal und custom, deaktiviert den integrierten email-Detektor und fügt eine benutzerdefinierte internal-ticket-Regel hinzu. Mit dieser Konfiguration bleibt sample.log unverändert, da es keinen benutzerdefinierten Ticket-Wert enthält und die E-Mail-Schwärzung deaktiviert ist.
MCP-Nutzung
Den MCP-Server starten
Entwicklungsmodus:
pnpm mcp:devBauen und ausführen:
pnpm build
pnpm mcp:startMCP-Tools
redact_text
Input:
{
"text": "Authorization: Bearer abcdefghijklmnop123456",
"groups": ["http"],
"configPath": "./examples/mcp-redact.config.json"
}redact_file
Input:
{
"filePath": "./examples/sample.log",
"groups": ["http"],
"configPath": "./examples/mcp-redact.config.json"
}Beide Tools geben die gleiche strukturierte Form zurück:
{
"redactedText": "...",
"summary": {
"totalMatches": 4,
"byType": {
"authorization_header": 1,
"email": 1
}
}
}Verbindung von einem MCP-Client herstellen
Verwenden Sie den Server-Befehl, der zu Ihrer Umgebung passt:
Entwicklung:
pnpm mcp:devBuild-Ausgabe:
pnpm mcp:start
Wenn Ihr MCP-Client einen Befehl plus Argumente erwartet, verweisen Sie ihn auf das lokale Projekt und führen Sie den Server über stdio aus. Der Server stellt zwei Tools bereit: redact_text und redact_file.
Konfiguration
Standard-Konfigurationsdateiname:
mcp-redact.config.jsonWenn kein expliziter Konfigurationspfad angegeben ist, versucht mcp-redact, diese Datei aus dem aktuellen Arbeitsverzeichnis zu lesen. Wenn die Standarddatei fehlt, wird die Ausführung normal fortgesetzt. Wenn Sie explizit einen fehlenden Konfigurationspfad übergeben, schlägt der Befehl fehl.
Beispielkonfiguration:
{
"enabledGroups": ["personal", "custom"],
"disabledDetectors": ["email"],
"customRules": [
{
"name": "internal-ticket",
"pattern": "TICKET-[0-9]{6}",
"placeholder": "[REDACTED_TICKET]"
}
]
}Konfigurationsfelder
enabledGroups: beschränkt integrierte und benutzerdefinierte Detektoren auf die aufgeführten GruppendisabledDetectors: deaktiviert Detektoren nach Namen, wie z. B.emailodergithub-tokencustomRules: fügt lokale Regex-basierte Detektoren hinzu, die dieselbe Pipeline wie integrierte Regeln verwenden
Unterstützte Detektoren
secrets
Bearer-Token
JWT
GitHub-Token
API-Schlüssel im OpenAI-Stil
API-Schlüssel im Anthropic-Stil
AWS Access Key ID
Schlüssel-Wert-Geheimnisse wie
password=,token=,secret=,api_key=Private-Key-Blöcke
personal
E-Mail
Telefonnummer
IPv4
http
Authorization-Header Bearer-Wert
Sensibler Cookie-Header-Wert
Sensibler URL-Query-Wert wie
token=
Lokale Entwicklung
Allgemeine Befehle:
pnpm install
pnpm test
pnpm lint
pnpm typecheck
pnpm build
pnpm mcp:devRoadmap
Mehr Token- und API-Schlüssel-Muster
Bessere Unterdrückung von Fehlalarmen
Mehr praxisnahe Log- und Konfigurationsbeispiele
Mehr End-to-End MCP-Client-Beispiele
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nine710/mcp-redact'
If you have feedback or need assistance with the MCP directory API, please join our Discord server