Skip to main content
Glama
thegeekybeng

pc2e-pii-shield

by thegeekybeng

pc2e-pii-shield

Ein sicherer, produktionsreifer Model Context Protocol (MCP)-Server, der schreibgeschützte PostgreSQL-Abfragen mit automatischer, clientseitiger und Edge-Pseudonymisierung personenbezogener Daten (PII) ermöglicht. Er erlaubt LLM-Agenten (z. B. Cursor, Cline, Claude Code), SQL-Abfragen auf Datenbanken auszuführen, während die strikte Einhaltung von GDPR, PDPA und Datenschutzprinzipien gewährleistet wird.

Entworfen und entwickelt als wiederverwendbares Sicherheits-Middleware-Produkt, fängt dieser Server Datenbankabfrageergebnisse ab, um den Abfluss sensibler Daten zu verhindern.


Technische Architektur

flowchart TD
    Client["AI Agent / Client (Cursor/Cline)"]
    Proxy["Nginx Reverse Proxy"]
    App["pc2e-pii-shield (Express)"]
    DB["Postgres Database (Tailscale-Only)"]

    Client ==>|HTTPS / SSE Request| Proxy
    Proxy ==>|x-api-key Authentication| App
    App ==>|Regex Read-Only Validation| DB
    DB ==>|Raw SQL Results| App
    App ==>|PII Tokenization & Masking| Proxy
    Proxy ==>|Sanitized Event Stream| Client

Kernkomponenten

  1. Automatische Maskierungs-Interception (masking.ts): Scannt dynamisch SQL-Ergebnismengen. Sie verwendet einen hybriden Ansatz: Spaltenschema-Abgleich (z. B. Felder, die name, email, phone enthalten) kombiniert mit regex-basiertem Inhalts-Scanning, um sensible Identifikatoren zu erkennen und zu maskieren, bevor Daten den Server verlassen.

  2. Pseudonymisierungs-Cache (cache.ts): Ein In-Memory-Cache mit TTL (Standard: 30 Minuten), der Rohwerte auf temporäre Platzhalter abbildet (z. B. __PERSON_A__, __EMAIL_1__). Dies ermöglicht die bidirektionale Wiederherstellung, während ein unbegrenzter Speicherverbrauch verhindert wird.

  3. AST-basierte Mutationssperre (db.ts): Ein strikter Regex-Validator, der rohe SQL-Eingaben abfängt. Er blockiert alle Nicht-SELECT-Befehle und lehnt Abfragen ab, die verbotene Schlüsselwörter wie DROP, ALTER, DELETE, TRUNCATE, CREATE oder GRANT enthalten, wodurch eine strikte Nur-Lese-Grenze auf Anwendungsebene gewährleistet wird.

  4. Concurrent Session Manager (index.ts): Im Gegensatz zu einfachen Einzelverbindungs-Vorlagen verwaltet dieser Server eine aktive Map von SSEServerTransport-Instanzen, die über die Verbindungs-sessionId Schlüssel zugeordnet werden. Dadurch können mehrere Remote-Entwickler oder -Agenten gleichzeitig und ohne Zustandskollisionen streamen.

  5. Telemetrie- & Metrik-Endpunkt (/stats): Stellt Verbindungszahlen, die Verfolgung eindeutiger Client-IPs und aggregierte Abfrageausführungsstatistiken bereit, um Installation und aktive Nutzung in Echtzeit zu überwachen.


Related MCP server: PostgreSQL MCP Server

Sicherheitsmodell & Bedrohungsabwehr

  • Zero-Trust-Datenbankkonnektivität: Entwickelt, um die Offenlegung von Anmeldeinformationen zu verhindern. Die Datenbank läuft auf einer isolierten Tailscale-only-Netzwerkschnittstelle (z. B. 100.92.174.76), wodurch sichergestellt wird, dass der Datenbankport niemals dem öffentlichen Internet ausgesetzt ist.

  • Verschlüsselter Transport & API-Key-Sicherheit: Der Server wird von Nginx über HTTPS (Port 443) mit Wildcard-SSL-Zertifikaten abgesichert, wodurch ein sicherer API-Key-Authentifizierungs-Gateway (x-api-key) erzwungen wird, bevor Anfragen weitergeleitet werden.

  • In-Memory-Lebenszyklus: Pseudonymisierungszuordnungen werden im Speicher mit strengen TTLs gehalten, sodass keine dauerhaften Datenträgerspuren der maskierten PII zurückbleiben.


Installation & Bereitstellung

1. Vorbereitung der Umgebung

Kopieren Sie die Umgebungsvorlage:

cp .env.example .env

Konfigurieren Sie Ihre Datenbankanmeldeinformationen und generieren Sie einen sicheren API-Key in .env.

2. Nativer Build

Stellen Sie sicher, dass Node.js (v18+) installiert ist:

npm install
npm run build
npm start

3. Containerisierte Bereitstellung

Bereitstellung mit Docker Compose:

docker compose up -d --build

Dies bildet den Host-Port 3088 auf den internen Container-Port 3000 ab und startet den SSE-Server automatisch.

4. Direkte Ausführung (NPX)

Sie können den Server sofort über den Stdio-Transport ausführen, ohne den Code manuell herunterladen zu müssen:

