We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vfarcic/dot-ai'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
{{- if eq .Values.deployment.method "standard" }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "dot-ai.fullname" . }}
labels:
{{- include "dot-ai.labels" . | nindent 4 }}
spec:
replicas: 1
selector:
matchLabels:
{{- include "dot-ai.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "dot-ai.selectorLabels" . | nindent 8 }}
spec:
serviceAccountName: {{ include "dot-ai.serviceAccountName" . }}
containers:
- name: mcp-server
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy | default "IfNotPresent" }}
ports:
- containerPort: 3456
name: http
protocol: TCP
env:
- name: TRANSPORT_TYPE
value: "http"
- name: PORT
value: "3456"
- name: HOST
value: "0.0.0.0"
- name: SESSION_MODE
value: "stateless"
# AI Provider configuration
- name: AI_PROVIDER
value: {{ .Values.ai.provider | default "anthropic" | quote }}
{{- if .Values.ai.model }}
- name: AI_MODEL
value: {{ .Values.ai.model | quote }}
{{- end }}
{{- if .Values.ai.customEndpoint.enabled }}
- name: CUSTOM_LLM_BASE_URL
value: {{ .Values.ai.customEndpoint.baseURL | quote }}
- name: CUSTOM_EMBEDDINGS_BASE_URL
value: {{ .Values.ai.customEndpoint.embeddingsBaseURL | default .Values.ai.customEndpoint.baseURL | quote }}
{{- if .Values.ai.customEndpoint.embeddingsModel }}
- name: EMBEDDINGS_MODEL
value: {{ .Values.ai.customEndpoint.embeddingsModel | quote }}
{{- end }}
{{- if .Values.ai.customEndpoint.embeddingsDimensions }}
- name: EMBEDDINGS_DIMENSIONS
value: {{ .Values.ai.customEndpoint.embeddingsDimensions | quote }}
{{- end }}
{{- end }}
# AI Provider API Keys
- name: ANTHROPIC_API_KEY
valueFrom:
secretKeyRef:
name: {{ .Values.secrets.name }}
key: {{ .Values.secrets.anthropic.keyName }}
optional: true
- name: OPENAI_API_KEY
valueFrom:
secretKeyRef:
name: {{ .Values.secrets.name }}
key: {{ .Values.secrets.openai.keyName }}
optional: true
- name: GOOGLE_API_KEY
valueFrom:
secretKeyRef:
name: {{ .Values.secrets.name }}
key: {{ .Values.secrets.google.keyName }}
optional: true
- name: XAI_API_KEY
valueFrom:
secretKeyRef:
name: {{ .Values.secrets.name }}
key: {{ .Values.secrets.xai.keyName }}
optional: true
- name: MOONSHOT_API_KEY
valueFrom:
secretKeyRef:
name: {{ .Values.secrets.name }}
key: {{ .Values.secrets.moonshot.keyName }}
optional: true
- name: CUSTOM_LLM_API_KEY
valueFrom:
secretKeyRef:
name: {{ .Values.secrets.name }}
key: {{ .Values.secrets.customLlm.keyName | default "custom-llm-api-key" }}
optional: true
- name: CUSTOM_EMBEDDINGS_API_KEY
valueFrom:
secretKeyRef:
name: {{ .Values.secrets.name }}
key: {{ .Values.secrets.customEmbeddings.keyName | default "custom-embeddings-api-key" }}
optional: true
- name: QDRANT_URL
value: {{ if .Values.qdrant.enabled }}"http://{{ .Release.Name }}-qdrant.{{ .Release.Namespace }}.svc.cluster.local:6333"{{ else }}{{ .Values.qdrant.external.url | quote }}{{ end }}
# Bearer token authentication (optional)
- name: DOT_AI_AUTH_TOKEN
valueFrom:
secretKeyRef:
name: {{ .Values.secrets.name }}
key: {{ .Values.secrets.auth.keyName }}
optional: true
# Note: KUBERNETES_SERVICE_HOST is automatically set by k8s and triggers in-cluster config
{{- with .Values.extraEnv }}
# Additional environment variables
{{- toYaml . | nindent 8 }}
{{- end }}
resources:
{{- toYaml .Values.resources | nindent 10 }}
# Health checks will be added once /health endpoint is implemented
# livenessProbe:
# httpGet:
# path: /health
# port: 3456
# initialDelaySeconds: 30
# periodSeconds: 10
# readinessProbe:
# httpGet:
# path: /ready
# port: 3456
# initialDelaySeconds: 15
# periodSeconds: 5
terminationGracePeriodSeconds: 30
{{- end }}