Skip to content

Production-grade security, observability, and governance for Model Context Protocol (MCP) servers. Make any MCP server enterprise-ready in minutes.

License

Notifications You must be signed in to change notification settings

cogniolab/enterprise-mcp-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏒 Enterprise MCP Framework

License: MIT Python 3.10+ MCP Compatible

Production-grade security, observability, and governance for Model Context Protocol (MCP) servers

Make any MCP server enterprise-ready in minutes with built-in authentication, RBAC, audit logging, compliance templates, cost management, and observability.


🎯 The Problem

MCP servers are powerful but lack enterprise features needed for production:

  • ❌ No authentication or authorization
  • ❌ No observability (metrics, tracing, logs)
  • ❌ No governance (approvals, audit logs)
  • ❌ No compliance support (SOX, HIPAA, GDPR)
  • ❌ No cost management or rate limiting

Enterprise MCP Framework solves all of this.


✨ Features

πŸ”’ Security

  • Authentication: OAuth, SAML, API Keys, LDAP
  • Authorization: Role-Based Access Control (RBAC)
  • Encryption: TLS in-transit + at-rest encryption
  • Secrets Management: HashiCorp Vault, AWS Secrets Manager, Azure Key Vault

πŸ“Š Observability

  • Metrics: Prometheus-compatible metrics
  • Tracing: OpenTelemetry distributed tracing
  • Logging: Structured JSON logging
  • Dashboards: Pre-built Grafana dashboards

βš–οΈ Governance

  • Approvals: Slack, Jira, Email workflows
  • Audit Logs: Comprehensive audit trails
  • Policies: Open Policy Agent (OPA) integration
  • Compliance: SOX, HIPAA, GDPR templates

πŸ’° Cost Management

  • Tracking: Token usage and API call tracking
  • Limits: Rate limiting and quotas per user/team
  • Budgets: Budget alerts and cost allocation
  • Reports: Chargeback and showback reports

πŸš€ Quick Start (5 Minutes)

Install

pip install enterprise-mcp-framework

Wrap Any MCP Server

Before (Basic PostgreSQL MCP):

from mcp_postgres import PostgresServer

server = PostgresServer(host="localhost", database="mydb")
server.start()

After (Enterprise Features):

from enterprise_mcp import EnterpriseProxy, SecurityConfig, ObservabilityConfig

proxy = EnterpriseProxy(
    target_server="postgresql-mcp",
    security=SecurityConfig(
        auth_provider="oauth",
        rbac_enabled=True
    ),
    observability=ObservabilityConfig(
        metrics=True,
        tracing=True
    )
)

proxy.start()  # βœ… Now with auth, metrics, audit logs, etc.

πŸ“– How It Works

Enterprise MCP Framework acts as a transparent proxy between LLM applications and MCP servers:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  LLM Application β”‚  (Claude, ChatGPT, etc.)
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ MCP Protocol
         ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Enterprise MCP Framework      β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  Security Layer          β”‚  β”‚  ← Auth, RBAC, Encryption
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚
β”‚  β”‚  Observability Layer     β”‚  β”‚  ← Metrics, Tracing, Logs
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚
β”‚  β”‚  Governance Layer        β”‚  β”‚  ← Approvals, Audit, Policies
β”‚  β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€  β”‚
β”‚  β”‚  Cost Management Layer   β”‚  β”‚  ← Tracking, Limits, Budgets
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ MCP Protocol
         ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Any MCP Server    β”‚  (PostgreSQL, AWS, Slack, etc.)
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Benefits:

  • βœ… Zero Code Changes: Wrap existing MCP servers
  • βœ… Policy-Based: Configure via YAML, no coding
  • βœ… Production-Ready: Battle-tested enterprise patterns
  • βœ… Observable: See everything that happens
  • βœ… Compliant: Meet regulatory requirements

πŸ—οΈ Architecture

Core Components

  1. Proxy Server: Intercepts MCP protocol requests/responses
  2. Middleware Chain: Security β†’ Observability β†’ Governance β†’ Cost
  3. Configuration Engine: YAML-based configuration
  4. Policy Engine: Open Policy Agent for authorization
  5. Metrics Exporter: Prometheus-compatible metrics
  6. Audit Logger: Structured audit trail storage

πŸ“š Use Cases

1. Secure Database Access

# PostgreSQL with SOX compliance
proxy = EnterpriseProxy(
    target_server="postgresql-mcp",
    governance=GovernanceConfig(
        compliance="sox",
        audit_retention_days=2555,  # 7 years
        approval_required_for=["DELETE", "DROP"]
    )
)

2. Multi-Tenant SaaS

# Isolate tenants with RBAC
proxy = EnterpriseProxy(
    target_server="slack-mcp",
    security=SecurityConfig(
        rbac_enabled=True,
        tenant_isolation=True
    ),
    cost_management=CostConfig(
        per_tenant_limits=True
    )
)

3. Cloud Operations with Approvals

# AWS operations require approval
proxy = EnterpriseProxy(
    target_server="aws-mcp",
    governance=GovernanceConfig(
        approvals=[{
            "operations": ["ec2.terminate", "s3.delete"],
            "approvers": ["slack:#ops-team"],
            "required": 2
        }]
    )
)

πŸ”§ Configuration

Security Configuration

# config/security.yaml
authentication:
  providers:
    - type: oauth
      provider: okta
      client_id: ${OKTA_CLIENT_ID}
    - type: api_key
      header: X-API-Key

authorization:
  rbac:
    enabled: true
    roles:
      - name: admin
        permissions: ["*"]
      - name: developer
        permissions: ["read", "execute"]
      - name: viewer
        permissions: ["read"]

