Skip to main content
Glama
thegeekybeng

pc2e-pii-shield

by thegeekybeng

pc2e-pii-shield

本番環境に対応したセキュアなModel Context Protocol(MCP)サーバーです。PostgreSQLへの読み取り専用クエリ実行を提供し、自動・クライアントサイド・エッジでの個人情報(PII)マスキングを実現します。LLMエージェント(Cursor、Cline、Claude Codeなど)がデータベースに対してSQLクエリを実行できるようにしながら、GDPR、PDPA、およびデータプライバシー原則への厳格な準拠を保証します。

再利用可能なセキュリティミドルウェア製品として設計・エンジニアリングされた本サーバーは、データベースのクエリ結果を傍受して、機密データの外部送信を防止します。


技術アーキテクチャ

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

中核コンポーネント

  1. 自動マスキングインターセプター(masking.ts): SQL結果セットを動的にスキャンします。カラムスキーマの照合(nameemailphoneなどを含むフィールド)と正規表現ベースのコンテンツスキャンを組み合わせたハイブリッド方式を採用し、サーバーからデータが送信される前に機密識別子を検出してマスキングします。

  2. 仮名化キャッシュ(cache.ts): インメモリのTTLベースのキャッシュ(デフォルト:30分)で、生の値を一時的なプレースホルダー(例:__PERSON_A____EMAIL_1__)にマッピングします。これにより、無制限のメモリ消費を防ぎながら、双方向の復元が可能になります。

  3. ASTレベルの変更ガード(db.ts): 生のSQL入力を傍受する厳格な正規表現バリデータです。非SELECTコマンドをブロックし、DROPALTERDELETETRUNCATECREATEGRANTなどの禁止キーワードを含むクエリを拒否することで、アプリケーションレイヤーで厳格な読み取り専用境界を保証します。

  4. 同時セッションマネージャー(index.ts): 基本的な単一接続テンプレートとは異なり、接続sessionIdをキーとするSSEServerTransportインスタンスのアクティブマップを維持し、複数のリモート開発者やエージェントが状態の衝突なしに同時に接続してストリーミングできるようにします。

  5. テレメトリ&メトリクスエンドポイント(/stats): 接続数、一意のクライアントIP追跡、集計クエリ実行統計を公開し、インストール状況とアクティブな使用状況をリアルタイムで監視します。


Related MCP server: PostgreSQL MCP Server

セキュリティモデルと脅威の軽減

  • ゼロトラストデータベース接続: 認証情報の漏洩を防ぐように設計されています。データベースは分離されたTailscale専用ネットワークインターフェース(例:100.92.174.76)上で実行され、データベースポートがパブリックインターネットに公開されることはありません。

  • 暗号化トランスポートとAPIキーセキュリティ: サーバーはNginxをフロントにワイルドカードSSL証明書を使用したHTTPS(ポート443)で保護され、リクエストを転送する前にセキュアなAPIキー認証ゲート(x-api-key)を適用します。

  • インメモリライフサイクル: 仮名化マッピングは厳格なTTL付きでメモリ内に保存され、マスキングされたPIIの永続的なディスクフットプリントを残しません。


インストールとデプロイ

1. 前提環境のセットアップ

環境テンプレートをコピーします:

cp .env.example .env

.env内でデータベースの認証情報を設定し、安全なAPIキーを生成します。

2. ネイティブビルド

Node.js(v18以降)がインストールされていることを確認します:

npm install
npm run build
npm start

3. コンテナ化されたデプロイ

Docker Composeを使用してデプロイします:

docker compose up -d --build

これにより、ホストのポート3088がコンテナの内部ポート3000にマッピングされ、SSEサーバーが自動的に実行されます。

4. 直接実行(NPX)

コードを手動でダウンロードせずに、Stdioトランスポート経由でサーバーを即座に実行できます:

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

または、SSEトランスポート経由でサーバーを実行します:

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

クライアント統合

A. ローカルクライアント統合(NPX over Stdio経由)

npxを使用してサーバーを直接起動するようにローカルAIクライアントを設定します。

Claude Desktop(config.json

以下のブロックを~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または%APPDATA%\Claude\claude_desktop_config.json(Windows)に追加します:

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

Cursor(設定→機能→MCP)

  1. + 新しいMCPサーバーを追加をクリックします。

  2. 名前pc2e-pii-shieldを設定します。

  3. タイプcommandを設定します。

  4. コマンドに以下を設定します:

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

VS Code(Cline / Roo Code)

クライアント設定JSONに以下を追加します:

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

B. リモートクライアント統合(HTTPS over SSE経由)

ホスト型サーバー(例:公開済みのNASインスタンス)に接続する場合は、SSEトランスポートURLを介して接続します。

VS Code(Cline / Roo Code)

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

Cursor

  1. + 新しいMCPサーバーを追加をクリックします。

  2. 名前pc2e-pii-shieldを設定します。

  3. タイプSSEを設定します。

  4. URLに以下を設定します:

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

プロジェクト概要とテクニカルリード

本プロジェクトは、Andrew Yeoによって設計・構築・オープンソース化されました。

リードアーキテクトについて

Andrewはシンガポールを拠点とするシニアシステムアーキテクト兼AIエンジニアであり、以下を提供しています:

  • APACでの25年のプロフェッショナル経験:プログラムデリバリー、クライアントオンボーディング、技術ベンダー管理を担当。

  • 16年以上のシステムアーキテクチャおよびテクノロジーリーダーシップ:堅牢なエンタープライズインフラストラクチャとマイクロサービスの設計・デプロイに従事。

  • 2年以上の実践的なAI/MLエンジニアリング:AI安全性、LLMメトリクス、セキュアなエージェントワークフローを専門とする。

実証済みの実績

  • セキュアな市民プラットフォーム: MPS-Connect(市民選挙区のケースワークプラットフォーム)と**Case-Writer-Intelligence(CWI)**を設計・デプロイし、7つのヒューマン・イン・ザ・ループ承認ゲートを備えた3段階の因果関係エンジンを統合して、文書トリアージ時間を40%削減。

  • AI計測とテスト: **Portable Continuous Context Engine(PC2E)**を設計し、6つのLLMプロバイダーにわたる50,000件のケースを体系的かつ実証的に評価して、モデルのアライメントとコンプライアンスをベンチマーク。

  • 技術的専門分野: CI/CDおよびDevSecOps(GitHub Actions、Docker)、コンテナ化されたデプロイ、ゼロトラストネットワークトポロジ、ローカル/エッジSLMオーケストレーションのエキスパート。

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