feat(dashboards): add MCP tools for dashboard widgets (10/11)#60497
Conversation
MCP UI Apps size report
|
Query snapshots: Backend query snapshots updatedChanges: 2 snapshots (1 modified, 1 added, 0 deleted) What this means:
Next steps:
|
3c208b6 to
7a76c6c
Compare
Query snapshots: Backend query snapshots updatedChanges: 2 snapshots (1 modified, 1 added, 0 deleted) What this means:
Next steps:
|
694e167 to
cb22c2b
Compare
d531957 to
67323bd
Compare
Query snapshots: Backend query snapshots updatedChanges: 2 snapshots (1 modified, 1 added, 0 deleted) What this means:
Next steps:
|
9cd9da0 to
410ccdc
Compare
4e2a8c2 to
322cca9
Compare
410ccdc to
cf1fe09
Compare
322cca9 to
1fcb621
Compare
|
⏭️ Skipped snapshot commit because branch advanced to The new commit will trigger its own snapshot update workflow. If you expected this workflow to succeed: This can happen due to concurrent commits. To get a fresh workflow run, either:
|
cf1fe09 to
bb15662
Compare
1fcb621 to
7edd67d
Compare
|
⏭️ Skipped snapshot commit because branch advanced to The new commit will trigger its own snapshot update workflow. If you expected this workflow to succeed: This can happen due to concurrent commits. To get a fresh workflow run, either:
|
|
⏭️ Skipped snapshot commit because branch advanced to The new commit will trigger its own snapshot update workflow. If you expected this workflow to succeed: This can happen due to concurrent commits. To get a fresh workflow run, either:
|
56d18fa to
d374b34
Compare
d88ec05 to
46da118
Compare
f9e9c45 to
620fb89
Compare
Query snapshots: Backend query snapshots updatedChanges: 8 snapshots (7 modified, 1 added, 0 deleted) What this means:
Next steps:
|
Query snapshots: Backend query snapshots updatedChanges: 1 snapshots (1 modified, 0 added, 0 deleted) What this means:
Next steps:
|
vdekrijger
left a comment
There was a problem hiding this comment.
LGTM!
Generally with these MCP updates, it might be nice to set up the local posthog MCP and ask the LLM agent of your choice to generate a testing prompt with checkpoints and "success measurements" 😃.
In my experience it helped find some painpoints that are easier to mitigate before merging and that are tricky to cover in (integration) tests.
Query snapshots: Backend query snapshots updatedChanges: 1 snapshots (1 modified, 0 added, 0 deleted) What this means:
Next steps:
|
Query snapshots: Backend query snapshots updatedChanges: 1 snapshots (1 modified, 0 added, 0 deleted) What this means:
Next steps:
|
Query snapshots: Backend query snapshots updatedChanges: 1 snapshots (1 modified, 0 added, 0 deleted) What this means:
Next steps:
|
|
⏭️ Skipped snapshot commit because branch advanced to The new commit will trigger its own snapshot update workflow. If you expected this workflow to succeed: This can happen due to concurrent commits. To get a fresh workflow run, either:
|
expose widget catalog, batch add, run, and tile copy via MCP without the unrelated tool-schema snapshot directory refactor
Server checks used team id as distinct_id while the flag rolls out on user cohorts. Evaluate with user distinct_id and project/org groups.
Batch-add and run widget MCP tools require the dashboard-widgets feature flag on the test project. Mirror the logs-alerts integration setup. Co-authored-by: Cursor <cursoragent@cursor.com>
MCP integration tests run against Django with POSTHOG_FEATURE_FLAGS_FORCE_ENABLED for logs-alerting only. dashboard_widgets_enabled() bypassed that path, so creating the flag from the test process never affected the server process. Co-authored-by: Cursor <cursoragent@cursor.com>
|
No dependency changes detected. Learn more about Socket for GitHub. 👍 No dependency changes detected in pull request |
withPostHogUrl returns project-scoped absolute links; use toContain like the other dashboard integration assertions Co-authored-by: Cursor <cursoragent@cursor.com>
CI force-enables the flag via POSTHOG_FEATURE_FLAGS_FORCE_ENABLED; the MCP feature-flag PATCH in beforeAll 500s locally and is redundant Co-authored-by: Cursor <cursoragent@cursor.com>

Problem
Agents and MCP clients need programmatic access to dashboard widgets — catalog discovery, create/update, batch add, and batch run — using the same API surface the UI uses after the widget stack lands.
This PR is 10/11 in the dashboard widgets Graphite stack.
Depends on: PR 9 (#60496 — session replay dashboard widget)
Changes
products/dashboards/mcp/tools.yaml— widget catalog, add, update, batch add, and run tools wired to the dashboards product APIHow did you test this code?
services/mcp/tests/tools/dashboards.integration.test.ts, tool schema snapshots)👉 Stay up-to-date with PostHog coding conventions for a smoother review.
Automatic notifications
Docs update
Add the
skip-inkeep-docslabel — agent playbook lands in #60516.🤖 Agent context