Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions internal/mcp/apps.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ import (
//go:embed apps_html/dashboard.html
var dashboardHTML string

//go:embed apps_html/compliance.html
var complianceHTML string

//go:embed apps_html/common.js
var appCommonJS string

Expand Down Expand Up @@ -67,6 +70,17 @@ var appSpecs = []appSpec{
return fetchDashboardData(ctx)
},
},
{
Name: "compliance_view",
Description: "Show a JumpCloud compliance snapshot scoped to audit-friendly metrics: MFA adoption (% enrolled + list of users without MFA), device encryption (% FDE-enabled, segmented by OS, with unencrypted-device drill-down), password-age histogram (<30d / 30-60d / 60-90d / >90d), and admin inventory (per-admin email, role, MFA status, last login). Renders as a 4-card report in MCP App-capable hosts; returns the same data as JSON when rendering isn't supported.",
ResourceURI: "ui://jc/compliance",
ResourceName: "Compliance Snapshot App",
ResourceDescription: "Audit-friendly JumpCloud compliance snapshot (MFA, FDE, password age, admins)",
HTML: complianceHTML,
Handler: func(ctx context.Context) (any, error) {
return fetchComplianceData(ctx)
},
},
}

// renderAppHTML returns the app's HTML with the common.js scaffolding injected
Expand Down
Loading
Loading