npx -y mcp-pii-shield --db-uri "postgresql://username:password@localhost:5432/your_database"

Oder führen Sie den Server über den SSE-Transport aus:

npx -y mcp-pii-shield --sse --port 3000 --db-uri "postgresql://username:password@localhost:5432/your_database" --api-key "your_secret_key"

Client-Integration

A. Lokale Client-Integration (über NPX mit Stdio)

Konfigurieren Sie Ihren lokalen KI-Client so, dass er den Server direkt mit npx startet.

Claude Desktop (config.json)

Fügen Sie den folgenden Block zu Ihrer ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) oder %APPDATA%\Claude\claude_desktop_config.json (Windows) hinzu:

{
  "mcpServers": {
    "pc2e-pii-shield": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-pii-shield",
        "--db-uri",
        "postgresql://username:password@localhost:5432/your_database"
      ]
    }
  }
}

Cursor (Einstellungen → Features → MCP)

  1. Klicken Sie auf + Neuen MCP-Server hinzufügen.

  2. Setzen Sie Name auf pc2e-pii-shield.

  3. Setzen Sie Typ auf command.

  4. Setzen Sie Befehl auf:

    npx -y mcp-pii-shield --db-uri "postgresql://username:password@localhost:5432/your_database"

VS Code (Cline / Roo Code)

Fügen Sie die folgenden Einstellungen zu Ihrer Client-Konfiguration hinzu:

{
  "mcpServers": {
    "pc2e-pii-shield": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-pii-shield",
        "--db-uri",
        "postgresql://username:password@localhost:5432/your_database"
      ]
    }
  }
}

B. Remote-Client-Integration (über HTTPS mit SSE)

Wenn Sie eine Verbindung zu einem gehosteten Server herstellen (z. B. Ihrer öffentlichen NAS-Instanz), verbinden Sie sich über die SSE-Transport-URL.

VS Code (Cline / Roo Code)

Fügen Sie die folgenden Einstellungen zu Ihrer Client-Konfiguration hinzu:

{
  "mcpServers": {
    "pc2e-pii-shield": {
      "sseUrl": "https://pii-shield.thegeekybeng.com/sse?api_key=your_api_key_here"
    }
  }
}

Cursor (Einstellungen → Features → MCP)

  1. Klicken Sie auf + Neuen MCP-Server hinzufügen.

  2. Setzen Sie Name auf pc2e-pii-shield.

  3. Setzen Sie Typ auf SSE.

  4. Setzen Sie URL auf:

    https://pii-shield.thegeekybeng.com/sse?api_key=your_api_key_here

Projektkontext & Technische Leitung

Dieses Projekt wurde von Andrew Yeo entworfen, entwickelt und als Open Source veröffentlicht.

Über den technischen Leiter

Andrew ist ein Senior Systems Architect und KI-Ingenieur mit Sitz in Singapur und bietet:

  • 25 Jahre Berufserfahrung im asiatisch-pazifischen Raum (APAC), mit Verantwortung für Programmabwicklung, Kunden-Onboarding und technisches Lieferantenmanagement.

  • 16+ Jahre Systemarchitektur und Technologieführung, einschließlich Design und Bereitstellung robuster Unternehmensinfrastrukturen und Microservice-Plattformen.

  • 2+ Jahre praxisorientierte KI/ML-Entwicklung, spezialisiert auf KI-Sicherheit, LLM-Metriken und sichere agentische Workflows.

Verifizierte Referenzprojekte

  • Sichere Bürgerplattformen: Architektur und Bereitstellung von MPS-Connect (einer Plattform für Bürgerangelegenheiten) und Case-Writer-Intelligence (CWI), die eine 3-stufige Kausalitäts-Engine mit 7 Human-in-the-Loop-Entscheidungstoren integriert und die Bearbeitungszeit für Dokumente um 40 % reduziert.

  • KI-Messtechnik & -Bewertung: Entwicklung der Portable Continuous Context Engine (PC2E) mit systematischer, empirischer Evaluierung von 50.000 Fällen über sechs LLM-Anbieter hinweg, um Modellkonformität und -ausrichtung zu benchmarken.

  • Technischer Schwerpunkt: Experte für CI/CD & DevSecOps (GitHub Actions, Docker), containerisierte Bereitstellungen, Zero-Trust-Netzwerktopologien und lokale/Edge-SLM-Orchestrierungen.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    A secure MCP server that enables querying PostgreSQL databases through an SSH tunnel with enforced read-only access, connection pooling, and comprehensive data exploration tools.
  • A
    license
    Not graded
    quality
    D
    maintenance
    A production-ready MCP server that enables safe, read-only SQL SELECT queries against PostgreSQL databases with built-in security validation. It features connection pooling, automatic row limits, and structured logging to ensure secure and reliable database interactions.
    34
    ISC
  • A
    license
    Not graded
    quality
    C
    maintenance
    Read-only PostgreSQL MCP server that enables running SELECT queries, listing tables and schemas, and describing columns, with built-in protection against writes and malicious SQL attacks.
    539
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for managing Prisma Postgres.

  • Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.

  • Read-only MCP server for ClassQuill, a tutoring-business-management platform.

View all MCP Connectors

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/thegeekybeng/mcp-pii-shield'

If you have feedback or need assistance with the MCP directory API, please join our Discord server