You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
External Dashboards API: expose containers and tabs in MCP hyperdx_save_dashboard #2212
PR #2201 wires dashboard containers, tabs, and per-tile containerId/tabId through the v2 external API. The MCP hyperdx_save_dashboard tool was deliberately left out of that PR to avoid tangling two surfaces in one review.
Now that the external API surface is settled, MCP needs the same fields so AI agents can author dashboards with the new layout primitives.
Scope
Add a containers shape to the MCP mcpDashboardsSchema body (or whichever schema the hyperdx_save_dashboard tool reuses) mirroring DashboardContainerSchema from @hyperdx/common-utils.
Add containerId / tabId to the per-tile MCP schema.
The cross-field validations on the create/update body schema (container ids unique, tab ids unique, tile container/tab refs resolvable, tab without container) already live on the shared body schema, so the MCP path inherits them once it sends through that schema.
Round-trip integration test in packages/api/src/mcp/__tests__/dashboards.test.ts covering save -> get with containers and tabs.
Out of scope
UI surface (tab bar, drag reorder) is unchanged.
Container repeat field is tracked separately.
Acceptance
AI agent calling hyperdx_save_dashboard with containers and tabId-tagged tiles round-trips through the MCP API.
The schema stays plain z.object() (no .transform / .discriminatedUnion / .superRefine) per the MCP SDK constraint.
Activity
feat(external-api): round-trip dashboard containers, tabs, and tile c…
feat(mcp): expose containers and tabs in hyperdx_save_dashboard (#2260)