MCP-Gatekeeper
🛡️ MCP-Gatekeeper
Laufzeit-Sicherheits-Gateway & FastMCP-Server für Model Context Protocol (MCP)-Clients und vorgelagerte Server.
MCP-Gatekeeper ist ein Defense-in-Depth-Proxy und FastMCP-Server, der 100 % der Tool-Listen-Aktualisierungen und Tool-Antworten überprüft und so Tool-Vergiftung, durch Antworten ausgelöste Prompt-Injection (z. B. MCPoison-/CurXecute-Angriffe), stille Tool-Schema-Änderungen („Rug Pulls") und unbefugte Hochrisiko-Operationen verhindert.
Konzipiert für die sofortige Bereitstellung auf fastmcp.cloud oder die lokale Ausführung über die fastmcp-CLI.
🚀 Hauptmerkmale und Funktionen
FastMCP Cloud Ready: Ein Datei umfassender FastMCP-Einstiegspunkt (
server.py), der direkt auf fastmcp.cloud mit SSE- und HTTP-Transport bereitgestellt werden kann.Rug-Pull-Schemata-Schutz: Erfassung einer Tool-Schema-Baseline bei der Verbindung; gleicht 100 % der Tool-Listen-Aktualisierungen mit genehmigten Baselines ab und blockt nicht genehmigte Tool-Änderungen standardmäßig.
Zweistufiger Scanner für Antwort-Injection:
Stufe 1: Hochleistungsfähiger regelbasierter Vorfilter, der auf bekannte Anweisungsentführungen, Exfiltration-Fallen und Shell-Injection abzielt.
Stufe 2: Tiefgehende semantische LLM-Klassifizierung unter Verwendung einer beliebigen OpenAI-kompatiblen API (
LLM_API_KEYaus.env, unterstützt OpenAI, Grok, DeepSeek, Anthropic oder lokales Ollama).
Fail-Closed-Sicherheitsdesign: Jeder Klassifikatorfehler, jedes Netzwerk-Timeout oder jede unbehandelte Ausnahme führt standardmäßig zum Blockieren der Nutzlast und zur Erstellung eines Sicherheitsvorfalls.
Policy-Engine: Konfigurierbare Regelauswertung pro Tool und pro Server (
allow,block,confirm,rate_limit).Bestätigungs-Gate für Menschen: Hält risikoreiche Aktionen bis zur Admin-Freigabe zurück; schlägt fehl (verweigert), wenn innerhalb des konfigurierbaren Zeitlimits nicht geantwortet wird.
Manipulationssichere Prüfpfad: Jeder Aufruf, jede Antwort, jede Richtlinienentscheidung und jede Admin-Entscheidung wird mit SHA-256-Hash-Verkettung gespeichert.
Cloud Control Center Dashboard: Live-HTML-Admin-Dashboard, das direkt über FastMCP unter
/dashboardbereitgestellt wird.
Related MCP server: shadowgate-mcp
🛠️ Architekturübersicht
Systemarchitektur auf hoher Ebene
flowchart TD
subgraph Clients["AI Clients & Interfaces"]
C1["Claude Desktop"]
C2["Claude Code CLI"]
C3["Google Antigravity"]
C4["ChatGPT / Custom App"]
end
subgraph Gateway["🛡️ MCP-Gatekeeper (FastMCP Cloud)"]
direction TB
S["FastMCP Server\nserver.py"]
subgraph Engine["Security & Policy Engines"]
B["Schema Baseline Manager\n(Rug-Pull Detector)"]
POL["Policy Engine\n(Allow/Block/Confirm/Rate-Limit)"]
CONF["Confirmation Manager\n(Human Approval Gate)"]
subgraph Classifier["Two-Stage Response Classifier"]
R1["Stage 1: Rule Prefilter\n(Fast Pattern Match)"]
R2["Stage 2: LLM Classifier\n(OpenAI / Grok / DeepSeek / Ollama)"]
end
end
UI["Admin Control Center UI\n/dashboard"]
end
subgraph External["Upstream Services & AI APIs"]
UP["Upstream MCP Servers\n(GitHub, SQL, Web Search, APIs)"]
LLM["LLM Classifier API\n(OpenAI / Grok / DeepSeek / Ollama)"]
end
subgraph Storage["Datastore & Audit"]
DB[("PostgreSQL / SQLite DB")]
AUDIT[("Tamper-Evident Audit Log\n(SHA-256 Hash Chained)")]
end
Clients -->|MCP SSE / stdio / JSON-RPC| S
S --> B
S --> POL
POL -->|Held Action| CONF
POL -->|Allowed| UP
UP -->|Tool Response| Classifier
Classifier --> R1
R1 -->|Ambiguous / Suspicious| R2
R2 -->|API Query| LLM
Classifier -->|Clean / Safe| Clients
Classifier -->|Malicious / Timeout| Block["Fail-Closed Block Response"]
UI -->|Manage Policies & Baselines| DB
Engine -->|Record Calls & Incidents| DB
Engine -->|Write Chain Record| AUDITDetaillierter Ausführungsablauf und Sicherheits-Pipeline
sequenceDiagram
autonumber
actor Client as AI Agent Client
participant FastMCP as FastMCP Server (server.py)
participant Base as Schema Baseline Manager
participant Policy as Policy Engine
participant Gate as Human Confirmation Gate
participant Admin as Admin Dashboard (/dashboard)
participant Upstream as Upstream MCP Server
participant Stage1 as Stage 1: Rule Prefilter
participant Stage2 as Stage 2: LLM Classifier
participant Audit as SHA-256 Audit Log
Client->>FastMCP: 1. Request check_tool_security (tool_name, payload)
FastMCP->>Base: 2. Check tool baseline schema status
alt Schema modified or unapproved (Rug-Pull)
Base-->>FastMCP: Flagged schema mismatch
FastMCP->>Audit: Log Rug-Pull Incident
FastMCP-->>Client: Return Error: Tool schema unapproved
else Approved Baseline
Base-->>FastMCP: Baseline OK
end
FastMCP->>Policy: 3. Evaluate Call Policy
alt Policy = Blocked / Rate-Limited
Policy-->>FastMCP: Action Blocked
FastMCP-->>Client: Return Error: Blocked by security policy
else Policy = Held for Confirmation
Policy->>Gate: 4. Create Pending Approval Request
Gate->>Admin: Notify Admin on Dashboard
Admin->>Gate: 5. Admin Approves / Denies (or Timeout)
alt Denied or Timed Out (Fail-Closed)
Gate-->>FastMCP: Action Denied
FastMCP-->>Client: Return Error: High-risk action denied
else Approved
Gate-->>FastMCP: Action Approved
end
end
FastMCP->>Stage1: 6. Scan Response (Stage 1 Rule Prefilter)
alt Stage 1 Matches Known Attack Vector
Stage1-->>FastMCP: Verdict: Malicious
FastMCP->>Audit: Record Security Incident & Audit Log
FastMCP-->>Client: Return Safe Error: Response blocked
else Stage 1 Suspicious / Ambiguous
FastMCP->>Stage2: 7. Escalate to Stage 2 LLM Classifier
Stage2-->>FastMCP: Verdict & Reason (or Fail-Closed on Error)
alt Verdict = Malicious / Error
FastMCP->>Audit: Record Security Incident & Audit Log
FastMCP-->>Client: Return Safe Error: Response blocked
else Verdict = Clean
FastMCP->>Audit: Write Hash-Chained Audit Entry
FastMCP-->>Client: 8. Return Verified Clean Response
end
else Stage 1 Clean
FastMCP->>Audit: Write Hash-Chained Audit Entry
FastMCP-->>Client: 8. Return Verified Clean Response
end🔑 Umgebungskonfiguration (.env)
Das Gateway liest die generische LLM-Umgebungskonfiguration aus .env:
# LLM Security Classifier API Key (Supports OpenAI, DeepSeek, Grok, Ollama)
LLM_API_KEY="your-llm-api-key-here"
LLM_API_URL="https://api.openai.com/v1/chat/completions" # or https://api.x.ai/v1/chat/completions, https://api.deepseek.com/v1/chat/completions
LLM_MODEL="gpt-4o-mini" # or grok-2-latest, deepseek-chat, llama3, etc.
ADMIN_API_KEY="trust-gateway-admin-key-secret"
DATABASE_URL="sqlite+aiosqlite:///mcp_trust_gateway.db"
FAIL_CLOSED=true
CLASSIFIER_TIMEOUT_SECONDS=3.0
CONFIRMATION_TIMEOUT_SECONDS=60☁️ Bereitstellung und Client-Integration
1. Bereitstellung auf FastMCP Cloud
Übertragen Sie dieses Repository auf GitHub.
Gehen Sie zu fastmcp.cloud und erstellen Sie einen neuen Server:
Einstiegspunkt:
server.pyUmgebungsvariable:
LLM_API_KEY=your-api-key-here
Klicken Sie auf Bereitstellen. FastMCP Cloud stellt Ihre Endpunkte bereit:
MCP-SSE-Server:
https://mcp.fastmcp.cloud/your-username/mcp-trust-gateway/sseAdmin-Dashboard:
https://mcp.fastmcp.cloud/your-username/mcp-trust-gateway/dashboard
2. Client-Konfigurationen
🤖 Google Antigravity & Claude Desktop (mcp_config.json)
{
"mcpServers": {
"mcp-trust-gateway": {
"url": "https://mcp.fastmcp.cloud/your-username/mcp-trust-gateway/sse"
}
}
}💻 Claude Code (CLI)
claude mcp add mcp-trust-gateway --transport sse \
https://mcp.fastmcp.cloud/your-username/mcp-trust-gateway/sse🧪 Test- und Adversarial-Regression-Suite
Führen Sie die vollständige pytest-Suite einschließlich der Adversarial-Regression-Testsuite aus:
pytest -vErzielte Kennzahlen
📊 Adversarial-Erkennungsrate: 100 % (Ziel: ≥95 %)
📊 Falsch-Positiv-Rate: 0 % (Ziel: <2 %)
📝 Designentscheidungen
Fail-Closed-Standard: Alle mehrdeutigen Antworten, Klassifikator-Timeouts, Netzwerkprobleme oder nicht genehmigten Schemaänderungen schlagen fehl (Aktion blockieren und Administratoren benachrichtigen).
Redaktion von Anmeldeinformationen: Geheimnisse, API-Token und Passwörter, die mit sensiblen Schlüsseln übereinstimmen, werden vor dem Speichern im Prüfspeicher automatisch geschwärzt.
Stufe-1-Schnellfilter + LLM-Eskalation: Bekannte bösartige Muster werden sofort von Stufe 1 abgefangen, wodurch Latenz- und API-Aufwand für offensichtliche Angriffe entfallen, während für komplexe semantische Analysen ein LLM genutzt wird.
Manipulationssichere Hash-Verkettung: Jeder Protokolleintrag berechnet
SHA256(actor | action | target | details | prev_hash | timestamp), was Nichtabstreitbarkeit und die Erkennung von Protokollmanipulationen gewährleistet.
This server cannot be deployed
Maintenance
Related MCP Connectors
- gatewayOAuthai.sealgate
MCP gateway with runtime security policy, tool-call-level control, and audit of agent actions.
Security & DLP proxy for MCP: tool-poisoning scans, PII redaction on tool args/results. Beta.
Real-time MCP & A2A prompt-injection, jailbreak, and tool-schema poisoning firewall for AI agents.
Find, vet, and run MCP tools through a secure audited gateway with prompt-injection risk scoring
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceSecurity gateway for MCP tool calls. Sits between your LLM client and MCP servers, enforcing per-tool policies (allow/block/approve/read-only), logging every call, and pausing dangerous operations for human approval in terminal or Slack.1 npm1MIT
- AlicenseNot gradedqualityDmaintenanceA defensive gateway and firewall for AI agents using MCP servers, scanning tool calls, responses, and manifests for prompt injection, secrets, dangerous commands, and drift before allowing execution.MIT

evav-gatewayofficial
AlicenseNot gradedqualityDmaintenanceGoverned MCP gateway that lets AI agents call tools with policy enforcement, prompt-injection screening, a kill-switch, and tamper-evident signed audit logs.Apache 2.0- FlicenseNot gradedqualityCmaintenanceMCP server that provides a security gateway for AI agents, enforcing allow/confirm/deny policies on tool calls and requiring human approval for risky operations, with full audit logging.-