Shifr Shield
Provides read-only query execution and schema metadata retrieval against PostgreSQL databases, with security policies including table whitelisting, automatic LIMIT injection, and dynamic data masking.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Shifr Shieldshow me the schema for the orders table"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π‘οΈ Shifr Shield β Managed MCP Data Gateway Platform
Zero-Trust Data Firewall & Security Gateway for AI Assistants & LLMs
π Executive Summary & Problem Statement
Menghubungkan AI Assistant (seperti Claude Desktop, Cursor, Copilot, atau Agen LLM) langsung ke database operasional perusahaan menimbulkan risiko keamanan dan kepatuhan yang sangat kritis:
Risiko Destruktif (Halusinasi AI): AI dapat tanpa sengaja menghasilkan query mutasi data (
UPDATE,DELETE,DROP TABLE,TRUNCATE).Kebocoran Data Sensitif (PII & Finansial): LLM menyerap nomor kartu kredit, hash password, atau informasi gaji ke dalam konteks memorinya.
Database Crash (DoS / Memory Exhaustion): AI menjalankan query
SELECT *jutaan baris tanpa klausaLIMIT.Blind Spot Kepatuhan: Tidak adanya jejak audit (audit trail) query apa saja yang dieksekusi oleh AI ke database internal.
Shifr Shield hadir sebagai Managed MCP Data Gateway yang berfungsi sebagai Firewall Data & Proksi Cerdas. Shifr Shield berdiri di antara AI Assistant dan database, memastikan setiap query diperiksa, dibatasi, disanitasi, disensor (data masking), dan dicatat secara real-time.
Related MCP server: MCP DB Gateway
ποΈ Architecture Overview
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Client Layer: Claude Desktop / Cursor / CLI Agent β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β MCP Protocol over SSE
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Shifr Shield Data Plane (/mcp-gateway) β Node.js & TypeScript β
β β
β - Endpoint: GET /sse & POST /messages β
β - Autentikasi: Bearer Token dinamis terhadap tabel api_keys (SHA-256 Hash) β
β - Tools Terdaftar: get_schema_metadata, run_readonly_query β
β - Security & Enforcement Engine: β
β * Read-Only Enforcer (Memblokir INSERT, UPDATE, DELETE, DROP, ALTER, TRUNCATE) β
β * Whitelist Tables Guard (Hanya tabel diizinkan yang dapat dibaca) β
β * Automatic LIMIT Injection (Menyisipkan batas baris otomatis) β
β * Dynamic Data Masking Engine (Full Redact [REDACTED] & Partial Masking) β
β * Direct Audit Logger (Streaming catatan audit langsung ke PostgreSQL) β
βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ
β Read-Only SQL β Writes Audit Logs
βΌ βΌ
βββββββββββββββββββββββββββ βββββββββββββββββββββββββββ
β Guarded Database Target β β Control Plane DB β
β (Remote/Local PG) β β (PostgreSQL: β
β β β shifr_shield) β
βββββββββββββββββββββββββββ βββββββββββββ²ββββββββββββββ
β
Eloquent ORMβ Management
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββ
β Shifr Shield Web Admin & Control Plane β Laravel 12 + Tabler UI β
β β
β - Dashboard (/dashboard): Metrik queries, latency, connection status (.card-sm) β
β - Database Sources (/databases): Tambah koneksi & AJAX ping test connection β
β - Security Policies (/databases/{id}/policies): Whitelist tabel & repeater masking formβ
β - API Keys (/api-keys): One-time key display & snippet claude_desktop_config.json β
β - Audit Logs (/audit-logs): Tabler pagination & inspeksi Query Mentah vs Sanitasi β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββπ Fitur Utama
1. Control Plane & Web Admin Panel (Laravel 12 + Tabler UI)
100% Tabler UI Design System: Menggunakan murni class HTML bawaan Tabler Core (
.page,.page-wrapper,.card,.card-sm,.table-vcenter,.badge.bg-success-lt,.status-dot-animated) tanpa inline CSS baru.Dashboard Overview (
/dashboard): Menampilkan metrik real-time: Total Queries, Blocked Queries, Active DB Connections, dan Average Latency (ms), serta 5 riwayat query audit terbaru.Database Sources (
/databases): Manajemen koneksi PostgreSQL. Dilengkapi tombol "Test Connection" interaktif (AJAX ping langsung) yang memperbarui badge status seketika tanpa reload halaman.Security & Policy Rules (
/databases/{id}/policies):Table Whitelist: Memilih tabel mana yang diizinkan untuk diakses AI. Query ke tabel lain otomatis diblokir.
Column Data Masking Repeater (Alpine.js): Konfigurasi masking kolom sensitif:
Full Redact: Nilai kolom diubah 100% menjadi[REDACTED].Partial Mask: Sensor sebagian (contoh:b***o@enterprise.idatau41β’β’β’β’β’β’β’β’4444).
Max Query Limit: Batas maksimum hasil baris (default: 50).
API Keys & MCP Setup (
/api-keys): Generate token gateway dengan format prefix aman (shifr_live_β’β’β’β’). Dilengkapi modal One-Time Display dan snippet konfigurasiclaude_desktop_config.jsonsiap salin.Audit Logs (
/audit-logs): Jejak audit menyeluruh dengan filter pencarian dan modal detail untuk membandingkan Query Mentah (Input AI) vs Query Hasil Sanitasi (Guarded Output).
2. Data Plane Engine (Node.js + TypeScript MCP Gateway)
SSE Transport Server: Mendengarkan koneksi Server-Sent Events pada
http://localhost:3000/ssesesuai spesifikasi@modelcontextprotocol/sdk.Bearer Token Authentication: Memvalidasi token header
Authorization: Bearer shifr_live_***secara langsung terhadap tabelapi_keysdi PostgreSQL.Exposed MCP Tools:
get_schema_metadata: Memberikan daftar tabel dan tipe kolom yang hanya diizinkan oleh whitelist policy.run_readonly_query: Menjalankan query SQL dengan guardrail ketat.
Strict Read-Only Enforcement: Memblokir seketika kata kunci mutasi (
INSERT,UPDATE,DELETE,DROP,ALTER,TRUNCATE,CREATE,REPLACE,GRANT,REVOKE, dll.) dan stacked queries (pemisah;).Automatic Limit Injection: Jika AI tidak menyertakan
LIMIT, gateway menyisipkan batasan aman secara otomatis.Zero-Trust Password Decryption: Password database target didekripsi secara aman di memori menggunakan
APP_KEYLaravel (AES-256-CBC).
3. Natural Language Testing Agent CLI (npm run ask)
Memungkinkan pengguna menguji eksekusi query menggunakan Bahasa Indonesia / bahasa manusia non-teknis langsung dari terminal tanpa harus meng-install Claude Desktop.
π Struktur Direktori Proyek
riset-mcp/
βββ app/
β βββ Http/Controllers/
β β βββ ApiKeyController.php # Manajemen token gateway & snippet Claude
β β βββ AuditLogController.php # Riwayat query & inspeksi sanitasi
β β βββ DashboardController.php # Ringkasan metrik gateway
β β βββ DatabaseSourceController.php # Manajemen koneksi PG & test connection
β β βββ SecurityPolicyController.php # Whitelist tabel & aturan masking
β βββ Models/
β βββ ApiKey.php # Model token gateway (SHA-256 hash)
β βββ DatabaseSource.php # Model koneksi target (AES-256 password)
β βββ GatewayAuditLog.php # Model catatan audit eksekusi
β βββ SecurityPolicy.php # Model aturan whitelist & masking
βββ database/
β βββ migrations/
β β βββ 2026_10_14_000001_create_shifr_shield_tables.php
β βββ seeders/
β βββ DatabaseSeeder.php # Seeder data demo & tabel demo_customers
βββ resources/
β βββ css/app.css # Import Tabler Core CSS
β βββ js/app.js # Import Tabler Core JS & Alpine.js
β βββ views/
β βββ api-keys/index.blade.php # Halaman API Keys & MCP instruction
β βββ audit-logs/index.blade.php # Halaman Audit Logs & detail modal
β βββ components/
β β βββ tabler-badge.blade.php # Komponen Tabler badge dinamis
β β βββ tabler-card.blade.php # Komponen Tabler card standar
β βββ dashboard/index.blade.php # Halaman Dashboard utama
β βββ databases/index.blade.php # Halaman daftar koneksi database
β βββ layouts/app.blade.php # Layout utama Tabler UI
β βββ partials/pagination.blade.php # Pagination Blade berbasis Tabler
β βββ policies/edit.blade.php # Form whitelist tabel & masking repeater
βββ routes/
β βββ web.php # Rute aplikasi web
βββ tests/
β βββ Feature/ExampleTest.php # Unit & Feature Test suite (100% Passed)
β
βββ mcp-gateway/ # π‘οΈ Data Plane Engine (TypeScript)
βββ src/
β βββ crypto.ts # SHA-256 hashing & Laravel AES-256 decrypter
β βββ db.ts # PG connection pooling & audit log recorder
β βββ index.ts # Express SSE server (/sse & /messages)
β βββ mcp-server.ts # MCP Tools: get_schema_metadata, run_readonly_query
β βββ policy.ts # Query validator, auto-limit, data masking engine
βββ ask-cli.ts # Natural language query tester (Bahasa Indonesia)
βββ query-cli.ts # Direct SQL query tester
βββ test-gateway.ts # Automated integration test suite
βββ package.json
βββ tsconfig.jsonβοΈ Prasyarat Sistem
PHP: >= 8.2 (ekstensi:
pdo_pgsql,openssl,mbstring)Composer: >= 2.x
Node.js: >= 20.x & npm >= 10.x
PostgreSQL: >= 14.x
π Panduan Instalasi & Setup
1. Clone Repository & Konfigurasi Lingkungan
git clone <url-repo-anda> riset-mcp
cd riset-mcp
# Setup environment Laravel
cp .env.example .envPastikan konfigurasi PostgreSQL di .env sudah sesuai:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=shifr_shield
DB_USERNAME=postgres
DB_PASSWORD=your_postgres_password
MCP_GATEWAY_URL=http://localhost:30002. Install Dependensi & Migrasi Database
# Install paket PHP
composer install
# Generate App Key (kunci enkripsi AES-256)
php artisan key:generate
# Jalankan migrasi dan isi data demo (demo_customers, policy, dan API Key bawaan)
php artisan migrate --seed
# Install asset frontend Tabler & Alpine.js
npm install
npm run build3. Setup MCP Gateway (Data Plane)
cd mcp-gateway
cp .env.example .envSesuaikan file mcp-gateway/.env (pastikan APP_KEY sama persis dengan APP_KEY pada file root .env):
PORT=3000
SHIFR_DB_HOST=127.0.0.1
SHIFR_DB_PORT=5432
SHIFR_DB_NAME=shifr_shield
SHIFR_DB_USER=postgres
SHIFR_DB_PASSWORD=your_postgres_password
APP_KEY=base64:UL/uXWWYcM13SsElMcSamVtGD4RYboJMBhpPGN03I1Q=Install dependensi TypeScript MCP Gateway:
npm install
npm run buildπ Cara Menjalankan Layanan
Buka 2 tab terminal:
Terminal 1 β Jalankan Web Admin Laravel
cd riset-mcp
php artisan serve --port=8000Akses di browser: http://localhost:8000
Terminal 2 β Jalankan MCP Data Gateway
cd riset-mcp/mcp-gateway
npm startGateway akan aktif pada:
SSE Transport Endpoint:
http://localhost:3000/sseHealth Check:
http://localhost:3000/health
π§ͺ Panduan Pengujian & Demo Fitur
Anda memiliki 4 opsi mudah untuk menguji Shifr Shield:
Opsi A: Natural Language CLI Tester (Bahasa Indonesia) π£οΈ
Anda bisa menguji kemampuan gateway dengan bahasa manusia langsung di terminal:
cd mcp-gateway
# Query data pelanggan aktif
npm run ask "tampilkan semua pelanggan aktif"
# Menghitung agregasi data
npm run ask "berapa total jumlah pelanggan kita?"
# Menampilkan pelanggan pending
npm run ask "siapa saja pelanggan yang masih pending?"
# Menguji pencegahan mutasi berbahaya
npm run ask "tolong hapus data pelanggan yang suspended"Opsi B: Direct SQL CLI Tester β‘
Menjalankan SQL query langsung melalui gateway SSE:
cd mcp-gateway
# Test query read-only (akan di-masking otomatis)
npm run query "SELECT * FROM demo_customers"
# Test pembatalan mutasi
npm run query "DELETE FROM demo_customers WHERE id = 1"
# Test pembatalan tabel di luar whitelist
npm run query "SELECT * FROM pg_database"Opsi C: Anthropic MCP Inspector (Browser GUI) π
Uji antarmuka visual MCP tanpa Claude Desktop:
npx @modelcontextprotocol/inspectorMasukkan URL:
http://localhost:3000/sseMasukkan Header:
Authorization: Bearer shifr_live_claudedesktoptestkey2026alphaKlik Connect dan jalankan tool
run_readonly_query.
Opsi D: Menghubungkan ke Claude Desktop π€
Buka file claude_desktop_config.json di komputer Anda:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Tambahkan blok konfigurasi berikut:
{
"mcpServers": {
"shifr-shield": {
"url": "http://localhost:3000/sse",
"headers": {
"Authorization": "Bearer shifr_live_claudedesktoptestkey2026alpha"
}
}
}
}Restart Claude Desktop. Claude kini memiliki akses aman ke PostgreSQL yang diawasi oleh Shifr Shield.
π Security Model & Guardrails
Guardrail | Aturan Penegakan | Contoh Respon Gateway |
Query Mutasi | Memblokir |
|
Stacked Query | Memblokir query ganda dengan tanda titik koma ( |
|
Table Whitelist | Hanya tabel terdaftar di policy ( |
|
Limit Injection | Otomatis menambahkan atau meng-clamp klausa | Query |
Column Masking | Menyensor data sensitif sebelum dikirim ke AI. |
|
Audit Logging | Mencatat setiap query, durasi (ms), status, dan sanitasi query ke database. | Tercatat di tabel |
π Hasil Pengujian Otomatis (Test Suite)
Laravel Feature & Unit Tests:
php artisan testOutput:
Tests: 7 passed (14 assertions)β 100% pengujian rute dashboard, databases, policies, API keys, dan audit logs lolos verifikasi.MCP Gateway Automated Integration Tests:
cd mcp-gateway && npx tsx test-gateway.tsOutput:
π ALL MCP GATEWAY INTEGRATION TESTS PASSED PERFECTLY!β Menguji autentikasi 401, metadata skema, masking data, pencegahan mutasi DROP, dan penolakan tabel non-whitelist.
πΊοΈ Roadmap Pengembangan (Next Milestones)
Multi-Database Support: Dukungan konektor MySQL, Microsoft SQL Server, dan Snowflake.
Role-Based Access Control (RBAC): Kebijakan policy per role pengguna AI.
Live Alerting: Webhook notifikasi Slack / Discord untuk percobaan mutasi berbahaya.
Redis Caching Layer: Caching hasil query baca yang identik untuk menghemat resource database.
π Lisensi
Shifr Shield dikembangkan di bawah lisensi MIT License.
This server cannot be deployed
Maintenance
Related MCP Connectors
Query your org's data in natural language β read-only MCP access to SQL, NoSQL, files & warehouses.
Guard AI agents' PostgreSQL/MySQL access via MCP: SQL audit, auth, masking, write approval
Query your warehouse or a CSV with Claude/ChatGPT over MCP, governed by table-level ACL + audit.
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Related MCP Servers
- AlicenseAqualityBmaintenanceSecure MCP server for safe, read-only DB access by AI agents, with SQL guardrails, table allowlists, PII masking, and audit logs627 npm8MIT

MCP DB Gatewayofficial
AlicenseNot gradedqualityBmaintenanceProvides governed, read-only PostgreSQL access for AI agents via MCP. Enforces schema/table allowlists, query limits, and audit events.MIT- AlicenseNot gradedqualityBmaintenanceProvides read-only, guarded access to business databases via MCP. Enables natural language querying with built-in security barriers like table allowlists, PII masking, and audit logging.MIT
- AlicenseNot gradedqualityAmaintenanceProvides a secure, policy-driven read-only gateway that exposes multiple databases to AI tools via MCP, with governed select, search, and aggregate operations and no free-form SQL.Apache 2.0