Skip to content

feat(mcp): Control Center - read-only grant matrix (who holds which MCP tool) #461

Description

@Weegy

Part of the Control Center scope in epic #459 (Wave 2, item 3 of the epic's UX list) - the piece that would have surfaced #457's dead grants without a code trace.

Scope

A read-only cross-tab inside the /admin/mcp Control Center (#460): which agent / sub-agent currently holds which MCP tool grant, sourced from agent_tool_grants joined with agents, sub-agents, servers, and current verdicts.

  • Backend: GET /operator/mcp-grants returning all grants with resolved agent/sub-agent names, server name, normalized tool name, and the tool's current verdict + ack state.
  • Frontend: matrix pane in the Control Center; rows = grant holders (agents, sub-agents grouped under their parent), columns/cells = server:tool with verdict badge. No mutations in v1 (grants stay canvas-managed) except revoke, which reuses the existing edge-delete route.
  • Blocked-by-policy grants (runtime blocklist from security: extend content-security scanning to MCP tool discovery #454's fold) render visibly struck/flagged, so an operator sees "granted but not callable" instead of silence.

Scoped to the grant types that exist as of Waves 0/1 (agent + sub-agent). Skill bindings (#456) and plugin grants (#458) extend this matrix in Wave 6, consuming the caller taxonomy from the audit foundation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestmcpModel Context Protocol client/server integration

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions