Skip to main content
Back to all releases
// November 10, 2026v1.51.1

Platform

MCP Gateway

Long MCP connections now reconnect cleanly, and gateway errors say what's actually wrong

A remote or tunneled server's long-lived MCP stream now closes with a reconnect hint before the load balancer's own deadline cuts it off, so a long-running session reconnects on its own instead of dropping. Organization gateways now pick up more of the servers you're entitled to reach, Tool logs record the actual reason a hosted call failed instead of leaving it blank, and the plugin banner on a server's overview explains exactly why it's in each plugin it belongs to. The built-in "Speakeasy Approvals" MCP server is also gone: held tool calls now always go through the shared approvals route instead of a per-project server. More on this in Organization and project gateways and Plugins.

Features

  • Organization gateways now include more of the servers you're entitled to reach #8461 - Organization gateways now include supported servers that offer typed upstream credentials when auth enforcement is on, even without a personal OAuth registration linked to the gateway sign-in. Connection setup and access checks still apply. (Author: @danielkov)
  • The plugin banner now explains why a server is in each plugin #8686 - An MCP server's overview now lists every plugin it's published to and why: the Default plugin takes every enabled server, and a plugin assigned to a role takes the servers that role can use, including servers added later. Organization admins see the role reasons. (Author: @bradcypert)
  • Approval policies no longer need their own MCP server #8847 - Saving an approval policy no longer creates a per-project "Speakeasy Approvals" server. Held tool calls now always point agents at the shared /approvals-mcp route, which accepts a key, so there's one less server cluttering your MCP list and gateway membership. (Author: @mfbx9da4)

Bug fixes

  • Long-lived MCP streams now rotate before they get cut off #8622 - A remote or tunneled server's long-lived listen stream, and a chat turn stream, now closes with a reconnect hint at a configurable maximum age before the load balancer's own deadline cuts it off, so a long-running session reconnects cleanly instead of dropping. (Author: @bflad)
  • Gateways no longer list built-in servers as members #8762 - Consent pages and server lists on a gateway now show only the servers it can actually reach, following the built-in approvals server's removal above. (Author: @danielkov)
  • Failed hosted tool calls now record their real error #8708 - A failed hosted tool call, direct or through a gateway, now records its most specific client-safe error on its Tool logs row, and a describe_server or describe_tools call that can't reach a member now gets its own failed row naming the reason instead of a blank one. (Author: @mfbx9da4)
  • Connection health now tells apart "never signed in" from "setup changed" #8702 - A gateway member whose sign-in setup an admin changed now records as setup_changed, apart from a server you simply haven't signed in to yet, and names the person when reconnecting fixes it versus an admin when it doesn't. (Author: @daviddanialy)
  • An agent's failed authorization checks no longer drown in routine denials #8755 - Gateways now record an authorization check only for the servers a call actually names, instead of one denied mcp:connect check per private server or tool you have no grant for, so failed checks show real denials instead of noise. (Author: @mfbx9da4)
  • An MCP server under enforcement no longer inherits another server's sign-in client #8632 - With upstream auth enforcement on, a server now offers only the upstream sign-in clients configured for it, instead of picking up a client another server on the same issuer uses, or one a deleted server left behind. (Author: @danielkov)
  • Shared skill pages on a custom domain work again #8301 - Shared skill pages served from a custom domain now route to the server backend instead of failing to load. (Author: @simplesagar)
  • Slack tool errors now say what configuration is missing #8727 - A Slack platform tool call on a server with no Slack token, a rejected token, or a token missing a needed scope now fails with a message naming what's missing and who can fix it, instead of a generic internal error. (Author: @mfbx9da4)
  • Calling a tool a server doesn't have no longer shows as a Speakeasy error #8655 - Connection history now keeps an unknown tool name out of its error reporting, so it no longer reads as a problem on Speakeasy's side. (Author: @daviddanialy)
  • Failed OpenClaw gateway calls no longer sit stuck on "Pending" #8710 - The OpenClaw observability plugin now reports every call still waiting for a result at the end of each run, so a failed call shows as failed with its error instead of hanging as Pending. Reinstall the plugin to get this. (Author: @mfbx9da4)
  • Clearer guidance for updating, reinstalling, or removing OpenClaw #8786 - The agent install step now has a folded section explaining that OpenClaw doesn't update the Speakeasy hooks plugin on its own, with the commands to remove it cleanly. A key issued from an existing agent's Install step now also keeps its hook ingestion grant. (Author: @mfbx9da4)
  • A tool call interrupted by a deploy now fails cleanly instead of hanging #8584 - A tool call or function resource read still running 45 seconds into a shutdown is now cancelled with a proper error instead of being cut off when the deployment closes the connection. (Author: @bflad)
  • The Amplitude and Sentry catalog entries now link to their own MCP docs #8410, #8594 - Both catalog entries now link directly to their provider's MCP documentation instead of a generic page. (Author: @cursor)
Sagar Batchu
Sagar Batchu
View on GitHub