Enterprise MCP Deployment: SSO, Compliance, and Scale
Deploying MCP at enterprise scale requires careful planning around security, compliance, and governance. This guide covers everything enterprises need to know about production MCP deployments.
Enterprise Requirements
Security
- Single Sign-On (SSO) - SAML 2.0, OAuth 2.0, OIDC
- Multi-Factor Authentication (MFA) - Required for all users
- Role-Based Access Control (RBAC) - Granular permissions
- Audit Logging - Complete audit trail
- Data Encryption - At rest and in transit
- Network Security - VPN, IP allowlisting, private networks
Compliance
- GDPR - Data privacy and protection
- HIPAA - Healthcare data compliance
- ISO 27001 - Information security management
- Data Residency - Geographic data storage requirements
Scale
- High Availability - 99.9%+ uptime SLA
- Auto-Scaling - Handle traffic spikes
- Load Balancing - Distribute requests efficiently
- Disaster Recovery - Backup and restore procedures
- Performance - Sub-200ms response times at scale
Architecture for Enterprise
Multi-Tenant Architecture
┌─────────────────────────────────────────┐
│ ToolBoost Enterprise │
├─────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │ Tenant A │ │ Tenant B │ │
│ │ (Acme) │ │ (Beta) │ │
│ ├──────────┤ ├──────────┤ │
│ │ Prod │ │ Prod │ │
│ │ Staging │ │ Staging │ │
│ │ Dev │ │ Dev │ │
│ └──────────┘ └──────────┘ │
│ │
│ ┌─────────────────────────────┐ │
│ │ Shared Infrastructure │ │
│ │ - Load Balancers │ │
│ │ - MCP Runtime │ │
│ │ - Monitoring │ │
│ │ - Logging │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────────┘
Network Architecture
Option 1: Public Cloud with VPN
Enterprise Network
│
│ VPN Tunnel (encrypted)
│
▼
ToolBoost VPC
│
├─── Application Load Balancer
│
├─── MCP Servers (Private Subnet)
│
└─── Databases (Private Subnet)
Option 2: Private Link / Private Endpoint
Enterprise VPC ←──→ Private Link ←──→ ToolBoost VPC
(AWS PrivateLink,
Azure Private Link,
GCP Private Service Connect)
Option 3: On-Premises (Self-Hosted)
Enterprise Data Center
│
├─── Kubernetes Cluster
│ └─── MCP Deployments
│
├─── Databases (Internal)
│
└─── Load Balancer (Internal)
Single Sign-On (SSO) Setup
SAML 2.0 Configuration
1. Configure Identity Provider (IdP)
Example with Okta:
<!-- SAML Metadata -->
<EntityDescriptor entityID="https://yourcompany.okta.com">
<IDPSSODescriptor>
<SingleSignOnService
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="https://yourcompany.okta.com/app/toolboost/sso/saml"/>
</IDPSSODescriptor>
</EntityDescriptor>
2. Configure Service Provider (ToolBoost)
ToolBoost Enterprise Settings:
SSO Type: SAML 2.0
IdP Metadata URL: https://yourcompany.okta.com/app/metadata
Entity ID: https://toolboost.dev/saml/metadata
ACS URL: https://toolboost.dev/saml/acs
3. Attribute Mapping
SAML Attribute → ToolBoost Attribute
─────────────────────────────────────
email → email
firstName → first_name
lastName → last_name
department → department
role → default_role
4. Test SSO Flow
1. User visits: https://toolboost.dev/login
2. Redirected to: https://yourcompany.okta.com/login
3. User authenticates with Okta
4. SAML assertion sent to ToolBoost
5. User logged into ToolBoost
OAuth 2.0 / OIDC
Example with Azure AD:
// ToolBoost Enterprise configuration
{
"sso": {
"provider": "azure_ad",
"client_id": "your-client-id",
"client_secret": "your-client-secret",
"tenant_id": "your-tenant-id",
"redirect_uri": "https://toolboost.dev/auth/callback"
}
}
Scopes:
openid profile email
User.Read
Directory.Read.All (optional, for group sync)
Role-Based Access Control (RBAC)
Enterprise Roles
// Role hierarchy
type Role =
| 'organization_admin' // Full control
| 'organization_member' // Can create projects
| 'project_admin' // Full control of project
| 'project_developer' // Can deploy MCPs
| 'project_viewer' // Read-only access
// Permission matrix
const permissions = {
organization_admin: [
'manage_users',
'manage_billing',
'create_projects',
'delete_projects',
'view_audit_logs',
'configure_sso'
],
organization_member: [
'create_projects',
'view_own_projects'
],
project_admin: [
'manage_project_members',
'deploy_mcps',
'configure_mcps',
'delete_mcps',
'view_analytics',
'manage_api_keys'
],
project_developer: [
'deploy_mcps',
'configure_mcps',
'view_analytics'
],
project_viewer: [
'view_analytics'
]
};
Group-Based Permissions
Sync from IdP:
Azure AD Groups → ToolBoost Roles
──────────────────────────────────
Engineering → project_developer
DevOps → project_admin
Management → project_viewer
IT Admins → organization_admin
Configuration:
{
"group_mappings": [
{
"idp_group": "engineering@company.com",
"toolboost_role": "project_developer",
"projects": ["production", "staging"]
},
{
"idp_group": "devops@company.com",
"toolboost_role": "project_admin",
"projects": "*"
}
]
}
Compliance and Governance
Security Controls:
- Access controls (MFA, SSO, RBAC)
- Encryption (AES-256 at rest, TLS 1.3 in transit)
- Network security (firewalls, VPN, DDoS protection)
- Vulnerability management
- Incident response
Availability Controls:
- 99.9% uptime SLA
- Redundant infrastructure
- Automated failover
- Disaster recovery
Confidentiality Controls:
- Data segregation (multi-tenant isolation)
- Secure key management
- Access logging
- Data deletion procedures
GDPR Compliance
Data Protection Features:
- Right to Access
# User can export all their data
toolboost export --user user@company.com
- Right to Deletion
# Delete all user data
toolboost delete-user --user user@company.com --confirm
- Data Portability
# Export in standard format
toolboost export --format json --user user@company.com
- Data Processing Agreement (DPA)
- Available for all Enterprise customers
- Covers data processing terms
- GDPR-compliant clauses
HIPAA Compliance
For healthcare organizations:
Business Associate Agreement (BAA):
- Available on Enterprise plan
- Covers PHI handling
- Compliance requirements
HIPAA Features:
- Encrypted data storage
- Audit logging (all PHI access)
- Access controls
- Automatic session timeout
- Breach notification procedures
Configuration:
{
"compliance": {
"mode": "hipaa",
"features": {
"automatic_logout": 15, // minutes
"password_requirements": "strict",
"phi_access_logging": true,
"encryption_at_rest": "aes-256-gcm"
}
}
}
Data Residency
Control where data is stored:
{
"data_residency": {
"region": "eu-west-1", // EU only
"allowed_regions": ["eu-west-1", "eu-central-1"],
"replication": "single-region" // No cross-region replication
}
}
Supported Regions:
- US East (Virginia)
- US West (Oregon)
- EU West (Ireland)
- EU Central (Frankfurt)
- Asia Pacific (Tokyo)
- Custom (on request)
Audit Logging
Comprehensive Audit Trail
All actions are logged:
interface AuditLog {
timestamp: string;
user: string;
action: string;
resource: string;
result: 'success' | 'failure';
metadata: {
ip_address: string;
user_agent: string;
session_id: string;
[key: string]: any;
};
}
Example logs:
[
{
"timestamp": "2025-06-12T10:30:00Z",
"user": "alice@company.com",
"action": "deploy_mcp",
"resource": "github-mcp",
"result": "success",
"metadata": {
"ip_address": "203.0.113.42",
"project": "production",
"mcp_version": "1.2.3"
}
},
{
"timestamp": "2025-06-12T10:31:00Z",
"user": "bob@company.com",
"action": "read_database",
"resource": "postgres-mcp",
"result": "success",
"metadata": {
"ip_address": "203.0.113.43",
"query": "SELECT * FROM users LIMIT 10",
"rows_returned": 10
}
},
{
"timestamp": "2025-06-12T10:32:00Z",
"user": "eve@external.com",
"action": "login",
"resource": "authentication",
"result": "failure",
"metadata": {
"ip_address": "198.51.100.42",
"reason": "unauthorized_domain"
}
}
]
Audit Log Access
Via Dashboard:
- Real-time view
- Filtering by user, action, date
- Export to CSV/JSON
Via API:
curl -H "Authorization: Bearer $TOKEN" \
https://api.toolboost.dev/v1/audit-logs?start_date=2025-06-01&end_date=2025-06-12
SIEM Integration:
- Splunk
- Datadog
- Elastic
- Custom webhooks
{
"siem_integration": {
"type": "splunk",
"endpoint": "https://hec.splunk.company.com:8088/services/collector",
"token": "your-hec-token",
"source": "toolboost",
"sourcetype": "json"
}
}
High Availability and Disaster Recovery
SLA Guarantees
ToolBoost Enterprise SLA:
- 99.9% uptime (43.8 minutes downtime/month)
- Sub-200ms p95 latency
- Zero data loss (RPO = 0)
- <4 hour recovery (RTO = 4 hours)
Multi-Region Deployment
Primary Region (US-East-1)
│
├─── Application Servers (Multi-AZ)
├─── Database (Primary)
└─── S3 (Cross-region replication)
│
▼
Secondary Region (US-West-2)
│
├─── Application Servers (Standby)
├─── Database (Read Replica → Auto-failover)
└─── S3 (Replicated)
Automated Failover
// Health check every 30 seconds
const healthCheck = setInterval(async () => {
try {
await axios.get('https://api.toolboost.dev/health', {
timeout: 5000
});
} catch (error) {
// Primary region down, initiate failover
await failoverToSecondaryRegion();
}
}, 30000);
async function failoverToSecondaryRegion() {
// 1. Promote read replica to primary
await promoteDatabase();
// 2. Update DNS to secondary region
await updateDNS('api.toolboost.dev', 'secondary-lb.us-west-2.aws.com');
// 3. Notify operations team
await sendAlert('Failover initiated to US-West-2');
// Total time: ~2 minutes
}
Backup Strategy
Automated Backups:
- Database: Continuous backup with point-in-time recovery
- Configuration: Daily snapshots
- Audit Logs: Retained for 1 year (configurable)
Backup Retention:
- Daily backups: 30 days
- Weekly backups: 90 days
- Monthly backups: 1 year
- Yearly backups: 7 years (compliance)
Scaling for Enterprise Load
Auto-Scaling Configuration
# Kubernetes HPA (Horizontal Pod Autoscaler)
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: mcp-server
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: mcp-server
minReplicas: 10
maxReplicas: 100
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 80
- type: Pods
pods:
metric:
name: requests_per_second
target:
type: AverageValue
averageValue: "1000"
Load Testing
Before production deployment:
# Using k6 for load testing
k6 run --vus 1000 --duration 30m load-test.js
// load-test.js
import http from 'k6/http';
import { check, sleep } from 'k6';
export const options = {
stages: [
{ duration: '5m', target: 100 }, // Ramp up
{ duration: '10m', target: 1000 }, // Peak load
{ duration: '5m', target: 0 }, // Ramp down
],
thresholds: {
http_req_duration: ['p(95)<200'], // 95% under 200ms
http_req_failed: ['rate<0.01'], // Error rate <1%
},
};
export default function () {
const response = http.post(
'https://toolboost.dev/server/github/github-mcp/mcp?api_key=test',
JSON.stringify({
method: 'tools/list',
params: {}
}),
{ headers: { 'Content-Type': 'application/json' } }
);
check(response, {
'status is 200': (r) => r.status === 200,
'response time OK': (r) => r.timings.duration < 200,
});
sleep(1);
}
Performance Optimization
1. Connection Pooling:
const pool = new Pool({
max: 100, // Maximum connections
min: 20, // Minimum connections
idleTimeoutMillis: 30000, // Close idle connections
connectionTimeoutMillis: 2000
});
2. Caching Strategy:
// Redis cluster for distributed caching
const redis = new Redis.Cluster([
{ host: 'redis-1.company.com', port: 6379 },
{ host: 'redis-2.company.com', port: 6379 },
{ host: 'redis-3.company.com', port: 6379 }
], {
redisOptions: {
password: process.env.REDIS_PASSWORD
}
});
// Cache with 5-minute TTL
await redis.setex('user:123', 300, JSON.stringify(user));
3. CDN for Static Assets:
CloudFront (AWS) / CloudFlare
│
├─── Edge Location (User Location)
│ └─── Cached MCP Responses (read-only data)
│
└─── Origin (ToolBoost)
Monitoring and Observability
Metrics Dashboard
Key Metrics:
- Request rate (requests/second)
- Response time (p50, p95, p99)
- Error rate (%)
- Saturation (CPU, memory, disk)
// Prometheus metrics
import { register, Counter, Histogram, Gauge } from 'prom-client';
const requestsTotal = new Counter({
name: 'mcp_requests_total',
help: 'Total MCP requests',
labelNames: ['method', 'status', 'project']
});
const requestDuration = new Histogram({
name: 'mcp_request_duration_seconds',
help: 'Request duration',
labelNames: ['method', 'project'],
buckets: [0.1, 0.5, 1, 2, 5]
});
const activeConnections = new Gauge({
name: 'mcp_active_connections',
help: 'Active connections'
});
Alerting
Grafana Alerts:
# Critical: High error rate
alert: HighErrorRate
expr: rate(mcp_requests_total{status="error"}[5m]) > 0.05
for: 5m
labels:
severity: critical
annotations:
summary: "Error rate above 5%"
# Warning: Slow responses
alert: SlowResponses
expr: histogram_quantile(0.95, mcp_request_duration_seconds) > 1
for: 10m
labels:
severity: warning
annotations:
summary: "p95 latency above 1 second"
PagerDuty Integration:
{
"alerting": {
"pagerduty": {
"integration_key": "your-key",
"escalation_policy": "engineering-oncall"
}
}
}
Security Hardening
Network Security
IP Allowlisting:
{
"network_security": {
"allowed_ips": [
"203.0.113.0/24", // Office network
"198.51.100.42/32" // VPN gateway
],
"blocked_countries": ["KP", "IR"] // Example
}
}
DDoS Protection:
- AWS Shield / CloudFlare
- Rate limiting (1000 req/min per API key)
- Challenge for suspicious traffic
Secret Management
AWS Secrets Manager Integration:
import { SecretsManager } from '@aws-sdk/client-secrets-manager';
const client = new SecretsManager({ region: 'us-east-1' });
async function getSecret(secretName: string) {
const response = await client.getSecretValue({
SecretId: secretName
});
return JSON.parse(response.SecretString);
}
// Use in MCP server
const dbCredentials = await getSecret('prod/database/credentials');
Vault Integration:
import Vault from 'node-vault';
const vault = Vault({
endpoint: 'https://vault.company.com',
token: process.env.VAULT_TOKEN
});
const { data } = await vault.read('secret/data/mcp/github');
const githubToken = data.data.token;
Zero Trust Architecture
User → Identity Verification → Device Trust → Network Access → Resource Access
(SSO + MFA) (Device cert) (VPN/ZT) (RBAC + Policies)
Cost Optimization
Usage Monitoring
// Track costs by project/team
interface UsageMetrics {
project: string;
requests: number;
compute_hours: number;
storage_gb: number;
estimated_cost: number;
}
// Monthly report
const usage = await getMonthlyUsage('2025-06');
console.log(`Total cost: $${usage.reduce((sum, u) => sum + u.estimated_cost, 0)}`);
Budget Alerts
{
"budget_alerts": [
{
"threshold": 10000, // $10,000
"period": "monthly",
"notify": ["finance@company.com", "cto@company.com"]
},
{
"threshold": 500,
"period": "daily",
"notify": ["devops@company.com"]
}
]
}
Resource Optimization
Right-sizing:
- Review usage patterns
- Scale down non-production environments
- Use spot instances for dev/test
- Implement auto-shutdown for idle resources
Migration from DIY to Enterprise
Phase 1: Assessment (Week 1-2)
- Inventory current MCP deployments
- Document dependencies
- Identify compliance requirements
- Plan migration timeline
Phase 2: Pilot (Week 3-4)
- Set up ToolBoost Enterprise account
- Configure SSO
- Migrate 1-2 non-critical MCPs
- Train pilot team
- Validate functionality
Phase 3: Migration (Week 5-8)
- Migrate production MCPs
- Update client configurations
- Run in parallel (old + new)
- Gradually shift traffic
Phase 4: Validation (Week 9-10)
- Verify all functionality
- Performance testing
- Security audit
- Team training
Phase 5: Decommission (Week 11-12)
- Shut down old infrastructure
- Update documentation
- Celebrate! 🎉
Support and SLAs
Enterprise Support
24/7/365 Support:
- Dedicated Slack channel
- Phone support
- Emergency hotline
- Assigned customer success manager
Response Times:
- Critical: 1 hour
- High: 4 hours
- Medium: 1 business day
- Low: 2 business days
Professional Services
- Architecture review
- Custom MCP development
- Migration assistance
- Training and workshops
- Performance optimization
Pricing
Enterprise Plan:
- Custom pricing based on:
- Number of users
- Request volume
- Data storage
- Support level
- Compliance requirements
Typical Enterprise Cost:
100 users
10M requests/month
High availability
24/7 support
= $2,000-5,000/month
Contact sales: enterprise@toolboost.dev
Conclusion
Enterprise MCP deployment requires careful planning, but ToolBoost makes it manageable with built-in security, compliance, and scalability features.
Key Takeaways:
- ✅ SSO/MFA for secure access
- ✅ RBAC for granular permissions
- ✅ Audit logging for compliance
- ✅ High availability with auto-scaling
- ✅ Enterprise support included
Ready for enterprise deployment?
Contact ToolBoost Enterprise for a demo and consultation.
Questions about enterprise deployments? Email enterprise@toolboost.dev