mirror of
https://github.com/okieselbach/AutopilotMonitor.git
synced 2026-10-24 20:53:06 +00:00
8a4a7cf255
- MCP server: stdio → Streamable HTTP (Express) with /health endpoint - Auth: device code flow → token pass-through (JWT from Claude Code client) - Dockerfile (multi-stage, node:22-slim) + .dockerignore - Bicep template: ACR + Container App Environment + Container App (scale-to-zero) - GitHub Actions: deploy-mcp.yml workflow, all backend workflows migrated to SP auth - Removed unused dev/main deploy workflows - Backend: McpAccessPolicy enum (Disabled/WhitelistOnly/AllMembers) - Backend: McpUsers table + McpUserService (5min cache) + McpUserFunction (CRUD + access check) - Backend: 6 endpoints registered in EndpointAccessPolicyCatalog - Web UI: MCP Users management section at /settings/access/mcp-users - Web UI: user list, add/remove/enable/disable, policy info banner Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
43 lines
1.3 KiB
YAML
43 lines
1.3 KiB
YAML
name: Deploy MCP Server (Container App)
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
ACR_NAME: autopilotmonitoracr
|
|
CONTAINER_APP_NAME: autopilotmonitor-mcp
|
|
RESOURCE_GROUP: ${{ secrets.AZURE_MCP_RESOURCE_GROUP }}
|
|
IMAGE_TAG: ${{ github.sha }}
|
|
|
|
jobs:
|
|
build-and-deploy:
|
|
runs-on: ubuntu-latest
|
|
name: Build and Deploy MCP Server
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Login to Azure
|
|
uses: azure/login@v2
|
|
with:
|
|
creds: ${{ secrets.AZURE_CREDENTIALS }}
|
|
|
|
- name: Login to ACR
|
|
run: az acr login --name ${{ env.ACR_NAME }}
|
|
|
|
- name: Build and push container image
|
|
run: |
|
|
docker build \
|
|
-f src/McpServer/autopilot-monitor-mcp/Dockerfile \
|
|
-t ${{ env.ACR_NAME }}.azurecr.io/${{ env.CONTAINER_APP_NAME }}:${{ env.IMAGE_TAG }} \
|
|
-t ${{ env.ACR_NAME }}.azurecr.io/${{ env.CONTAINER_APP_NAME }}:latest \
|
|
.
|
|
docker push ${{ env.ACR_NAME }}.azurecr.io/${{ env.CONTAINER_APP_NAME }} --all-tags
|
|
|
|
- name: Deploy to Container App
|
|
run: |
|
|
az containerapp update \
|
|
--name ${{ env.CONTAINER_APP_NAME }} \
|
|
--resource-group ${{ env.RESOURCE_GROUP }} \
|
|
--image ${{ env.ACR_NAME }}.azurecr.io/${{ env.CONTAINER_APP_NAME }}:${{ env.IMAGE_TAG }}
|