{
  "status": "fail",
  "category": "SEC",
  "severity": "medium",
  "evidence": [
    "Repo-weite Suche (find/grep nach allowlist|tool-policy|gateway-config|allowed_tools) ohne Treffer — es existiert keine Team-/Rollen-Allow-List und kein Gateway-Config",
    "src/swiss_environment_mcp/server.py — keine Group-/Role-Checks (kein require_group, keine OAuth-Claims); Server hat kein Auth-Modell (docs/security.md: 'Auth: keine')",
    "docs/security.md (Abschnitt 'Tool-Poisoning / Gateway (SEC-015)') — dokumentierter Stand: Server läuft ohne vorgelagertes MCP-Gateway; für Enterprise-Einsatz wird Tool-Allow-Listing (default-deny) am Gateway explizit als nachzurüstende Massnahme benannt",
    "tool-snapshot.json + .github/workflows/ci.yml:40 (scripts/tool_snapshot.py check) — CI-Gate friert das Tool-Inventar ein (kompensierende Kontrolle gegen Tool-Drift, aber keine team-/rollenspezifische Filterung)"
  ],
  "gaps": [
    "Keine Tool-Allow-List pro Team/Rolle dokumentiert oder konfiguriert (kein Gateway, kein default-deny im tools/list-Response)",
    "Keine Server-Side Defense-in-Depth via Group-/Role-Check — mangels Auth-Modell derzeit nicht umsetzbar",
    "Denied-Tool-Aufrufe werden nicht auditiert (kein 403-Pfad existiert)",
    "tools/list ist für alle Clients identisch, keine rollen-spezifische Filterung"
  ],
  "evaluator_notes": "Kein Pflicht-Kriterium erfüllt: der cloud-deploybare Server steht ohne Gateway/Allow-Listing da. Das Risiko ist durch das Profil (read-only, Public Open Data, Snapshot-CI-Gate) gemindert und der Gateway-Bedarf für Enterprise-Kontexte ist dokumentiert — für den Check bleibt es dennoch ein fail."
}
