MCPGuard-Lab
MCPGuard-Lab
Ein Sicherheits-Experimentierprojekt für MCP-Toolaufrufe basierend auf dem echten mcp==2.0.0 SDK. Es ist nicht auf externe große Modelle oder API-Schlüssel angewiesen, sondern realisiert über deterministische Strategien eine Tool-Whitelist, Parametervalidierung, Dateigrenzen, SSRF-Schutz, Bestätigung sensibler Operationen, Ausgabebereinigung, Erkennung von Tool-Beschreibungsvergiftungen und JSONL-Protokollierung. Regressionstests stellen sicher, dass der Schutz durch spätere Änderungen nicht beeinträchtigt wird.
Verwendungszweck: Dieses Projekt ist ausschließlich für lokale Experimente, autorisierte Tests und Sicherheitsforschung gedacht und enthält keine Angriffsfunktionen gegen nicht autorisierte Ziele.
Implementierte Fähigkeiten
Roundtrip-Tests zwischen MCP 2.0 stdio-Server und echtem Client.
Sechs Demo-Tools: Sicheres Rechnen, Dateilesen innerhalb des Stammverzeichnisses, Notizabfrage, öffentliche URL-Anfragen, Tool-Metadatenprüfung, Notiz schreiben nach Bestätigung.
Tool-Whitelist und strikte JSON-Schema-Validierung, Ablehnung zusätzlicher Parameter.
Normalisierung von Dateipfaden, Ablehnung von absoluten Pfaden, Verzeichnisquerungen und Ausbrechen aus dem Stammverzeichnis.
Prüfung von URL-Protokoll, Benutzerinformationen, Ports und DNS-Auflösungsergebnissen; Ablehnung von Loopback-, privaten, link-lokalen und anderen nicht-öffentlichen Adressen.
Schreibzugriff nur mit
confirmed=true-Türsteuerung.Explizite Kennzeichnung von Ausgaben aus nicht vertrauenswürdigen Tools; rekursive Bereinigung von Passwörtern, Tokens, API-Schlüsseln und Bearer-Anmeldeinformationen.
Erkennung von Hinweisen auf Prompt-Injektion in Tool-Namen/Beschreibungen mit hohem Risiko.
Jede Entscheidung wird in JSONL protokolliert: Anfrage-ID, Zeit, Tool, Parameter, Erlaubnis/Ablehnung, Grund und Ergebnis.
pytest-Unit-/Integrationstests und reproduzierbare Angriffsregressionsberichte.
Related MCP server: meok-mcp-injection-scan-mcp
Architektur
MCP Client
│ stdio / MCP 2.0
▼
MCP Server ──► GuardedGateway ──► PolicyEngine
│ ├─ allowlist + schema
│ ├─ path boundary
│ ├─ URL / SSRF
│ └─ confirmation
├─ Tool handler
├─ untrusted labeling + redaction
└─ JSONL auditDas Kernprinzip lautet: „Zuerst entscheiden, dann ausführen, dann Ausgabe bereinigen, alles protokollieren“. Prompt-Texte erhalten nicht direkt zusätzliche Berechtigungen; die Berechtigungen basieren auf der Whitelist und den Richtlinien im Code.
Schnellstart (Windows)
py -3.10 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev]"
.\.venv\Scripts\python.exe -m pytest
.\.venv\Scripts\python.exe -m mcpguard.regressionSie können auch direkt ausführen:
powershell -ExecutionPolicy Bypass -File .\scripts\verify.ps1Der Bericht wird erstellt in:
reports/regression-report.md*reports/regression-report.json*reports/regression-audit.jsonl
Beispielkonfiguration für MCP-Client
Zunächst pip install -e . ausführen, dann die folgende Struktur durch den aktuellen absoluten Pfad des Repositorys ersetzen:
{
"mcpServers": {
"mcpguard-lab": {
"command": "D:/path/to/mcpguard-lab/.venv/Scripts/python.exe",
"args": ["-m", "mcpguard.server"],
"env": {
"MCPGUARD_WORKSPACE": "D:/path/to/mcpguard-lab/fixtures/workspace",
"MCPGUARD_NOTES": "D:/path/to/mcpguard-lab/fixtures/workspace/notes",
"MCPGUARD_AUDIT": "D:/path/to/mcpguard-lab/reports/audit.jsonl"
}
}
}
}Reale Grenzen
Die Tool-Beschreibungsvergiftungserkennung ist eine Regel mit hoher Signalstärke und kann manuelle Überprüfungen und feste Whitelists nicht ersetzen.
confirmed=trueist eine explizite Bestätigungstür in lokalen Experimenten; in der Produktion sollten Bestätigungsnachweise verwendet werden, die vom Host-UI/Identitätssystem ausgestellt werden und nicht vom Modell selbst gefälscht werden können.Das URL-Tool deaktiviert derzeit Weiterleitungen, um zu vermeiden, dass nach dem ersten Prüfungsdurchlauf ins interne Netz gesprungen wird; die Produktionsversion sollte auch Antwortgröße, Inhaltstyp und ausgehendes Netzwerk einschränken.
Die Kennzeichnung nicht vertrauenswürdiger Inhalte kann das Risiko verringern, dass „Daten als Anweisungen“ behandelt werden, aber der endgültige Host-Agent muss weiterhin die Vertrauensgrenzen einhalten.
Regressionsdaten repräsentieren nur festgelegte Anwendungsfälle innerhalb des Repositorys und bedeuten nicht, dass alle Prompt-Injektionen oder alle MCP-Risiken blockiert werden können.
Inhaltsverzeichnis
src/mcpguard/ 核心实现
tests/ 单元测试与真实 MCP stdio 集成测试
fixtures/ 可公开的本地测试数据
reports/ 自动生成的测试和审计证据
scripts/verify.ps1 一键验证入口Referenzen
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityFmaintenanceAn educational project that deliberately implements vulnerable MCP servers to demonstrate various security risks like prompt injection, tool poisoning, and code execution for training security researchers and AI safety professionals.1,334
- AlicenseAqualityCmaintenanceScans MCP servers for prompt-injection, tool-poisoning, and SSRF vulnerabilities using 30+ canonical rules across 5 severity tiers, with optional signed safety reports for procurement.5MIT
- Alicense-qualityBmaintenanceAn MCP server that provides safeguard capabilities to protect against prompt injection and unsafe tool calls.6MIT
- Flicense-qualityBmaintenanceProvides real-time RCE, SSRF, and env leak interception for AI tool calls, with MCP server mode offering diagnostic and repair suggestions.
Related MCP Connectors
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Scans MCP servers for tool poisoning, prompt injection and supply chain risks.
An MCP server for Arcjet - the runtime security platform that ships with your AI code.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Lc517/mcpguard-lab'
If you have feedback or need assistance with the MCP directory API, please join our Discord server