Files
sbbb/base/devtools/penpot-mcp.yaml
Sienna Meridian Satterwhite 048319f70b fix(devtools): stabilize Penpot MCP, fix S3 creds, OIDC registration
MCP server:
- Replace vite build --watch + livePreview with static vite preview
  (watch mode was reloading the plugin iframe, killing WebSocket)
- Bake WS_URI at Docker build time for production WebSocket URL
- Add server-side application-level keepalive messages every 25s
- Add client-side auto-reconnect with exponential backoff
- Set Pingora route timeout to 86400s for WebSocket idle tolerance

Penpot:
- Add AWS_ACCESS_KEY_ID/SECRET env vars for S3 SDK compatibility
- Set S3 region to satisfy AWS SDK credential chain
- Enable OIDC registration (disable-registration blocks OIDC signup)
- Fix frontend port (8080 not 80)
- Add penpot bucket to seaweedfs-buckets init job
2026-04-04 15:37:45 +01:00

66 lines
1.5 KiB
YAML

# Penpot MCP server — bridges AI clients to Penpot via the MCP plugin.
# Port 4401: HTTP/SSE for MCP clients (Claude, etc.)
# Port 4402: WebSocket for the Penpot browser plugin
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: penpot-mcp
namespace: devtools
spec:
replicas: 1
selector:
matchLabels:
app: penpot-mcp
template:
metadata:
labels:
app: penpot-mcp
spec:
containers:
- name: penpot-mcp
image: src.sunbeam.pt/studio/penpot-mcp:latest
ports:
- name: http
containerPort: 4401
- name: ws
containerPort: 4402
- name: plugin
containerPort: 4400
env:
- name: PENPOT_MCP_REMOTE_MODE
value: "true"
- name: PENPOT_MCP_SERVER_HOST
value: "0.0.0.0"
- name: PENPOT_MCP_SERVER_ADDRESS
value: "mcp-designer.DOMAIN_SUFFIX"
- name: WS_URI
value: "wss://mcp-designer.DOMAIN_SUFFIX/ws"
- name: PENPOT_MCP_PLUGIN_SERVER_HOST
value: "0.0.0.0"
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
memory: 256Mi
---
apiVersion: v1
kind: Service
metadata:
name: penpot-mcp
namespace: devtools
spec:
selector:
app: penpot-mcp
ports:
- name: http
port: 4401
targetPort: http
- name: ws
port: 4402
targetPort: ws
- name: plugin
port: 4400
targetPort: plugin