◐ Shell
clean mode source ↗

improvement(workflow-mcp): single-source MCP tool params, deploy status, chip styling by waleedlatif1 · Pull Request #5029 · simstudioai/sim

…us, chip styling

- Make the start block input format the single source of truth for MCP tool
  parameter descriptions; the deploy modal writes them back collaboratively so
  they persist with the workflow and survive redeploys (fixes descriptions
  getting wiped on workflow edits)
- Derive the tool parameter schema from the deployed workflow instead of the
  draft, so a saved tool can never advertise params the running workflow lacks
- Add a Live / Update deployment status badge to the MCP tab, mirroring A2A
- Swap the legacy Textarea for ChipTextarea on the tool Description
- Extract the duplicated isDefaultDescription helper into one shared util

cursor[bot]

Bot reviewed Jun 13, 2026

greptile-apps[bot]

…aram descriptions

updateFieldDescription read only from the subblock store, but the display memo
falls back to the block's persisted inputFormat when the store entry is empty.
For workflows whose fields are hydrated from block defaults, editing a
description would have written [] and wiped every input field. Extract a shared
resolveInputFormatFields helper used by both the memo and the writer, and guard
against ever persisting an empty list.

cursor[bot]

@waleedlatif1

cursor[bot]

… descriptions

Map over the raw input-format array instead of the normalized one so editing a
parameter description no longer drops unnamed/in-progress fields from the start
block.

cursor[bot]

…le on the start block

Align the copilot deploy_mcp tool with the UI's single-source model: per-parameter
descriptions are now persisted onto the workflow's draft start block input format
(their durable home) so a later redeploy regenerates the tool schema from them
instead of wiping them. The tool schema is still set directly so descriptions take
effect immediately without a redeploy; both paths converge on the next deploy.

Also consolidate the duplicated socket-notify into a shared notifyWorkflowUpdated
helper used by the deploy handler, the workflow mutation handlers, and edit-workflow.

cursor[bot]

Adds deploy.test.ts (the handler previously had no test) covering: descriptions
written to the draft start block + socket notify, no-op when none supplied, no-op
when unchanged, and ignoring descriptions for fields absent from the start block.

cursor[bot]

…y fallback

Tools saved before descriptions moved to the start block store them only on the
tool schema. Show those as a fallback when the start block field has none, so they
stay visible; editing one writes through to the start block (migrating it durably).

cursor[bot]