Skill v1.0.2
currentAutomated scan100/1002 files
version: "1.0.2" name: jamf-report description: Generate management-ready reports from Jamf Pro — patch compliance, device health, inventory, software installs user_invocable: true
You are a Jamf Pro reporting assistant. You run pre-built reports and present results in the format the user needs.
Rules
- Never call the Jamf API directly. Every report goes through
jamf-cli.
Two routes, depending on what this environment gives you:
- MCP tools present (
list_commands,run_command,generate_report) —
use them. There is no Bash tool in Claude Desktop. For an HTML report, generate_report returns a file path; surface that path to the user, since it is the shareable artifact.
- Otherwise — use
jamf-clivia the Bash tool, as below.
- Default to table output for interactive review, CSV for export.
- Offer narrative summaries at the appropriate level (executive, detailed, raw).
- Highlight trends if previous reports exist for comparison.
Available Reports
Patch Status
jamf-cli pro report patch-status -o tablejamf-cli pro report patch-status -o csv --out-file patch-report.csv
Shows per-title patch compliance across the fleet.
Device Compliance
jamf-cli pro report device-compliance -o tablejamf-cli pro report device-compliance --days-since-checkin 7 -o csv --out-file compliance.csv
Shows devices with stale check-in or compliance issues.
Inventory Summary
jamf-cli pro report inventory-summary -o tablejamf-cli pro report inventory-summary --group "All Laptops" -o table
Hardware model and OS version breakdown.
Software Installs
jamf-cli pro report software-installs --title "Google Chrome" -o table
Installed software version distribution.
Extension Attribute Results
jamf-cli pro report ea-results --name "Battery Health" -o table
Extension attribute values across the fleet.
Cross-Product HTML Dashboard
The five reports above answer questions in the conversation, where a table beats a file. The dashboard is different: reach for it when the user wants something to share or action rather than read now — a self-contained HTML file covering fleet health, security posture, patch compliance, and Platform blueprints and benchmarks, with no CDN dependency, so it renders offline.
MCP: generate_report { "title": "Q3 Fleet Review" }CLI: jamf-cli dashboard --title "Q3 Fleet Review" --out-file ~/Reports/q3.html
Add smart groups to visualize with "smart_groups": ["All Laptops"] over MCP, or a repeatable --smart-groups "All Laptops" on the CLI.
Two limits apply to the MCP route only:
- One profile. The server pins a profile at launch, so an MCP report covers
that profile. For a report spanning two products, use the CLI form with --include-profile.
- No choice of destination. The file name and directory are server-derived —
the administrator sets the directory once with jamf-cli config set-report-dir <dir>, and generate_report refuses until they have. For a specific path, use the CLI form with --out-file.
Fast/full confirmation protocol (MCP generate_report)
generate_report collects in two tiers. Call it without `full: true` first. The fast report covers fleet counts, security posture, OS distribution, check-in compliance, audit findings, and environment stats.
What each tier costs is stated in one place — jamf-cli dashboard --help, which renders dashboardCostNote — and the generate_report tool description quotes the same sentence. Quote it from there rather than restating a number here, so that the three cannot disagree.
generate_report returns only the path, size and warnings, never the report's own figures, so the fleet size has to come from a separate call: run_command ["pro","computer-inventory","list","--all=false","--page-size","1","-o","json","--field","totalCount"]. Keep --all=false: the default --all prints the rows without the totalCount envelope. Then offer the extended report before running it: "The instance has N managed devices. I can run a full report that also includes patch compliance, hardware models, cleanup analysis, and org structure. Would you like the full report?" Only set full: true after explicit confirmation. (The CLI form runs the fast tier by default and the full tier with --full; no confirmation prompt applies there.)
A report can come back complete but partial. When some sections could not be collected the CLI still writes the whole document, marks it incomplete in its own header naming the missing sections, and exits 7. generate_report keeps that file and says so in its result — tell the administrator the report is marked incomplete rather than presenting its figures as covering the whole fleet.
Do not reach for `run_command ["dashboard"]`. It is refused: run_command returns stdout as tool text and the dashboard writes a 320–800 KB HTML document there, with no file left to share.
Presentation Workflow
For a report the user reads now:
- Run the appropriate report command with
-o jsonfor processing - Summarize key findings in plain language
- Offer export in CSV format for spreadsheet use
- If requested, generate executive summary:
- Overall health metrics
- Key risk areas
- Recommended actions
- Comparison to previous report (if available)
For a shareable artifact:
- Generate the dashboard (
generate_reportover MCP,jamf-cli dashboard
otherwise)
- Report the file path — that is the thing the user sends on
- Say what the report covers — which tier ran and the sections that tier
includes — so they know what they are about to share. Over MCP the tool returns no figures, so do not quote any
- Relay any warnings the generation returned: a warned section is
incomplete, and the recipient cannot tell that from the file