// November 19, 2025v0.10.3
Platform
MCP Gateway
Introducing Dynamic Toolsets v2. Our new approach combines the strengths of both methods into a unified system that exposes three core tools:
search_tools, describe_tools, and execute_tool. The key insight is that tool descriptions provide structure and discoverability, while semantic search provides efficiency and natural language discovery. Together, they create a system that scales naturally without sacrificing usability.
Features
-
Speakeasy Functions composition -
Functionsinstances are now composable. This allows some similarity to Hono's grouping pattern, making it possible to split and organize Speakeasy Functions code bases more than before. Before:
Now, with composability:const functions = new Functions({envSchema: {TRAIN_API_KEY: z.string().describe("API key for the train service"),FLIGHT_API_KEY: z.string().describe("API key for the flight service"),},}).tool({name: "train_book",description: "Books a train ticket",}).tool({name: "train_status",description: "Gets the status of a train",}).tool({name: "flight_book",description: "Books a flight ticket",}).tool({name: "flight_status",description: "Gets the status of a flight",});// train.tsconst trainFunctions = new Functions({envSchema: {TRAIN_API_KEY: z.string().describe("API key for the train service"),},}).tool({name: "train_book",description: "Books a train ticket",}).tool({name: "train_status",description: "Gets the status of a train",});// flight.tsconst flightFunctions = new Functions({envSchema: {FLIGHT_API_KEY: z.string().describe("API key for the flight service"),},}).tool({name: "flight_book",description: "Books a flight ticket",}).tool({name: "flight_status",description: "Gets the status of a flight",});// index.tsimport { trainFunctions } from './train'import { flightFunctions } from './flight'const travelFunctions = new Functions().extend(trainFunctions).extend(flightFunctions); - Integrate dynamic toolsets v2 with progressive and semantic search in one feature
- Introduce announcement modal for new Speakeasy Functions release
- Add Resend example demonstrating email reminders via the Resend API
- Support non-blocking deployment creation for non-intrusive deployment initiation
- Update product description tagline and rearrange sidebar UI elements
- Index embedding tags to enhance search and retrieval operations
- Add tags to embeddings table for dynamic toolsets phase two
Fixes
- Wrap long environment variable names in Playground auth tab to prevent overflow
- Fix Moonshine button issues and adjust various UI elements
- Ensure dark mode compatibility for Shiki themes
- Increase function reap batch size for improved resource recovery
- Enhance deployment tracking and local CLI setup processes
- Update esbuild configuration with CommonJS require shim for better compatibility
- Correct textual content in create-function CLI for improved clarity