pc2e-pii-shield
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中核コンポーネント
自動マスキングインターセプター(
masking.ts): SQL結果セットを動的にスキャンします。カラムスキーマの照合(name、email、phoneなどを含むフィールド)と正規表現ベースのコンテンツスキャンを組み合わせたハイブリッド方式を採用し、サーバーからデータが送信される前に機密識別子を検出してマスキングします。仮名化キャッシュ(
cache.ts): インメモリのTTLベースのキャッシュ(デフォルト:30分)で、生の値を一時的なプレースホルダー(例:__PERSON_A__、__EMAIL_1__)にマッピングします。これにより、無制限のメモリ消費を防ぎながら、双方向の復元が可能になります。ASTレベルの変更ガード(
db.ts): 生のSQL入力を傍受する厳格な正規表現バリデータです。非SELECTコマンドをブロックし、DROP、ALTER、DELETE、TRUNCATE、CREATE、GRANTなどの禁止キーワードを含むクエリを拒否することで、アプリケーションレイヤーで厳格な読み取り専用境界を保証します。同時セッションマネージャー(
index.ts): 基本的な単一接続テンプレートとは異なり、接続sessionIdをキーとするSSEServerTransportインスタンスのアクティブマップを維持し、複数のリモート開発者やエージェントが状態の衝突なしに同時に接続してストリーミングできるようにします。テレメトリ&メトリクスエンドポイント(
/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 start3. コンテナ化されたデプロイ
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)
+ 新しいMCPサーバーを追加をクリックします。
名前に
pc2e-pii-shieldを設定します。タイプに
commandを設定します。コマンドに以下を設定します:
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
+ 新しいMCPサーバーを追加をクリックします。
名前に
pc2e-pii-shieldを設定します。タイプに
SSEを設定します。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オーケストレーションのエキスパート。
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
- FlicenseNot gradedqualityDmaintenanceA secure MCP server that enables querying PostgreSQL databases through an SSH tunnel with enforced read-only access, connection pooling, and comprehensive data exploration tools.
- AlicenseNot gradedqualityDmaintenanceA 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.34ISC
- AlicenseNot gradedqualityCmaintenanceRead-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.539MIT
- AlicenseAqualityDmaintenanceA secure, read-only PostgreSQL MCP server that provides safe database introspection and querying capabilities.1415MIT
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.
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/thegeekybeng/mcp-pii-shield'
If you have feedback or need assistance with the MCP directory API, please join our Discord server