We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cheesejaguar/aerospace-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
apiVersion: apps/v1
kind: Deployment
metadata:
name: aerospace-mcp
namespace: default
labels:
app: aerospace-mcp
version: "0.1.0"
component: api
spec:
replicas: 2
selector:
matchLabels:
app: aerospace-mcp
template:
metadata:
labels:
app: aerospace-mcp
version: "0.1.0"
component: api
annotations:
prometheus.io/scrape: "false" # Enable if you add metrics
prometheus.io/port: "8080"
prometheus.io/path: "/metrics"
spec:
# Security context for the pod
securityContext:
runAsNonRoot: true
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
seccompProfile:
type: RuntimeDefault
containers:
- name: aerospace-mcp
image: aerospace-mcp:latest
imagePullPolicy: IfNotPresent
# Container security context
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
capabilities:
drop:
- ALL
ports:
- name: http
containerPort: 8080
protocol: TCP
# Environment variables from ConfigMap and direct values
env:
- name: AEROSPACE_MCP_HOST
value: "0.0.0.0"
- name: AEROSPACE_MCP_PORT
value: "8080"
- name: AEROSPACE_MCP_MODE
valueFrom:
configMapKeyRef:
name: aerospace-mcp-config
key: mode
- name: AEROSPACE_MCP_LOG_LEVEL
valueFrom:
configMapKeyRef:
name: aerospace-mcp-config
key: log_level
# Resource limits and requests
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
# Health checks
livenessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
successThreshold: 1
readinessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 3
successThreshold: 1
# Volume mounts for writable directories
volumeMounts:
- name: tmp-volume
mountPath: /tmp
- name: var-tmp-volume
mountPath: /var/tmp
- name: logs-volume
mountPath: /app/logs
# Volumes for tmpfs and logs
volumes:
- name: tmp-volume
emptyDir:
medium: Memory
sizeLimit: 32Mi
- name: var-tmp-volume
emptyDir:
medium: Memory
sizeLimit: 32Mi
- name: logs-volume
emptyDir:
sizeLimit: 100Mi
# Pod disruption and scheduling
terminationGracePeriodSeconds: 30
restartPolicy: Always
# Node selection (optional - for home lab use)
# nodeSelector:
# kubernetes.io/arch: amd64
# Tolerations for specific nodes (optional)
# tolerations:
# - key: "node-role.kubernetes.io/master"
# operator: "Equal"
# effect: "NoSchedule"
# Affinity rules for better distribution
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- aerospace-mcp
topologyKey: kubernetes.io/hostname
---
# HorizontalPodAutoscaler for automatic scaling
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: aerospace-mcp-hpa
namespace: default
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: aerospace-mcp
minReplicas: 1
maxReplicas: 5
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 80
behavior:
scaleDown:
stabilizationWindowSeconds: 300
policies:
- type: Percent
value: 10
periodSeconds: 60
scaleUp:
stabilizationWindowSeconds: 60
policies:
- type: Percent
value: 50
periodSeconds: 60