encryption:
  tls:
    enabled: true
    cert: /etc/certs/server.crt
  at_rest:
    provider: aws_kms
    key_id: ${KMS_KEY_ID}

Observability Configuration

# config/observability.yaml
metrics:
  enabled: true
  port: 9090
  path: /metrics

tracing:
  enabled: true
  provider: opentelemetry
  endpoint: http://jaeger:14268/api/traces

logging:
  level: info
  format: json
  output: stdout

Governance Configuration

# config/governance.yaml
approvals:
  - name: high_risk_operations
    conditions:
      operations: ["database.delete", "aws.ec2.terminate"]
    approvers:
      - slack: "#dba-approvals"
      - email: "[email protected]"
    timeout: 3600  # 1 hour
    required_approvals: 2

audit:
  enabled: true
  storage: postgresql
  retention_days: 2555  # 7 years for SOX

compliance:
  templates:
    - sox
    - hipaa

πŸ“Š Observability

Metrics Exposed

# Request metrics
mcp_requests_total{server,operation,status}
mcp_request_duration_seconds{server,operation}
mcp_errors_total{server,operation,error_type}

# Cost metrics
mcp_token_usage_total{server,user,operation}
mcp_cost_usd{server,user}

# Governance metrics
mcp_approvals_pending{operation}
mcp_approvals_approved{operation}
mcp_approvals_rejected{operation}

Grafana Dashboards

Pre-built dashboards included:

  • Overview: Request rates, error rates, latency
  • Security: Auth attempts, RBAC decisions, encryption status
  • Cost: Token usage, cost per user, budget alerts
  • Governance: Approval workflows, audit trail, policy violations

OpenTelemetry Integration

Export telemetry to enterprise observability platforms:

Jaeger (Open Source):

from agent_monitor.exporters import OpenTelemetryExporter, create_jaeger_config

config = create_jaeger_config(service_name="mcp-server")
exporter = OpenTelemetryExporter(config)
exporter.start()

Datadog (Commercial):

from agent_monitor.exporters import create_datadog_config

config = create_datadog_config(
    service_name="mcp-server",
    api_key=os.getenv("DD_API_KEY")
)
exporter = OpenTelemetryExporter(config)
exporter.start()

New Relic (Commercial):

from agent_monitor.exporters import create_newrelic_config

config = create_newrelic_config(
    service_name="mcp-server",
    api_key=os.getenv("NEW_RELIC_API_KEY")
)
exporter = OpenTelemetryExporter(config)
exporter.start()

Supported Platforms:

  • βœ… Jaeger (open-source distributed tracing)
  • βœ… Datadog (full-stack APM)
  • βœ… New Relic (full-stack observability)
  • βœ… Grafana Cloud
  • βœ… Prometheus
  • βœ… AWS X-Ray
  • βœ… Google Cloud Trace

View Integration Examples β†’


🚒 Deployment

Docker

docker run -d \
  -p 8080:8080 \
  -p 9090:9090 \
  -v $(pwd)/config:/config \
  cogniolab/enterprise-mcp-framework

Kubernetes

helm repo add enterprise-mcp https://charts.cogniolab.com
helm install my-mcp enterprise-mcp/framework \
  --set security.auth.provider=oauth \
  --set observability.metrics.enabled=true

Docker Compose

version: '3.8'
services:
  mcp-proxy:
    image: cogniolab/enterprise-mcp-framework
    ports:
      - "8080:8080"
      - "9090:9090"
    volumes:
      - ./config:/config
    environment:
      - AUTH_PROVIDER=oauth
      - METRICS_ENABLED=true

πŸ… Compliance

SOX Compliance

  • βœ… 7-year audit retention
  • βœ… Change approvals required
  • βœ… Segregation of duties
  • βœ… Access controls and logging

HIPAA Compliance

  • βœ… PHI encryption at rest and in transit
  • βœ… Access logs and audit trails
  • βœ… Role-based access control
  • βœ… Data retention policies

GDPR Compliance

  • βœ… Data access logging
  • βœ… Right to erasure support
  • βœ… Consent management
  • βœ… Data portability

πŸ“ˆ Performance

Overhead: < 5ms latency added by framework Throughput: 10,000+ requests/second per instance Scalability: Horizontal scaling with load balancers Availability: 99.99% uptime with HA setup


πŸ’¬ Community

Join our community to ask questions, share ideas, and connect with other developers building enterprise MCP systems!

We're building a supportive community where developers help each other make MCP production-ready for enterprises. Whether you're just getting started or scaling to production, your questions and contributions are welcome!


🀝 Enterprise Support

For production deployments and enterprise requirements:

  • πŸ“§ Email: [email protected]
  • πŸ“ Consulting: Custom integrations and training
  • πŸ’Ό SLA: Priority support with guaranteed response times

πŸ“š Documentation


🌟 Examples

Explore examples/ for:

  • GitHub MCP: Repository management with RBAC and approvals
  • Jira MCP: Ticket management with SOX compliance
  • Notion MCP: Knowledge management with GDPR compliance
  • OpenTelemetry Integration: Export to Jaeger, Datadog, New Relic
  • Multi-Tenant: SaaS deployment patterns

View All Examples β†’


πŸ”— Related Projects


πŸ“œ License

MIT License - see LICENSE


πŸ™ Acknowledgments

Built by Cognio AI Lab to make MCP production-ready for enterprises.

Special thanks to:

  • Anthropic for creating MCP
  • The open-source community
  • Early adopters and contributors

Ready to make your MCP servers enterprise-ready? Get Started β†’

About

Production-grade security, observability, and governance for Model Context Protocol (MCP) servers. Make any MCP server enterprise-ready in minutes.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages