// October 9, 2026v1.40.2
Platform
Platform
MCP Gateway
A dashboard's cards can now share one filter bar instead of each carrying its own: pick a date range and the fields a card can be filtered by, and every card on the page answers within it. Save filters stores what you picked as what the dashboard opens on for everyone, and Reset filters returns to that. Adding a widget to a dashboard now works from wherever that widget lives, not just from the dashboard itself. Explore's catalog gains a
count_distinct aggregation and a skills dataset for ranking skill usage, and the same query engine is now available to Platform MCP once Explore is on for your organization.
Features
- Save a dashboard's filters as what it opens on for everyone — The shared filter bar sits above a dashboard's cards, offering a date range and the fields some card can be filtered by (user, agent, model, MCP server, status); every card answers within it. A dashboard opens on its saved filters, or the past seven days, until Save filters changes what it opens on next. (#7179, @subomi)
- Add a widget to a dashboard from wherever it lives — Add to dashboard joins the actions on a Widgets tab row or card and in the widget bar, picking one of the dashboards you can change or starting a new one with that widget as its first card. Saving the widget builder gets an Advanced section to place the new widget on a dashboard right away. (#7181, @subomi)
- Count the distinct values of a dimension in Explore — A
count_distinctaggregation answers how many different tools, servers, sessions, or people were involved, wherever the analytics catalog, Explore, or a saved widget uses it. (#7252, @subomi) - A skills dataset for ranking skill usage — A new dataset holds one row per skill invocation, so Explore, saved widgets, and dashboards can rank skills and count how many distinct skills were used, alongside the existing tool-call datasets. (#7257, @subomi)
- MCP server names in Explore match your Hooks display names — When two reported server names share one display name under Hooks settings, Explore now groups, filters, and counts them as one server instead of two. (#7258, @subomi)
- Platform MCP can run the same analytics queries Explore does —
describe_analytics_catalog,list_analytics_dimension_values, andrun_analytics_querylet an agent ask the same questions Explore answers, in the same vocabulary; the three tools are switched on by the same flag as Explore. (#7261, @subomi) - Plugin assignments gain an install mode for the device agent — An assignment can now be Required (installed, can't be turned off), Default (installed, can be turned off), or Available (off until the user turns it on); the observability plugin is always Required. (#7254, @bradcypert)
- Page a large tool-exposure read from Platform MCP —
get_mcpnow pages a server's tool list, returning the exposure version only on the page that completes the read, so a tool change can no longer be confirmed against a partly read list. (Organization admins, via Platform MCP.) (#7226, @simplesagar) - Configure reusable signals and sensors for message classification — Organizations Speakeasy has enabled it for can define reusable signals and sensors, with multi-label, exclusive-choice, and ordered-score modes, from the dashboard or through Platform MCP. Classification itself doesn't run yet, so what you configure here doesn't classify anything today. (#6693, @disintegrator; #7239, @disintegrator; #6727, @disintegrator)
Bug fixes
- Risk findings in a prompt attachment show their context — The risk-only transcript now windows around the prompt an attachment was sent with, instead of returning nothing for findings that belong to the attachment rather than a message. (#7351, @bradcypert)
- A toolset containing platform tools is no longer auto-distributed as a plugin — Toolsets with platform tools, including MCP-backed wrappers, are now excluded from automatic role-plugin delivery; manual memberships, MCP access, and assistant execution are preserved. (#7347, @alx-xo)
- Mapping a custom domain root to a hosted server no longer adds a second endpoint — The root picker now offers a hosted server only when it's already served on that domain. (#7295, @daviddanialy)
- A hosted server's own wrapper takes precedence over a gateway member built from the same toolset — Publishing plugins no longer fails as ambiguous for a hosted server whose toolset also backs a gateway member, and legacy
/mcp/<slug>calls now attribute correctly to that server. (#7294, @daviddanialy) - Saving a legacy toolset no longer fails over an address already in use — The toolset now saves and stays in its legacy state instead of conflicting with another server over a hosted address or slug it isn't trying to claim. (#7359, @daviddanialy)
- A retried Platform MCP write no longer spends your rate limit twice — Retrying a write that already committed now returns its stored result for free, and expired idempotency receipts are swept hourly instead of kept forever. (#7224, @simplesagar)
- Platform MCP tool errors fail safely instead of leaking internals — An unrecognized tool error is now logged with its full cause and answered with a generic refusal instead of raw database or internal error text. (#7221, @simplesagar)
- The MCP page keeps your search term when you navigate back — Going back from a server no longer clears the search you had on the MCP list. (#7397, @qstearns)
- Toasts follow the dashboard's own theme — Toasts now match the dashboard's light or dark setting instead of the operating system's, so text like the repository link after adding marketplace collaborators stays readable. (#7381, @bradcypert)
- Plugin manifests with a token or API-key prompt pass validation again — Claude plugin user settings now include the required type and title fields the manifest needs, so these plugins pass Claude Code's validation. (#7350, @alx-xo)
