feat: add dashboard-aware presentation tools to cve-impact and fleet-inventory skills#131
feat: add dashboard-aware presentation tools to cve-impact and fleet-inventory skills#131TomerFi wants to merge 4 commits into
Conversation
…inventory skills Signed-off-by: Tomer Figenblat <tfigenbl@redhat.com>
|
[Critical] Text fallback path removed from The old Step 4 contained the complete text-based result handling:
These instructions are removed entirely by this PR. The new Step 4 instructs the agent to call The removed instructions should be preserved as a fallback branch (e.g. "If dashboard unavailable / falls back to text: …"). |
|
[Moderate] Asymmetric dashboard coverage across CVE flows The |
|
[Architectural] Consider a dedicated presentation skill Both skills now call dashboard MCP tools directly. This goes against the repo's core principle: "Skills encapsulate tools — never call MCP tools directly; always invoke skills." A dedicated
The trade-off is one additional skill file per dashboard type. |
@dmartinol The fallback is handled server-side — |
@dmartinol Good catch — flows 02 and 03 use a different tool ( |
@dmartinol The |
…ashboard support to flows 02 and 03 Signed-off-by: Tomer Figenblat <tfigenbl@redhat.com>
|
Pushed a new commit: feat: update skills for client-side dashboard data fetching and add dashboard support to flows 02 and 03
Recordings with skills on Cursor:
|
| **Scope**: devices=all (account-wide) | severities=all, most critical, or selected | remediation=available or does not matter | ||
|
|
||
| **Tool**: `vulnerability__get_cves` (single request; no offset pagination in API) | ||
| **Tools**: `vulnerability__get_cves` fetcing the data for analysis and `vulnerability__load_cve_dashboard` displaying an interactive dashboard |
| - `limit`: From HITL (default 20) | ||
|
|
||
|
|
||
| **Before** continuing further, invoke the dashbaord tool to initaite the dashbaord, and examin the instruction returning from the tool. |
Code reviewFound 3 issues:
Please run 🤖 Generated with Claude Code - If this code review was useful, please react with 👍. Otherwise, react with 👎. |
Fix spelling errors in dashboard-related flow files and fleet-inventory SKILL.md: dashbaord→dashboard, fetcing→fetching, initaite→initiate, examin→examine, succesful→successful, and load_cve_dashbaord tool name. Signed-off-by: Tomer Figenblat <tfigenbl@redhat.com>
|
Hey @dmartinol (or dmartinol's claude ;-) ). Regarding issues 1 and 2 (typos):
First, let me ease your mind — there's not a single LLM that won't be able to interpret "dashboard" from "dashbaord", especially when the tool itself is correctly named in All typos were fixed in 04bbce5. Regarding issue 3 (
I don't necessarily agree. As you noted yourself, I've added: Which clearly states That said, if it would make you feel comfortable, we can beef the instruction up, something like: What do you think? Regarding "Please run
A few things here:
Generated by @TomerFi with the help of AI tools to make sure this message is grammatically correct and delivers the idea. |
dmartinol
left a comment
There was a problem hiding this comment.
:Lgtm BUT before merging it we should approve changes to insights-mcp, rebuild the image and update mcps.json to use it. ATM we have:
insights-mcp/red-hat-lightspeed-mcp@sha256:98ee33fa7cb690d02d33f57900ab95ad831b8e7985710e0ccb87f53ce1b09865
r2dedios
left a comment
There was a problem hiding this comment.
I only saw a few typos.
| ) | ||
| ``` | ||
|
|
||
| **After** the dashboard is loaded, get the raw data for further analysis. |
There was a problem hiding this comment.
Aren't these examples repeated? Is it useful at this point to include the example twice?
Check lines 58-75
There was a problem hiding this comment.
Hey @r2dedios , the repeated examples are intentional. The flow has two distinct steps: first call load_cve_dashboard (the "Before" step), then call get_cves (the "After" step). Even though the parameters are identical, I want the agent to see explicit examples for each tool at each step. We could trim it down to one example per tool instead of two, but I'm not sure it's worth the risk — I'd rather be verbose and clear than concise and ambiguous for the agent. What do you think?
|
|
||
| **Parameters**: `per_page=10` on first call, then `page` for pagination. Optional filters: `display_name`, `tags`, `staleness`, `hostname_or_id`. See [references/01-parameter-reference.md](references/01-parameter-reference.md). | ||
|
|
||
| **Before** continuing further, call `inventory__load_inventory_dashboard(...)` with the same query parameters used in the `list_hosts` call, and examin the instruction returning from the tool. |
| - `system_uuid`: Required (from Step 2) | ||
| - `limit`: `100` | ||
| - `offset`: `0`, `100`, `200`, ... per pagination strategy | ||
| - `advisory_available`: `"true"` - Only exist in `load_cve_dashboard` |
There was a problem hiding this comment.
typo Only exist -> Only exists
|
|
||
| **Tool**: `vulnerability__get_system_cves` (paginated; filter client-side for `advisory_available === true`) | ||
| **Tool**: `vulnerability__get_system_cves` fetching the data for analysis and `vulnerability__load_cve_dashboard` displaying an interactive dashboard |
Fix examin→examine in fleet-inventory SKILL.md, Only exist→Only exists and Tool→Tools in flow 03. Signed-off-by: Tomer Figenblat <tfigenbl@redhat.com>
|
Issue for spell checking tool: #145. |
Summary
load_cve_dashboardto the cve-impact skill workflow, prerequisites, and dependenciesload_inventory_dashboardto the fleet-inventory skill workflow, prerequisites, and dependenciesThese presentation tools are implemented in insights-mcp #389. They detect UI support at runtime — rendering a dashboard on UI-capable clients or falling back to text on others.
For full context on the approach investigation and decision, see APPENG-5287 and the MCP UI Integration Strategy ADR.
Validation
Recordings
CVE Dashboard (cve-impact):
Fleet Inventory Dashboard (fleet-inventory):
Related tickets