Add cluster-internal MCP servers for the LocalAI agent pool

Gitea, Grafana, Nextcloud and Discourse MCP servers as ClusterIP-only
Deployments in namespace mcp, read-only, acting as LDAP user localai.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-07 12:38:15 -05:00
co-authored by Claude Opus 5.5
commit 7bf9f6022c
5 changed files with 211 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
#SPDX-License-Identifier: MIT-0
---
mcp_servers:
- name: gitea
image: "{{ mcp_gitea_image }}"
command: [/app/gitea-mcp]
args: [-t, http, -p, "8000", -read-only, -H, "{{ mcp_gitea_host }}", -tools, "{{ mcp_gitea_tools }}"]
envFrom: [{secretRef: {name: mcp-gitea}}]
memory: 128Mi
- name: grafana
image: "{{ mcp_grafana_image }}"
command: [/app/mcp-grafana]
args:
- -t
- streamable-http
- --address
- 0.0.0.0:8000
- --allowed-hosts
- "grafana.{{ mcp_namespace }}.svc.cluster.local:8000,grafana.{{ mcp_namespace }}.svc:8000,grafana.{{ mcp_namespace }}:8000"
- --disable-write
- --enabled-tools
- "{{ mcp_grafana_enabled_tools }}"
- --log-level
- error
envFrom: [{secretRef: {name: mcp-grafana}}]
memory: 128Mi
- name: nextcloud
image: "{{ mcp_nextcloud_image }}"
args: "{{ ['--port', '8000', '--transport', 'streamable-http', '--no-oauth', '--log-level', 'warning'] + (mcp_nextcloud_apps | map('regex_replace', '^', '--enable-app=') | list) }}"
envFrom: [{secretRef: {name: mcp-nextcloud}}]
env:
- {name: HOME, value: /tmp}
memory: 512Mi
- name: discourse
image: "{{ mcp_discourse_node_image }}"
command: [sh, -c]
args:
- >-
npm install -g --prefix /tmp/npm --no-fund --no-audit
@discourse/mcp@{{ mcp_discourse_mcp_version }} supergateway@{{ mcp_supergateway_version }}
&& exec /tmp/npm/bin/supergateway
--stdio "/tmp/npm/bin/discourse-mcp --profile /secrets/discourse-profile.json --site https://discourse.eom.dev"
--outputTransport streamableHttp --stateful --sessionTimeout 3600000
--port 8000 --streamableHttpPath /mcp --healthEndpoint /healthz --logLevel none
env:
- {name: HOME, value: /tmp}
- {name: npm_config_cache, value: /tmp/npm-cache}
mounts:
- {name: profile, mountPath: /secrets, readOnly: true}
volumes:
- {name: profile, secret: {secretName: mcp-discourse}}
memory: 384Mi