Security Architecture

Security by design, not by afterthought.

MCPLinkLayer protects every tool call, every credential, and every data flow — with a semantic firewall, envelope encryption, tenant isolation, and full audit trails.

Hosted in Germany. GDPR/DSGVO compliant. Every feature described here is implemented in production.

MCP Firewall

Semantic execution control for every tool call

Every tool call, resource read, and prompt get passes through a pipeline of 7 stateless security scanners — on both the request and response side. The firewall operates in enforce, shadow, or disabled mode per deployment.

Secret Detection

Detects API keys, tokens, private keys, and connection strings before they reach tools or leave the platform.

PII Detection

Identifies personal data like SSNs, credit card numbers, IBANs, and email addresses in tool arguments and results.

Prompt Injection

Catches system override attempts, role impersonation, delimiter injection, and response poisoning.

Destructive Commands

Blocks dangerous shell commands (rm -rf, DROP TABLE), SQL injection, reverse shells, and force pushes.

Suspicious URLs

Detects exfiltration endpoints (webhook.site, ngrok), credentials in URLs, and internal network access attempts.

Data Exfiltration

Catches bulk data extraction patterns, SELECT *, pagination bypass, and oversized response payloads.

Tool Abuse

Detects privilege escalation (sudo), path traversal, command chaining, and subcommand injection.

What happens when a finding is detected

Block

Request rejected immediately. Container never called. Full audit entry.

Redact

Sensitive content replaced with safe placeholders. Execution continues with cleaned data.

Require Approval

Execution paused. Admin must approve or deny within 5 minutes.

Log Only

Finding recorded in audit trail. Execution continues unchanged.

Transport coverage

The firewall scans across all MCP transports, not just REST.

Universal Gateway
ReqResp
Aggregated scanning per tool call
Streamable HTTP (POST)
ReqResp
Modern MCP spec (2025-11-25)
Streamable HTTP (GET)
ReqResp
Server-initiated streams, buffered scanning
SSE Transport (Legacy)
ReqResp
Buffered event assembly
JSON-RPC / REST API
ReqResp
Inline scanning
Credential Vault

Envelope encryption with per-tenant key isolation

Every credential is encrypted with a unique per-tenant Data Encryption Key (DEK). The DEK itself is encrypted with a Key Encryption Key (KEK) managed by your choice of KMS provider.

Fernet Encryption

AES-128-CBC + HMAC-SHA256 authenticated encryption. Plaintext is never stored in the database.

Per-Tenant DEKs

Each tenant gets a unique random encryption key. Compromise of one tenant's data does not expose others.

KMS Provider Support

KEK managed via Local Fernet (default), AWS KMS, or HashiCorp Vault Transit. Pluggable at deployment.

Key Rotation

Rotate tenant DEKs without downtime. All credentials re-encrypted atomically with version tracking.

AI Never Sees Keys

Credentials are decrypted only at container start time and injected as environment variables. The LLM never receives plaintext.

Log Sanitization

A global log sanitizer filters all logs for secret patterns (API keys, tokens, passwords) before they reach disk.

Tenant Isolation & Governance

Database-level isolation with defense in depth

Multi-tenancy is enforced at the PostgreSQL level via Row-Level Security (RLS). Even if the application layer has a bug, the database prevents cross-tenant data access.

Row-Level Security

PostgreSQL RLS policies enforce tenant_id = current_tenant_id() on every query. Fail-closed: if tenant context is missing, all queries return zero rows.

Agent Identities

Four principal types (Human, Agent, Service, Workflow). API keys stored as SHA-256 hashes only — plaintext shown once at creation.

Gateway Profiles

Fine-grained access control with allow/deny/rate-limit rules. Pattern matching on server names, tool names, and capability types.

OAuth Scope Governance

Unknown OAuth scopes require admin approval. Predefined scope packs classify risk levels (low/medium/high/critical).

Connection Authorization

Deny-by-default: servers must have explicit connection grants to use OAuth credentials. Grants are individually revocable.

Container Hardening

MCP server containers run as non-root (UID 1000), with read-only filesystem, no privilege escalation, and all Linux capabilities dropped.

Audit Trail

Every action logged with full context

Over 50 distinct audit actions are tracked across the platform. Every tool call, login, credential access, configuration change, and governance decision is logged with tenant isolation.

MCP Activity

11 actions

Tool calls, resource reads, server start/stop, bridge requests

Security Events

19 actions

Login, OAuth flows, token revocation, device registration

Account & GDPR

7 actions

Registration, data export (Art. 20), account deletion (Art. 17)

Firewall Decisions

5 actions

Block, redact, require approval, log only, confirmation resolved

Each audit entry includes: user ID, tenant ID, action, resource type, resource ID, result, IP address, timestamp, and event metadata (JSON).
Infrastructure & Compliance

Hosted in Germany. GDPR built in.

German Data Centers

All servers and data exclusively in German data centers. Your data never leaves the EU.

GDPR Data Export

Full data portability endpoint (Art. 20). Users can export all their data as structured JSON at any time.

Right to Erasure

Complete account deletion (Art. 17) with container cleanup. Audit logs retained per legal obligation exception (Art. 17(3)(e)).

TLS Everywhere

Let's Encrypt certificates with auto-renewal. All HTTP traffic redirected to HTTPS. HSTS enabled with 1-year max-age.

Security Headers

X-Frame-Options: DENY, X-Content-Type-Options: nosniff, Referrer-Policy, Permissions-Policy for camera/mic/payment disabled.

Network Isolation

Docker network separation: internal network (database, backend, containers) and web network (reverse proxy, frontend). No direct public access to backend services.

What MCPLinkLayer secures vs. DIY MCP

Concern
DIY MCP Setup
MCPLinkLayer
Tool call security
No scanning — AI can execute anything
7 scanners on every request + response
Credential storage
.env files, plaintext, no encryption
Envelope encryption, per-tenant DEKs, KMS support
Tenant isolation
None — single user, single config
PostgreSQL RLS + application-layer filtering
Audit trail
None — no logging of tool calls
50+ audit actions, tenant-scoped, compliance-ready
Access control
None — full access to all tools
Gateway profiles, principal identities, scope governance
Container security
Root containers, full capabilities
Non-root, read-only FS, all capabilities dropped
Data residency
Wherever you deploy
German data centers, GDPR/DSGVO built in

Questions about our security architecture?

We publish our DPA (Art. 28 GDPR), privacy policy, and legal notice. For security-specific inquiries, contact us directly.