feat: add MCP server with resources, tools, auth, and Traefik routing

- Add backend/app/mcp_server.py with FastMCP server (hms-cms)
- Resources: design-rules, page-structure, sync-status
- Tools: trigger_sync, get_sync_log, set_rentman_token, read_file,
  write_file, create_page, deploy, git_commit, git_status
- Bearer token auth via MCP_AUTH_TOKEN env var
- Mount MCP at /mcp with streamable HTTP transport
- Integrate session manager in FastAPI lifespan
- Add Traefik labels for external /mcp route on hms.media-on.de
- Add git, docker.io, curl to backend Dockerfile
- Mount repo root + docker socket in backend container
- Add mcp>=1.0.0 to requirements.txt
This commit is contained in:
Agent Zero
2026-07-12 15:58:22 +02:00
parent 00c23bc066
commit cd465e0564
124 changed files with 3309 additions and 225 deletions
+27
View File
@@ -0,0 +1,27 @@
<template>
<div class="min-h-screen flex flex-col">
<AppHeader />
<main id="main-content" class="flex-1" role="main">
<div class="max-w-md mx-auto px-4 py-24 text-center">
<div class="text-8xl font-bold mb-4" style="color: var(--secondary)">404</div>
<h1 class="text-2xl font-semibold mb-2" style="color: var(--text)">Seite nicht gefunden</h1>
<p class="mb-8" style="color: var(--secondary)">Die angeforderte Seite existiert nicht.</p>
<NuxtLink to="/" class="hms-btn hms-btn-primary">Zur Startseite</NuxtLink>
</div>
</main>
<AppFooter />
</div>
</template>
<script setup lang="ts">
import type { NuxtError } from "#app";
const props = defineProps<{ error: NuxtError }>();
useHead({
title: `${props.error.statusCode} HMS Licht & Ton`,
meta: [
{ name: "robots", content: "noindex, nofollow, noarchive, nosnippet" },
],
});
</script>