Kubernetes

Deploy the vCon MCP Server to Kubernetes.

Quick Start

Create Secrets

kubectl create secret generic vcon-mcp-secrets \
  --from-literal=SUPABASE_URL=https://your-project.supabase.co \
  --from-literal=SUPABASE_SERVICE_ROLE_KEY=your-service-role-key \
  --from-literal=SUPABASE_ANON_KEY=your-anon-key \
  --from-literal=OPENAI_API_KEY=your-openai-key

Deploy

# vcon-mcp.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: vcon-mcp
spec:
  replicas: 2
  selector:
    matchLabels:
      app: vcon-mcp
  template:
    metadata:
      labels:
        app: vcon-mcp
    spec:
      containers:
      - name: vcon-mcp
        image: public.ecr.aws/r4g1k2s3/vcon-dev/vcon-mcp:main
        ports:
        - containerPort: 3000
        env:
        - name: MCP_HTTP_STATELESS
          value: "true"
        - name: MCP_TOOLS_PROFILE
          value: "full"
        envFrom:
        - secretRef:
            name: vcon-mcp-secrets
        resources:
          requests:
            memory: "256Mi"
            cpu: "100m"
          limits:
            memory: "512Mi"
            cpu: "500m"
        livenessProbe:
          httpGet:
            path: /api/v1/health
            port: 3000
          initialDelaySeconds: 10
          periodSeconds: 30
        readinessProbe:
          httpGet:
            path: /api/v1/health
            port: 3000
          initialDelaySeconds: 5
          periodSeconds: 10
---
apiVersion: v1
kind: Service
metadata:
  name: vcon-mcp
spec:
  selector:
    app: vcon-mcp
  ports:
  - port: 80
    targetPort: 3000

Environment Variables

Key configuration for Kubernetes deployments:

Variable
Required
Description

SUPABASE_URL

Yes

Supabase project URL

SUPABASE_SERVICE_ROLE_KEY

Yes*

Service role key (bypasses RLS)

SUPABASE_ANON_KEY

Yes*

Anonymous key (uses RLS)

MCP_HTTP_STATELESS

Recommended

Set true for multi-replica deployments

MCP_TOOLS_PROFILE

No

full, readonly, user, admin, minimal

MCP_DISABLED_TOOLS

No

Comma-separated list of tools to disable

OPENAI_API_KEY

No

For embedding generation

*At least one Supabase key required

Running Scripts as Jobs

One-time Job

Scheduled Embeddings Sync

Resource Recommendations

Workload
Replicas
CPU Request
Memory Request

Development

1

100m

256Mi

Production (small)

2

250m

512Mi

Production (large)

3+

500m

1Gi

Troubleshooting

Next Steps

Last updated