You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Minor Changes
0883df1: Add the staff-only describeMcpServerHealth and getMcpServerToolCalls admin methods. The first reports one MCP server's authentication configuration and session counts. The second reports its tool call outcomes and series over a 14, 30 or 90 day window.
1cad72d: Add ChatGPT Desktop as an MCP client on the hosted install page and in gram install chatgpt-desktop, with Developer mode and custom connector steps
matched to the server's authentication.
e97ebb8: Pin the OAuth redirect URI and client identity URLs that remote session clients register with upstream providers. GRAM_OUTBOUND_CALLBACK_URL fixes the origin for existing clients so a server URL change cannot move them, and GRAM_REGISTRATION_CALLBACK_URL records a new origin on organization-owned clients created from now on. Remote session clients now report their callback_url, and remoteSessionClients.getNewClientCallbackUrl returns the redirect URI a new client will register; the dashboard shows these instead of deriving the URL from the server URL.
Patch Changes
4b35f8d: User session issuers gain an authorization server mode and a pinned issuer URL, and user sessions record the MCP server their token is bound to. Existing issuers keep one authorization server per MCP server, and existing sessions are unchanged.
72cdeae: Agent sessions get generated chat titles again. Sessions captured through unified hook ingest never asked for a title, so they kept the truncated first prompt they were seeded with, and archived Anthropic inference conversations all read "Claude inference conversation". Both paths now schedule title generation, which recognizes those stand-in titles and replaces them while leaving manually chosen names and channel labels alone. Titles are generated with a small fast model over a bounded slice of the transcript, so an agent session with multi-kilobyte turns no longer times out before it is named.
a67c7ca: Add search_tool_calls and list_attribute_keys to the Platform MCP. The search lists one project's tool calls across every MCP server over up to 30 days, narrowed by tool name text, error text, outcome, configured MCP server, person reference, and custom attribute filters, with opaque cursors, masked identities, and no tool inputs or outputs. Attribute key discovery lists the custom (@-prefixed) and filterable system keys present in the window. System attributes that carry tool content, an HTTP header, or a person's identity are refused as filters and withheld from key discovery, while the custom @-prefixed keys a project's own integrations attached are listed and allow every operator. Paging holds the observation window fixed at the interval the first page read.
23e32ef: Add search_users and get_user_metrics_summary to the Platform MCP. search_users finds the people observed in one project's telemetry by partial identity over up to 30 days and returns masked identities, categorical activity evidence, last-seen times, and short-lived project-scoped person references; get_user_metrics_summary takes one of those references and returns the person's call volume, failures, the servers their tools name, and their most-failing tools without the raw identity. Both are organization-admin reads, metered on the sensitive diagnostics budget, and audited as attribution reads.
08b18f6: Let an agent put a newly pushed tool onto an existing MCP server through the Platform MCP. list_project_tools reports the tools a project produces and the function or API document each one came from, get_mcp now reports the tool list a hosted server exposes, and add_tools_to_mcp / remove_tools_from_mcp change that list one tool at a time under confirmation, an expected version and an idempotency key. The change is computed inside the transaction that reads the current list, so a concurrent edit can no longer silently drop tools, and the result names the plugins the change republishes.
cb41b8f: Per-endpoint MCP access tokens are now bound to the host that minted them. A token whose iss names another host (server URL, an extra platform host such as ai.speakeasy.com, or a custom domain) is refused with the usual 401 challenge, so the client refreshes or reauthorizes on the host it is using, and the rejection is counted with the issuer_mismatch reason. The authentication host counts as the server URL. Dashboard-minted tokens, tokens without iss, private network ingress, and internal callers keep their current behaviour.
bcaa0ca: Pin the remaining URLs that external systems store to the outbound callback origin (GRAM_OUTBOUND_CALLBACK_URL) instead of the server URL: the MCP login IdP callbacks (/mcp/idp_callback, /x/mcp/idp_callback, including the federated callback sent to customer IdPs), the Platform MCP IdP callback, and the assistant MCP auth CIMD client_id and redirect_uri. A federated login's IdP callback uses its trusted client's recorded callback origin when it has one, so it shares a host with that client's remote_login_callback; the remote login browser hop follows the callback origin recorded on the challenge. With the default configuration nothing changes.
2a33339: Anthropic inference hook transcripts delivered without a session id now continue the conversation that already holds their history instead of starting a new one on every request. Products that omit the session id, such as Claude Design, previously produced one chat per inference call with the full transcript copied into each, which multiplied stored messages, risk scans and model calls by the length of the conversation.
3cd86b5: Opening an MCP server's install page from a link on another site no longer returns 403. Browser GETs to /mcp/{slug} that accept HTML keep safe-method semantics in the Origin check, so the install page renders; cross-site SSE GETs are still rejected.
50aaf1e: The Platform MCP plugin ships a review-skill-suggestions workflow skill that walks an administrator through a project's suggested skill improvements: reading the queue and the evidence behind each change, deciding per change, and approving, correcting, or dismissing it with explicit confirmation, then checking the skill's new version.
e8acaf2: Platform MCP clients can now approve or dismiss a proposed skill improvement with approve_skill_suggestion and dismiss_skill_suggestion, the same review the dashboard offers. Approving records the reviewed changes, or a corrected SKILL.md, as the skill's new version and closes the suggestion; changes proposed after the review are never taken.
914bd14: list_skill_suggestions on the Platform MCP accepts omit_diffs to return each proposed change's ID, rationale and evidence counts without its diff, so an agent can triage a large suggestion queue before reading individual changes. Diffs are still returned by default.
2878e60: Fix Slack previews of platform links showing a broken Speakeasy image. The preview now uses the opaque sticker logo, which Slack can decode and which stays visible in dark mode.