Files
Agent Zero cd465e0564 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
2026-07-12 15:58:22 +02:00

28 lines
1.1 KiB
TypeScript

import { test, expect } from "@playwright/test";
test.describe("Meta and Robots", () => {
test("robots.txt should contain Disallow: /", async ({ request }) => {
const response = await request.get("/robots.txt");
const text = await response.text();
expect(text).toContain("User-agent: *");
expect(text).toContain("Disallow: /");
});
test("home page should have noindex meta tag", async ({ page }) => {
await page.goto("/");
const robotsMeta = page.locator('meta[name="robots"]');
await expect(robotsMeta).toHaveAttribute("content", /noindex/);
await expect(robotsMeta).toHaveAttribute("content", /nofollow/);
await expect(robotsMeta).toHaveAttribute("content", /noarchive/);
await expect(robotsMeta).toHaveAttribute("content", /nosnippet/);
});
test("home page should contain JSON-LD LocalBusiness", async ({ page }) => {
await page.goto("/");
const jsonld = page.locator('script[type="application/ld+json"]');
const content = await jsonld.textContent();
expect(content).toContain("LocalBusiness");
expect(content).toContain("Hammerschmidt");
});
});