# Gitea MCP Server — public connector for claude.ai # # Deploys the official Gitea MCP server (gitea.com/gitea/gitea-mcp) # in HTTP mode, exposing /mcp endpoint for Streamable HTTP transport. # # The MCP server connects to the Gitea backend over the cluster network # (gitea.temple-council.svc.cluster.local) using a Personal Access Token # stored in gitea-mcp-secrets. Until 2026-10-06 it went out to Gitea's # own NLB (185.19.29.94) and back in; that NLB is gone — Gitea is behind # the shared ingress now (ingress-tcp-services.yaml). --- apiVersion: apps/v1 kind: Deployment metadata: name: gitea-mcp namespace: shorashim labels: app.kubernetes.io/name: gitea-mcp spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: gitea-mcp template: metadata: labels: app.kubernetes.io/name: gitea-mcp spec: containers: - name: gitea-mcp image: docker.io/gitea/gitea-mcp-server@sha256:5fad9c4a1148071fd58ed617f779115f65a13c517c20427a3b39f80cac43e600 # pinned 2026-10-06: a floating tag upgrades on any restart command: ["/app/gitea-mcp"] args: - "-t" - "http" - "--host" - "http://gitea.temple-council.svc.cluster.local" - "--port" - "8080" env: - name: GITEA_ACCESS_TOKEN valueFrom: secretKeyRef: name: gitea-mcp-secrets key: GITEA_TOKEN - name: GITEA_HOST value: "http://gitea.temple-council.svc.cluster.local" ports: - containerPort: 8080 name: http resources: requests: memory: "64Mi" cpu: "50m" limits: memory: "256Mi" cpu: "250m" livenessProbe: tcpSocket: port: 8080 initialDelaySeconds: 10 periodSeconds: 30 readinessProbe: tcpSocket: port: 8080 initialDelaySeconds: 5 periodSeconds: 10 --- apiVersion: v1 kind: Service metadata: name: gitea-mcp namespace: shorashim labels: app.kubernetes.io/name: gitea-mcp spec: type: ClusterIP selector: app.kubernetes.io/name: gitea-mcp ports: - port: 8080 targetPort: 8080 protocol: TCP name: http