Skip to content

feat(mcp-consent): render inventory stats as an MCP App dashboard - #447

Draft
dsklyar wants to merge 1 commit into
mainfrom
danielsklyar/zel-8213-add-mcp-app-dashboard-for-consent-inventory-triage-stats
Draft

feat(mcp-consent): render inventory stats as an MCP App dashboard#447
dsklyar wants to merge 1 commit into
mainfrom
danielsklyar/zel-8213-add-mcp-app-dashboard-for-consent-inventory-triage-stats

Conversation

@dsklyar

@dsklyar dsklyar commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Closes ZEL-8213

Summary

  • Upgrade consent_get_inventory_stats with an MCP App variant that renders cookie and data-flow triage counts (live / needs review / junk) as KPI cards and progress bars.
  • Hosts without MCP Apps still get the same JSON payload; Refresh uses an app-only companion tool.
  • Port card, fill, and metric type-scale tokens into the shared MCP App theme so dashboard surfaces stay legible on dark hosts.

Test plan

  • pnpm --filter @transcend-io/mcp-server-consent build:ui then build / typecheck / typecheck:ui / test
  • pnpm mcp:inspect consent — call consent_get_inventory_stats on an Apps-capable host and confirm _meta.ui plus the dashboard
  • Click Refresh and confirm counts update via consent_get_inventory_stats_refresh
  • On a host without MCP Apps, confirm the tool still returns { cookies, dataFlows } text/JSON

Made with Cursor

Hosts that support MCP Apps get cookie and data-flow triage counts as KPI cards and progress bars; other hosts still receive the same JSON payload.
@dsklyar
dsklyar requested a review from a team as a code owner August 19, 2026 21:47
@linear-code

linear-code Bot commented Aug 19, 2026

Copy link
Copy Markdown

ZEL-8213

@pkg-pr-new

pkg-pr-new Bot commented Aug 19, 2026

Copy link
Copy Markdown

Open in StackBlitz

@transcend-io/airgap.js-types

pnpm add https://pkg.pr.new/@transcend-io/airgap.js-types@447
yarn add https://pkg.pr.new/@transcend-io/airgap.js-types@447.tgz

@transcend-io/cli

pnpm add https://pkg.pr.new/@transcend-io/cli@447
yarn add https://pkg.pr.new/@transcend-io/cli@447.tgz

@transcend-io/design-tokens

pnpm add https://pkg.pr.new/@transcend-io/design-tokens@447
yarn add https://pkg.pr.new/@transcend-io/design-tokens@447.tgz

@transcend-io/internationalization

pnpm add https://pkg.pr.new/@transcend-io/internationalization@447
yarn add https://pkg.pr.new/@transcend-io/internationalization@447.tgz

@transcend-io/privacy-types

pnpm add https://pkg.pr.new/@transcend-io/privacy-types@447
yarn add https://pkg.pr.new/@transcend-io/privacy-types@447.tgz

@transcend-io/sdk

pnpm add https://pkg.pr.new/@transcend-io/sdk@447
yarn add https://pkg.pr.new/@transcend-io/sdk@447.tgz

@transcend-io/type-utils

pnpm add https://pkg.pr.new/@transcend-io/type-utils@447
yarn add https://pkg.pr.new/@transcend-io/type-utils@447.tgz

@transcend-io/utils

pnpm add https://pkg.pr.new/@transcend-io/utils@447
yarn add https://pkg.pr.new/@transcend-io/utils@447.tgz

@transcend-io/mcp

pnpm add https://pkg.pr.new/@transcend-io/mcp@447
yarn add https://pkg.pr.new/@transcend-io/mcp@447.tgz

@transcend-io/mcp-server-admin

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-admin@447
yarn add https://pkg.pr.new/@transcend-io/mcp-server-admin@447.tgz

@transcend-io/mcp-server-assessment

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-assessment@447
yarn add https://pkg.pr.new/@transcend-io/mcp-server-assessment@447.tgz

@transcend-io/mcp-server-base

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-base@447
yarn add https://pkg.pr.new/@transcend-io/mcp-server-base@447.tgz

@transcend-io/mcp-server-consent

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-consent@447
yarn add https://pkg.pr.new/@transcend-io/mcp-server-consent@447.tgz

@transcend-io/mcp-server-discovery

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-discovery@447
yarn add https://pkg.pr.new/@transcend-io/mcp-server-discovery@447.tgz

@transcend-io/mcp-server-docs

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-docs@447
yarn add https://pkg.pr.new/@transcend-io/mcp-server-docs@447.tgz

@transcend-io/mcp-server-dsr

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-dsr@447
yarn add https://pkg.pr.new/@transcend-io/mcp-server-dsr@447.tgz

@transcend-io/mcp-server-inventory

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-inventory@447
yarn add https://pkg.pr.new/@transcend-io/mcp-server-inventory@447.tgz

@transcend-io/mcp-server-preferences

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-preferences@447
yarn add https://pkg.pr.new/@transcend-io/mcp-server-preferences@447.tgz

@transcend-io/mcp-server-workflows

pnpm add https://pkg.pr.new/@transcend-io/mcp-server-workflows@447
yarn add https://pkg.pr.new/@transcend-io/mcp-server-workflows@447.tgz

commit: 631669d

@dsklyar
dsklyar marked this pull request as draft August 19, 2026 22:36
@dsklyar

dsklyar commented Aug 19, 2026

Copy link
Copy Markdown
Contributor Author

Drafting to explore another angle for this tool

@dawson-turechek-transcend dawson-turechek-transcend left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great!

*
* columns: 1 with vertical gap is the implicit page stack.
*/
export function Grid({ columns, children }: GridProps) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think these UI components are generically usable enough to warrant moving them to a shared package?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah sorry, I asked agent to create the PR but forgot to draft it. It should go to shared components!

@@ -0,0 +1,2 @@
# Vite-built MCP App views, rebuilt by `pnpm prebuild`
src/ui/generated/

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we put this for all mcp packages?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It only needs then when packages have MCP apps

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should have worded that one better. I was thinking of adding it to the root .gitignore with packages/mcp/**/ui/generated.

@dsklyar dsklyar Aug 19, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would work! I will put it in separate PR so that lakitu team can review it without blocking this

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants