Skip to main content
Glama
aakarsh1227

MCP Enterprise Gateway

by aakarsh1227

MCP Enterprise Gateway

A production-grade MCP (Model Context Protocol) proxy server with enterprise security features including JWT authentication, SQL AST guardrails, Kafka audit logging, and rate limiting.

Architecture

┌─────────────────┐     ┌──────────────────────────────────────────────────────┐
│  Cursor IDE /   │────▶│              MCP Enterprise Gateway                 │
│  Claude Desktop │     │  ┌─────────────┐  ┌─────────────┐  ┌──────────┐  │
│  n8n Workflow   │     │  │ JWT Auth    │  │ Rate Limit   │  │ SQL AST   │  │
└─────────────────┘     │  │ Middleware  │─▶│ (Redis)      │─▶│ Guardrails│  │
                        │  └─────────────┘  └─────────────┘  └──────────┘  │
                        │         │                                   │       │
                        │         ▼                                   ▼       │
                        │  ┌─────────────┐                    ┌──────────┐  │
                        │  │ PostgreSQL  │◀────────────────────│ Kafka    │  │
                        │  │ (Telemetry) │                     │ (Audit)  │  │
                        │  └─────────────┘                    └──────────┘  │
                        └──────────────────────────────────────────────────────┘

Related MCP server: mcp-guardian

Features

Phase 1: Security & Identity

  • JWT Verification - All requests require valid Bearer token

  • Role-Based Access Control - 5 roles: admin, senior_analyst, junior_analyst, hr_admin, readonly

  • Redis Rate Limiting - Sliding window rate limits (100 req/min per user)

Phase 2: SQL AST Guardrails

  • Blocks destructive operations: DROP, DELETE, TRUNCATE, ALTER

  • Enforces table-level access policies

  • Column-level PII redaction

  • Automatic LIMIT injection for SELECT queries

Phase 3: Observability

  • /healthz - Basic liveness check

  • /readyz - Full dependency check (PostgreSQL + Kafka)

  • Kafka audit events for all query attempts

Quick Start

# Start all services
docker-compose up --build -d

# Verify health
curl http://localhost:3000/healthz
curl http://localhost:3000/readyz

# Get SSE connection (requires JWT)
curl -N http://localhost:3000/sse \
  -H "Authorization: Bearer <YOUR_JWT_TOKEN>"

# Send tool call
curl -X POST "http://localhost:3000/message?sessionId=<SESSION_ID>" \
  -H "Authorization: Bearer <YOUR_JWT_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "query_enterprise_db",
      "arguments": {
        "sql": "SELECT * FROM users LIMIT 10;",
        "userRole": "admin"
      }
    }
  }'

Environment Variables

Variable

Default

Description

PORT

3000

HTTP server port

DATABASE_URL

postgres://...

PostgreSQL connection string

KAFKA_BROKER

kafka:29092

Kafka broker address

JWT_SECRET

(required)

JWT signing secret

REDIS_URL

redis://localhost:6379

Redis for rate limiting

Table Access Policies

Table

Allowed Roles

Blocked Columns

salary_records

admin, hr_admin

ssn, credit_card_no, bank_account_no

user_passwords

admin

password_hash, salt

pii_data

admin, hr_admin

credit_card_no, tax_id, passport_no

audit_logs

all

-

users

all

password

Client Integrations

Cursor IDE

# Copy config
cp integrations/.cursor/mcp.json ~/.cursor/mcp.json

Claude Desktop

Edit ~/.claude_desktop_config.json:

{
  "mcpServers": {
    "enterprise-gateway": {
      "transport": "sse",
      "url": "http://localhost:3000/sse"
    }
  }
}

n8n Workflow

Import integrations/n8n/mcp-trigger.json and set MCP_GATEWAY_TOKEN environment variable.

Generate JWT Token

const jwt = require('jsonwebtoken');
const token = jwt.sign(
  { sub: 'user_123', role: 'admin', email: 'admin@corp.com' },
  'super_secret_enterprise_key_2026',
  { expiresIn: '24h' }
);
console.log(token);

Development

# Local development
npm install
npm run dev

# Run tests
npm test

# Type check
npx tsc --noEmit

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An enterprise infrastructure layer for the Model Context Protocol that provides authentication, RBAC, audit logging, and rate limiting for tool calls. It acts as a secure proxy between AI agents and MCP servers to ensure security and compliance in production environments.
    11 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Security, cost, and health governance proxy for MCP infrastructure. Enforces YAML-configurable security policies (blocklists, rate limits, token budgets), tracks real token costs via tiktoken, monitors server health with live JSON-RPC probes. Features OAuth 2.1/OIDC with RBAC, web dashboard, payload normalization, semantic shell AST analysis, mTLS, and a formal STRIDE threat model.
    4
    200 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for AI agent security guardrails. Provides input validation, prompt injection detection, PII redaction, output filtering, policy enforcement, rate limiting, and comprehensive audit logging.
    42 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A production-ready MCP OAuth 2.1 server implementation with analytics and security monitoring, enabling secure authentication for MCP clients like Claude Desktop and Cursor.
    4
    -