Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .cicd/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,20 @@ function check_creates_template() {
check_string_existence "--set grpcService.enabled=true" "containerPort: 50051"
check_string_existence "--set grpcService.enabled=true --set grpcService.name=weaviate-grpc-service-custom-name" "name: weaviate-grpc-service-custom-name"
check_string_existence "--set grpcService.name=weaviate-grpc-defult-service-custom-name" "name: weaviate-grpc-defult-service-custom-name"
check_string_existence "--set mcp.enabled=true" "name: MCP_SERVER_ENABLED"
check_setting_has_value "--set mcp.enabled=true" "name: MCP_SERVER_ENABLED" "value: \"true\""
check_setting_has_value "--set mcp.enabled=true" "name: MCP_SERVER_WRITE_ACCESS_ENABLED" "value: \"false\""
check_setting_has_value "--set mcp.enabled=true --set mcp.writeAccessEnabled=true" "name: MCP_SERVER_WRITE_ACCESS_ENABLED" "value: \"true\""
# MCP config tests
check_setting_has_value "--set mcp.enabled=true --set mcp.config.tools.test-tool.description=test-description" "name: MCP_SERVER_CONFIG_PATH" "value: \"/mcp-config/mcp-config.yaml\""
check_string_existence "--set mcp.enabled=true --set mcp.config.tools.test-tool.description=test-description" "name: weaviate-mcp-config"
check_string_existence "--set mcp.enabled=true --set mcp.config.tools.test-tool.description=test-description" "mcp-config.yaml"
check_string_existence "--set mcp.enabled=true --set mcp.config.tools.test-tool.description=test-description" "test-description"
check_no_setting "--set mcp.enabled=true" "name: MCP_SERVER_CONFIG_PATH"
check_no_setting "--set mcp.enabled=true" "weaviate-mcp-config"
check_no_setting "" "name: MCP_SERVER_ENABLED"
check_no_setting "--set mcp.enabled=false" "name: MCP_SERVER_ENABLED"
check_modules "--set mcp.enabled=true --set modules.text2vec-contextionary.enabled=false --set modules.text2vec-transformers.enabled=true" "value: text2vec-transformers"
check_string_existence "--set modules.text2vec-aws.enabled=true --set modules.text2vec-aws.secrets.AWS_ACCESS_KEY_ID=key --set modules.text2vec-aws.secrets.AWS_SECRET_ACCESS_KEY=secret" "name: AWS_ACCESS_KEY_ID"
check_string_existence "--set modules.text2vec-aws.enabled=true --set modules.text2vec-aws.secrets.AWS_ACCESS_KEY_ID=key --set modules.text2vec-aws.secrets.AWS_SECRET_ACCESS_KEY=secret" "name: AWS_SECRET_ACCESS_KEY"
check_string_existence "--set modules.multi2vec-aws.enabled=true --set modules.multi2vec-aws.secrets.AWS_ACCESS_KEY_ID=key --set modules.multi2vec-aws.secrets.AWS_SECRET_ACCESS_KEY=secret" "name: AWS_ACCESS_KEY_ID"
Expand Down
12 changes: 12 additions & 0 deletions weaviate/templates/weaviateMCPConfig.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{{- if and .Values.mcp.enabled .Values.mcp.config }}
apiVersion: v1
kind: ConfigMap
metadata:
name: weaviate-mcp-config
labels:
app.kubernetes.io/name: weaviate
app.kubernetes.io/managed-by: {{ .Release.Service }}
data:
mcp-config.yaml: |-
{{ .Values.mcp.config | toYaml | nindent 4 }}
{{- end }}
19 changes: 19 additions & 0 deletions weaviate/templates/weaviateStatefulset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -485,6 +485,16 @@ spec:
{{- end }}
{{- end }}
{{- end }}
{{- if .Values.mcp.enabled }}
- name: MCP_SERVER_ENABLED
value: "true"
- name: MCP_SERVER_WRITE_ACCESS_ENABLED
value: {{ .Values.mcp.writeAccessEnabled | default false | quote }}
{{- if .Values.mcp.config }}
- name: MCP_SERVER_CONFIG_PATH
value: "/mcp-config/mcp-config.yaml"
{{- end }}
{{- end }}
- name: CLUSTER_JOIN
value: {{ .Values.service.name }}-headless.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}
ports:
Expand All @@ -508,6 +518,10 @@ spec:
- name: weaviate-runtime-overrides
mountPath: /config
{{- end }}
{{- if and .Values.mcp.enabled .Values.mcp.config }}
- name: weaviate-mcp-config
mountPath: /mcp-config
Comment thread
jfrancoa marked this conversation as resolved.
{{- end }}
{{- if index .Values "backups" "gcs" "enabled" }}
{{- if or (index .Values "backups" "gcs" "secrets") (index .Values "backups" "gcs" "envSecrets") }}
{{- if or (index .Values "backups" "gcs" "secrets" "GOOGLE_APPLICATION_CREDENTIALS") (index .Values "backups" "gcs" "envSecrets" "GOOGLE_APPLICATION_CREDENTIALS") }}
Expand Down Expand Up @@ -560,6 +574,11 @@ spec:
configMap:
name: weaviate-runtime-overrides
{{- end }}
{{- if and .Values.mcp.enabled .Values.mcp.config }}
- name: weaviate-mcp-config
configMap:
name: weaviate-mcp-config
{{- end }}
- name: weaviate-config
configMap:
{{ if .Values.custom_config_map.enabled }}name: {{ .Values.custom_config_map.name }} {{ else }}name: weaviate-config{{ end }}
Expand Down
23 changes: 23 additions & 0 deletions weaviate/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,29 @@ grpcService:
clusterIP:
annotations: {}

# MCP (Model Context Protocol) allows LLM clients to interact with Weaviate.
# MCP is served on the main REST port at /v1/mcp, no separate port is needed.
# This is by default disabled. Set enabled to true to enable the MCP server.
Comment thread
jfrancoa marked this conversation as resolved.
mcp:
enabled: false
# Write access allows MCP clients to create/update objects.
# Disabled by default for safety.
writeAccessEnabled: false
# Custom MCP server configuration for tool descriptions.
# When set, a ConfigMap is created and mounted automatically.
# Example:
# config:
# tools:
# weaviate-collections-get-config:
# description: "Retrieves the schema configuration for one or all collections in the Weaviate database."
# weaviate-tenants-list:
# description: "Lists all tenants for a specific multi-tenant collection."
# weaviate-query-hybrid:
# description: "Performs a hybrid search combining vector similarity and keyword matching (BM25) on a collection."
# weaviate-objects-upsert:
# description: "Upserts (inserts or updates) one or more objects into a collection in batch."
config:

# The service monitor defines prometheus monitoring for a set of services
# https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#monitoring.coreos.com/v1.ServiceMonitor
# Make sure to set the following prometheus values if deploying observability with the kube-prometheus-stack helm chart:
Expand Down
Loading