Add MCP server activity card to AI Governance dashboard

Related issue: https://gitlab.com/gitlab-org/gitlab/-/work_items/618957

What

Adds an MCP servers card to the AI Governance dashboard: a list of registered MCP servers with their per-group authorization status (Active / Blocked), and a "View MCP registry" link.

Data

100% real, from the existing aiCatalogMcpServers registry API (name, description, blockStatus). blockStatus is scoped to the current group/project. No mock data, no new backend, no new API or migration.

Why no usage numbers

The prototype showed per-server usage counts. There is no per-server usage data in production: MCP usage events (Ai::UsageEvent) carry tool_name/session_id but no server identity, and the registry does not link servers to tools, so counts cannot be derived. This card ships the real, available slice now (servers + status); the usage numbers depend on producer-side work tracked in #618957.

Screenshot

image.png

image.png

The data is seeded from the production data - https://gitlab.com/groups/compliance-group-testing-and-demos/-/settings/gitlab_duo/governance?tab=mcp-registry

Notes

  • The card has its own feature flag, ai_governance_mcp_server_activity (wip, default off), nested inside the ai_governance_dashboard flag. This lets us decide independently whether the card ships in beta (per Nate's request in #618957). Both flags must be on for the card to render.
  • Visibility also follows the existing ai_catalog_mcp_servers availability (flag + Duo + beta features), same gate as the MCP registry page.
  • Frontend plus a feature-flag definition and the two governance controllers pushing the flag to the frontend.

Review feedback addressed

  • The MCP card now renders as the last card on the dashboard.
  • Removed the "Showing N agents in the last 7 days" summary line above the KPI tiles. This is not tied to this card's flag, so it applies whenever the dashboard renders; the agent-class filter control itself stays.
  • Rebased onto current master.
Edited by Dheeraj Joshi

Merge request reports

Loading
Loading