feat: add MCP server templates for Gitea, HomeAssistant, and Outline with federated gateway support
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
apiVersion: secrets.phase.dev/v1alpha1
|
||||
kind: PhaseSecret
|
||||
metadata:
|
||||
name: outline-mcp-secret
|
||||
namespace: agentgateway-system
|
||||
spec:
|
||||
authentication:
|
||||
serviceToken:
|
||||
serviceTokenSecretReference:
|
||||
secretName: phase-service-token
|
||||
secretNamespace: phase-secrets-operator
|
||||
managedSecretReferences:
|
||||
- secretName: outline-mcp-bearer-token
|
||||
secretNamespace: agentgateway-system
|
||||
secretType: Opaque
|
||||
processors:
|
||||
OUTLINE_BEARER_TOKEN:
|
||||
asName: Authorization
|
||||
phaseApp: federated_mcp
|
||||
phaseAppEnv: production
|
||||
phaseAppEnvPath: /
|
||||
phaseHost: https://phase.hnrx.net
|
||||
|
||||
---
|
||||
apiVersion: secrets.phase.dev/v1alpha1
|
||||
kind: PhaseSecret
|
||||
metadata:
|
||||
name: homeassistant-mcp-secret
|
||||
namespace: agentgateway-system
|
||||
spec:
|
||||
authentication:
|
||||
serviceToken:
|
||||
serviceTokenSecretReference:
|
||||
secretName: phase-service-token
|
||||
secretNamespace: phase-secrets-operator
|
||||
managedSecretReferences:
|
||||
- secretName: homeassistant-mcp-secret
|
||||
secretNamespace: agentgateway-system
|
||||
secretType: Opaque
|
||||
nameTransformer: 'upper-camel'
|
||||
phaseApp: home_assistant_token
|
||||
phaseAppEnv: production
|
||||
phaseAppEnvPath: /
|
||||
phaseHost: https://phase.hnrx.net
|
||||
@@ -0,0 +1,55 @@
|
||||
apiVersion: agentgateway.dev/v1alpha1
|
||||
kind: AgentgatewayBackend
|
||||
metadata:
|
||||
name: federated-gateway
|
||||
namespace: agentgateway-system
|
||||
spec:
|
||||
mcp:
|
||||
targets:
|
||||
- name: gitea
|
||||
selector:
|
||||
services:
|
||||
matchLabels:
|
||||
app: gitea-mcp-server
|
||||
- name: outline-mcp-server
|
||||
static:
|
||||
host: outline.hnrx.net
|
||||
port: 443
|
||||
path: /mcp/
|
||||
policies:
|
||||
tls:
|
||||
sni: outline.hnrx.net
|
||||
auth:
|
||||
secretRef:
|
||||
name: outline-mcp-bearer-token
|
||||
- name: homeassistant-mcp-server
|
||||
static:
|
||||
host: ha.hnrx.net
|
||||
port: 443
|
||||
path: /api/mcp
|
||||
policies:
|
||||
tls:
|
||||
sni: ha.hnrx.net
|
||||
auth:
|
||||
secretRef:
|
||||
name: homeassistant-mcp-secret
|
||||
---
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: mcp-federated
|
||||
namespace: agentgateway-system
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: agentgateway-proxy
|
||||
namespace: agentgateway-system
|
||||
rules:
|
||||
- backendRefs:
|
||||
- name: federated-gateway
|
||||
namespace: agentgateway-system
|
||||
group: agentgateway.dev
|
||||
kind: AgentgatewayBackend
|
||||
matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /mcp
|
||||
@@ -0,0 +1,97 @@
|
||||
apiVersion: secrets.phase.dev/v1alpha1
|
||||
kind: PhaseSecret
|
||||
metadata:
|
||||
name: gitea-mcp-server-secret
|
||||
namespace: agentgateway-system
|
||||
spec:
|
||||
authentication:
|
||||
serviceToken:
|
||||
serviceTokenSecretReference:
|
||||
secretName: phase-service-token
|
||||
secretNamespace: phase-secrets-operator
|
||||
managedSecretReferences:
|
||||
- secretName: gitea-mcp-server-secret
|
||||
secretNamespace: agentgateway-system
|
||||
secretType: Opaque
|
||||
phaseApp: gitea-mcp-server
|
||||
phaseAppEnv: production
|
||||
phaseAppEnvPath: /
|
||||
phaseHost: https://phase.hnrx.net
|
||||
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: gitea-mcp-server
|
||||
namespace: agentgateway-system
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: gitea-mcp-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: gitea-mcp-server
|
||||
spec:
|
||||
containers:
|
||||
- name: gitea-mcp-server
|
||||
image: docker.gitea.com/gitea-mcp-server:latest
|
||||
command: ["/app/gitea-mcp"]
|
||||
args: ["-t", "http", "--port", "8080"]
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: gitea-mcp-server-secret
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: gitea-mcp-server
|
||||
namespace: agentgateway-system
|
||||
labels:
|
||||
app: gitea-mcp-server
|
||||
spec:
|
||||
selector:
|
||||
app: gitea-mcp-server
|
||||
ports:
|
||||
- port: 8080
|
||||
targetPort: 8080
|
||||
appProtocol: agentgateway.dev/mcp
|
||||
|
||||
---
|
||||
apiVersion: agentgateway.dev/v1alpha1
|
||||
kind: AgentgatewayBackend
|
||||
metadata:
|
||||
name: mcp-backend
|
||||
namespace: agentgateway-system
|
||||
spec:
|
||||
mcp:
|
||||
targets:
|
||||
- name: gitea-mcp-server
|
||||
selector:
|
||||
services:
|
||||
matchLabels:
|
||||
app: gitea-mcp-server
|
||||
---
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: gitea-mcp
|
||||
namespace: agentgateway-system
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: agentgateway-proxy
|
||||
namespace: agentgateway-system
|
||||
rules:
|
||||
- backendRefs:
|
||||
- name: mcp-backend
|
||||
namespace: agentgateway-system
|
||||
group: agentgateway.dev
|
||||
kind: AgentgatewayBackend
|
||||
matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /mcp-gitea
|
||||
@@ -0,0 +1,51 @@
|
||||
apiVersion: agentgateway.dev/v1alpha1
|
||||
kind: AgentgatewayBackend
|
||||
metadata:
|
||||
name: homeassistant-mcp-backend
|
||||
namespace: agentgateway-system
|
||||
spec:
|
||||
mcp:
|
||||
targets:
|
||||
- name: homeassistant-mcp-server
|
||||
static:
|
||||
host: ha.hnrx.net
|
||||
port: 443
|
||||
path: /api/mcp
|
||||
policies:
|
||||
tls:
|
||||
sni: ha.hnrx.net
|
||||
|
||||
---
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: homeassistant-mcp
|
||||
namespace: agentgateway-system
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: agentgateway-proxy
|
||||
namespace: agentgateway-system
|
||||
rules:
|
||||
- backendRefs:
|
||||
- name: homeassistant-mcp-backend
|
||||
namespace: agentgateway-system
|
||||
group: agentgateway.dev
|
||||
kind: AgentgatewayBackend
|
||||
filters:
|
||||
- type: CORS
|
||||
cors:
|
||||
allowHeaders:
|
||||
- "*"
|
||||
allowMethods:
|
||||
- "*"
|
||||
allowOrigins:
|
||||
- "*"
|
||||
- type: RequestHeaderModifier
|
||||
requestHeaderModifier:
|
||||
set:
|
||||
- name: Authorization
|
||||
value: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIwMThlYjBjMjk0MjU0YzdhODdiNTc5MjcwMThkMjE2NiIsImlhdCI6MTczNDY1MTY2MCwiZXhwIjoyMDUwMDExNjYwfQ.2M6rKWpzScXX28tYVTkzpgZgdCSou8DiyhqXkeJF6HE"
|
||||
matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /mcp-homeassistant
|
||||
@@ -0,0 +1,49 @@
|
||||
apiVersion: agentgateway.dev/v1alpha1
|
||||
kind: AgentgatewayBackend
|
||||
metadata:
|
||||
name: outline-mcp-backend
|
||||
namespace: agentgateway-system
|
||||
spec:
|
||||
mcp:
|
||||
targets:
|
||||
- name: outline-mcp-server
|
||||
static:
|
||||
host: outline.hnrx.net
|
||||
port: 443
|
||||
path: /mcp/
|
||||
policies:
|
||||
tls:
|
||||
sni: outline.hnrx.net
|
||||
auth:
|
||||
secretRef:
|
||||
name: outline-mcp-bearer-token
|
||||
|
||||
---
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: outline-mcp
|
||||
namespace: agentgateway-system
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: agentgateway-proxy
|
||||
namespace: agentgateway-system
|
||||
rules:
|
||||
- backendRefs:
|
||||
- name: outline-mcp-backend
|
||||
namespace: agentgateway-system
|
||||
group: agentgateway.dev
|
||||
kind: AgentgatewayBackend
|
||||
filters:
|
||||
- type: CORS
|
||||
cors:
|
||||
allowHeaders:
|
||||
- "*"
|
||||
allowMethods:
|
||||
- "*"
|
||||
allowOrigins:
|
||||
- "*"
|
||||
matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /mcp-outline
|
||||
Reference in New Issue
Block a user