Skip to content

Add MCP server configuration to Helm chart#321

Merged
jfrancoa merged 10 commits intomainfrom
mcp
Apr 13, 2026
Merged

Add MCP server configuration to Helm chart#321
jfrancoa merged 10 commits intomainfrom
mcp

Conversation

@g-despot
Copy link
Copy Markdown
Contributor

@g-despot g-despot commented Feb 9, 2026

Changes

  • Add a new mcp section to values.yaml that controls MCP (Model Context Protocol) server configuration, disabled by default
  • MCP is served on the main REST port at /v1/mcp — no separate Kubernetes Service or port is needed
  • Inject MCP_SERVER_ENABLED, MCP_SERVER_WRITE_ACCESS_ENABLED, and MCP_SERVER_CONFIG_PATH environment variables into the StatefulSet when MCP is enabled
  • Add ConfigMap template (weaviateMCPConfig.yaml) that auto-creates and mounts custom MCP tool descriptions when mcp.config is set
  • Add test coverage in .cicd/test.sh

Configuration

mcp:
  enabled: false              # opt-in; no resources created when false
  writeAccessEnabled: false   # disables create/update operations for safety
  # Optional: Custom MCP tool descriptions (auto-creates ConfigMap when set)
  # config:
  #   tools:
  #     weaviate-collections-get-config:
  #       description: "Retrieves the schema configuration for collections"

Security

  • Disabled by default, must be explicitly enabled for use
  • Write access disabled by default (writeAccessEnabled: false)

Copy link
Copy Markdown

@orca-security-eu orca-security-eu bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Orca Security Scan Summary

Status Check Issues by priority
Passed Passed Secrets high 0   medium 0   low 0   info 0 View in Orca

@g-despot g-despot requested a review from a team as a code owner February 9, 2026 13:51
@g-despot g-despot requested a review from jfrancoa February 10, 2026 14:03
This commit enables the configuration of the mcp service
directly in the values.yaml, by passing in yaml format
whatever tools with descrption we might want to override.
jfrancoa added a commit to weaviate/weaviate-local-k8s that referenced this pull request Feb 11, 2026
NOTE: This PR depends on weaviate/weaviate-helm#321
Add a new option in weaviate-local-k8s to start up
the MCP server. It only allows enabling the MCP service,
but other values can be overriden via the values-override.yaml.

The MCP server will get exposed in the port 9900 by default.
g-despot and others added 6 commits March 23, 2026 11:07
Aligns with weaviate/weaviate#10847 which moves the MCP server from a
dedicated port (9000) onto the main REST API at /v1/mcp. This removes
the separate MCP service, MCP_SERVER_PORT env var, and MCP container
port since MCP now inherits the existing REST port.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove separate MCP port in favor of REST endpoint /v1/mcp
Simplify the values key from `mcpService` to `mcp` since MCP is now
served on the main REST port (/v1/mcp) and no longer needs a separate
Kubernetes Service. Also add a `default false` fallback for
writeAccessEnabled.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds opt-in Helm configuration to enable and customize Weaviate’s MCP (Model Context Protocol) server, including wiring the necessary env vars and optional ConfigMap-based tool description configuration.

Changes:

  • Introduces mcp settings in values.yaml (disabled by default; optional write access and tool config).
  • Injects MCP-related env vars and mounts an MCP ConfigMap into the StatefulSet when configured.
  • Adds a new Helm template for the MCP ConfigMap and extends CI Helm-render tests to cover the new behavior.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
weaviate/values.yaml Adds user-facing mcp configuration block and examples.
weaviate/templates/weaviateStatefulset.yaml Conditionally sets MCP env vars and mounts the MCP config volume.
weaviate/templates/weaviateMCPConfig.yaml Creates a ConfigMap for MCP tool configuration when provided.
.cicd/test.sh Adds Helm template assertions for MCP enablement and config mounting.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

jfrancoa added a commit to weaviate/weaviate-local-k8s that referenced this pull request Apr 13, 2026
NOTE: This PR depends on weaviate/weaviate-helm#321
Add a new option in weaviate-local-k8s to start up
the MCP server. It only allows enabling the MCP service,
but other values can be overriden via the values-override.yaml.

The MCP server will get exposed in the port 9900 by default.
jfrancoa added a commit to weaviate/weaviate-local-k8s that referenced this pull request Apr 13, 2026
NOTE: This PR depends on weaviate/weaviate-helm#321
Add a new option in weaviate-local-k8s to start up
the MCP server. It only allows enabling the MCP service,
but other values can be overriden via the values-override.yaml.

The MCP server will get exposed in the port 9900 by default.
jfrancoa added a commit to weaviate/weaviate-local-k8s that referenced this pull request Apr 13, 2026
NOTE: This PR depends on weaviate/weaviate-helm#321
Add a new option in weaviate-local-k8s to start up
the MCP server. It only allows enabling the MCP service,
but other values can be overriden via the values-override.yaml.

The MCP server will get exposed in the port 9900 by default.
@jfrancoa jfrancoa merged commit ab9d2d6 into main Apr 13, 2026
7 of 8 checks passed
@jfrancoa jfrancoa deleted the mcp branch April 13, 2026 13:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants