Activity Center,
composed by an agent.
96 tools across 16 categories. List preset and custom dashboards, drill into Issues and Actions, take snapshots, schedule reports, manage Boards-site connections, audit sharing, introspect the canonical inventory. Activity Center is Diligent's dashboards-and-reports product — an embedded Amazon QuickSight experience over Projects + Results data.
~/.local/share/diligent-activity-center-mcp
Node.js 20+, no sudo
Re-run to update
Three surfaces, one cookie.
There is no public Activity Center API (verified against developer.diligent.com). This MCP discovered five reverse-engineered endpoints on the per-tenant subdomain backend and confirmed by 404-probing that ~40 operations are QuickSight-iframe-native. The agent reads through one cookie session; mutations split across three layers depending on what's actually exposed.
HighBond REST (Bearer PAT)
For data the dashboards render — Projects, Results, Issues, Actions. Same JSON:API v1.0 + token bucket as the Projects MCP. Used by drill-through and the in-page Issue/Action editor.
AC backend JSON (cookie session)
5 confirmed endpoints on activity-centers-api.<region>.com: /session, /dashboards, /dashboards/{slug}/embed, /authoring/embed_url, /orgs/board_sites. OIDC login via headless Playwright; cookies cached 25 min.
QuickSight iframe (deferred)
Snapshot/schedule/share/visual-export/dashboard CRUD all live inside QS. Verified 404 on every probed Diligent path. Tools in this bucket return FEATURE_LIVES_IN_QUICKSIGHT_IFRAME with workaround pointer; drive via Playwright frameLocator on ac_open_preset.
Two-tier response cache
In-memory + persistent JSON at ~/.cache/diligent-activity-center-mcp/cache.json. Per-key TTL (5 min for AC dashboards, 15 min for templates, 2 min for instances). Survives MCP restarts so each Claude Code turn benefits. ac_clear_cache for targeted purge.
Dry-run by default
Every mutating tool defaults dry_run=true. Bulk mutations additionally require confirm_token matching the affected count. The live writeback smoke scenario round-trips an unpublished issue and reverts in a finally block.
Honest stubs
46 tools that can't be implemented through Diligent's API surface return either FEATURE_LIVES_IN_QUICKSIGHT_IFRAME (40, with workaround) or FEATURE_NOT_AVAILABLE (5, with capture-needed reason) or BRAIN_NOT_SEEDED (1). Smoke contract-tests every stub.
Capabilities overview.
Browse dashboards
List all preset (Diligent-shipped) dashboards, custom user-created dashboards, and templates. Open a preset and get the live QuickSight embed URL with full options payload (locale, parameters, timezone).
Drill into Issues & Actions
The Issues & Actions preset has bi-directional sync to HighBond. List, filter, edit issues and actions inline. Updates proxy through the Projects API. Supports dry-run and live writeback with cache-bypassing readback.
Manage Boards-site connections
List, get, fuzzy-match the org's Diligent 360 / Boards sites. Validate snapshot-attach targets before driving the QuickSight iframe.
Authoring entry
Mint a short-lived QuickSight authoring URL for Reports Admins. Drive the iframe via Playwright if you need to programmatically create or edit a dashboard.
Schema & data dictionary
Canonical inventories: dashboard, preset, template, dataset, snapshot, schedule, share, role. Build a per-attribute population/distinct-values dictionary across every live inventory.
Bulk export & governance
Flatten dashboards + templates + board sites + session into a single CSV-ready payload. Pre-flight schedule/share payload validators check documented limits before driving the QS UI.
All tools.
96 tools split across 16 categories. live = call the AC backend or HighBond today. qs-iframe = QuickSight-iframe-native (no Diligent endpoint exists). stub = capture pending.
| Tool | Description |
|---|---|
| ac_health_checklive | Pings HighBond + AC backend + Playwright readiness; returns combined session metrics |
| ac_list_capabilitieslive | Tool inventory grouped by category, with optional substring filter |
| ac_get_session_metricslive | Per-surface call counts, errors, retries, average duration |
| ac_reset_session_metricslive | Reset counters across HighBond + AC clients |
| ac_warmup_reference_cachelive | Pre-fetch users + presets + templates + board sites |
| ac_query_alllive | Auto-paginate any HighBond JSON:API resource collection |
| ac_cache_statuslive | Two-tier cache state: keys, bytes, hits/misses/writes, file path |
| ac_clear_cachelive | Targeted purge: all/reference/instances/ac/ac-instances/ui-schema/brain |
| Tool | Description |
|---|---|
| ac_list_presetslive | List Diligent-shipped managed dashboards (Pied Piper: my_activities_internal, issues, sox) |
| ac_get_presetlive | Get one preset by slug; reports availableSlugs on miss |
| ac_open_presetlive | Mint a QuickSight embed URL + render options for a preset |
| ac_get_dashboard_last_refreshlive | Surface refresh metadata embedded in the QS options.parameters payload |
| Tool | Description |
|---|---|
| ac_list_dashboardslive | List managed + template dashboards, filterable by type |
| ac_get_dashboardlive | Get one dashboard by slug across all categories |
| ac_create_dashboardqs-iframe | QuickSight-native authoring; use ac_get_authoring_embed_url + frameLocator |
| ac_update_dashboardqs-iframe | QuickSight-native authoring |
| ac_delete_dashboardqs-iframe | QuickSight-native authoring |
| ac_clone_dashboard_from_templateqs-iframe | QuickSight-native authoring |
| ac_publish_analysis_to_dashboardqs-iframe | QuickSight-native authoring |
| Tool | Description |
|---|---|
| ac_list_datasetslive | 14 built-in Projects datasets (Actions, Controls, Issues, Risks, …) |
| ac_get_datasetlive | Get one dataset record by id |
| ac_replace_datasetqs-iframe | QuickSight-native dataset binding |
| ac_field_map_datasetqs-iframe | QuickSight-native field mapping wizard |
| ac_get_dataset_refresh_statusqs-iframe | QuickSight-native refresh state |
| ac_trigger_dataset_refreshqs-iframe | QuickSight-native refresh button |
| ac_list_results_table_publicationsqs-iframe | Results-publication discovery surface unknown |
| Tool | Description |
|---|---|
| ac_list_templateslive | Provisioned + documented-only templates with knowledge file pointers |
| ac_get_template_moodyslive | ERM Reporting (Moody's) — 3 tabs |
| ac_get_template_cyber_risklive | Cyber Risk Report — 6 tabs |
| ac_get_template_market_insightslive | Market Insights (S&P) — 4 tabs |
| ac_get_template_financial_netsuitelive | Financial Reporting (NetSuite) integration |
| ac_get_template_soxlive | SOX Program Management — 6 tabs |
| ac_get_template_diligent_360live | Diligent 360 / Boards integration |
| Tool | Description |
|---|---|
| ac_list_board_siteslive | List Diligent 360 / Boards sites configured for the org (24 in Pied Piper) |
| ac_get_board_sitelive | Get one Boards site by boardSiteId |
| ac_smart_match_board_sitelive | Fuzzy-match against displayName + boardSiteName |
| ac_get_authoring_embed_urllive | Mint QuickSight authoring URL for Reports Admins |
| ac_create_board_sitestub | POST endpoint capture pending (Save click had client-side validation gate) |
| ac_delete_board_sitestub | DELETE endpoint capture pending |
| Tool | Description |
|---|---|
| ac_list_issues_in_dashboardlive | List issues with status/severity/owner/project filters |
| ac_update_issue_inlinelive | PATCH issue via HighBond Projects API; dry_run default |
| ac_list_actions_in_dashboardlive | Aggregate actions across issues (nested resource) |
| ac_update_action_inlinelive | PATCH action via HighBond; dry_run default |
| ac_get_issues_actions_dashboardlive | Composite: preset metadata + open/closed counts + severity breakdown |
| Tool | Description |
|---|---|
| ac_list_snapshotsqs-iframe | QuickSight-native snapshot history |
| ac_take_snapshotqs-iframe | QuickSight-native snapshot button |
| ac_get_snapshotqs-iframe | QuickSight-native snapshot detail |
| ac_delete_snapshotqs-iframe | QuickSight-native delete |
| ac_connect_snapshot_to_boards_sitelive* | Validates target board_site_id against /orgs/board_sites; connect is qs-iframe |
| Tool | Description |
|---|---|
| ac_list_scheduled_reportsqs-iframe | QuickSight-native |
| ac_get_scheduled_reportqs-iframe | QuickSight-native |
| ac_create_scheduled_reportqs-iframe | QuickSight-native; pre-flight with ac_validate_schedule_payload |
| ac_update_scheduled_reportqs-iframe | QuickSight-native |
| ac_pause_scheduled_reportqs-iframe | QuickSight-native |
| ac_resume_scheduled_reportqs-iframe | QuickSight-native |
| ac_delete_scheduled_reportqs-iframe | QuickSight-native |
| ac_get_schedule_failuresqs-iframe | QuickSight-native |
| Tool | Description |
|---|---|
| ac_list_sheetsqs-iframe | QuickSight-native |
| ac_list_visualsqs-iframe | QuickSight-native |
| ac_get_visual_stateqs-iframe | QuickSight-native |
| ac_export_visual_csvqs-iframe | QuickSight-native |
| ac_export_table_excelqs-iframe | QuickSight-native |
| ac_get_drillthroughqs-iframe | QuickSight-native |
| ac_apply_filterqs-iframe | QuickSight-native |
| ac_clear_filterqs-iframe | QuickSight-native |
| Tool | Description |
|---|---|
| ac_get_sessionlive | orgId, uid, locale, subscriptionState, hasAuthoring, timezone, features |
| ac_get_subscription_tierlive | Subscription state + feature-flag breakdown |
| ac_get_region_infolive | Configured + live region/locale/timezone |
| ac_get_author_countlive | Hard cap (64) + sourceOfCap; live count needs admin-UI scrape |
| ac_list_app_roleslive | Reports Admin / Writer / Reader from static catalogue |
| ac_get_app_rolelive | Per-role capabilities matrix |
| ac_list_users_with_rolestub | Admin UI capture pending |
| ac_assign_role_to_userstub | Admin UI capture pending |
| ac_revoke_role_from_userstub | Admin UI capture pending |
| Tool | Description |
|---|---|
| ac_export_inventory_flatlive | Flat dump of dashboards + templates + board sites + session |
| ac_bulk_export_visualsqs-iframe | QuickSight-native |
| ac_bulk_create_scheduled_reportsqs-iframe | QuickSight-native |
| ac_bulk_share_dashboardsqs-iframe | QuickSight-native |
| ac_bulk_take_snapshotsqs-iframe | QuickSight-native |
| ac_bulk_pause_schedulesqs-iframe | QuickSight-native |
| Tool | Description |
|---|---|
| ac_list_canonical_inventorieslive | 8 canonical types: dashboard, preset, template, dataset, snapshot, schedule, share, role |
| ac_list_inventory_recordslive | Walk a live inventory; FNA for non-live types |
| ac_get_inventory_schemalive | Per-attribute population rate, observed types, distinct values |
| ac_build_data_dictionarylive | Composite: schema across every live inventory |
| ac_compare_inventory_to_brainstub | Returns BRAIN_NOT_SEEDED until Riskapture-Knowledge has an AC seed |
| Tool | Description |
|---|---|
| ac_smart_match_dashboardlive | Fuzzy match free-text against the live dashboard list |
| ac_smart_match_templatelive | Fuzzy match against templates |
| ac_smart_match_userlive | Fuzzy match against HighBond user list (for share recipients) |
| ac_smart_match_datasetlive | Fuzzy match against the 14 built-in Projects datasets |
| ac_validate_schedule_payloadlive | Pre-flight check: 5/dashboard cap, 35 MB, 2-yr horizon, format, recipients |
| ac_validate_share_payloadlive | Pre-flight: dashboard slug, scope, accessLevel, userIds |
Environment variables.
https://apis-us.diligentoneplatform.com)https://piedpiper.activity-centers.diligentoneplatform.com)piedpiper) — must match the slug in AC_TENANT_URLus/ca/eu/ap/au/af/jp (default us)false to disable the response cache~/.cache/diligent-activity-center-mcp)false to debug the OIDC flow with a visible browserRegional base URLs: US, Canada, Europe, Asia, Australia, Africa, Japan, South America. The PAT can be reused from sibling MCPs (Issues, Projects, ERM) — same token, different application surface.
Hard rules.
dry_run=true. Bulk mutations additionally require confirm_token matching the affected count.FEATURE_LIVES_IN_QUICKSIGHT_IFRAME with a workaround pointer.Origin, Referer, and Sec-Fetch-* headers. The client sends them automatically; if you call directly via curl, mirror them.ac_get_author_count surfaces this.ac_validate_schedule_payload pre-flight-checks all of these.Getting started.
1. Install via the one-liner above, or clone from GitHub
2. Set your environment variables — AC_BASE_URL, AC_API_TOKEN, AC_ORG_ID, AC_TENANT_URL, AC_UI_EMAIL, AC_UI_PASSWORD, AC_UI_ORG
3. Restart Claude Code: /mcp reset diligent-activity-center
4. Start with ac_health_check to verify both surfaces (HighBond + AC backend) are reachable
5. Run ac_list_capabilities to discover all 96 tools and their categories
6. ac_warmup_reference_cache before bulk operations
7. ac_open_preset({slug: "my_activities_internal"}) to get a QuickSight embed URL for the default landing dashboard