Skip to main content
Create server-only tools that call the Darwin SDK or REST API. Keep the public Search schema separate from Action mutations so the UI can render different confirmation behavior. Copy the Vercel AI SDK MCP recipe.
  • selected capabilityId and capabilityRevision
  • durable actionId
  • stable requestId for each logical mutation
  • current status, actionRequired, and availableActions
Stream explanatory model text separately from the authoritative Action result. A finished text stream does not mean external work completed.

UI responsibilities

Keep the stream reconnectable and the Action state durable. A page refresh should read the stored actionId, not create a new Action.
Last modified on September 22, 2026