Skip to main content
Glama

update_step

Modify a specific workflow step by merging updates into existing fields while preserving all other steps and data unchanged.

Instructions

Update a single step in a workflow by step ID. Only the specified fields are merged — all other steps and fields remain unchanged. This is SAFER than update_workflow with steps because it cannot accidentally replace or delete other steps.

Use this instead of update_workflow when you only need to change one step (e.g., update a prompt, change inputs, modify entry conditions). Deep-merges nested objects like pipelineStepPrompt, stepInputData, and entryConditions.

For live workflows, changes are routed to a draft snapshot (same behavior as update_workflow).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
workflowIdYesThe workflow ID
stepIdYesThe step ID to update (e.g., "analyze", "scrape-company")
updatesYesPartial step updates to merge. Examples: { name: "New Name" }, { pipelineStepPrompt: { template: "..." } }, { stepInputData: { url: "{{input.url}}" } }

Implementation Reference

  • MCP tool registration for "update_step". It accepts workflowId, stepId, and updates, then calls client.updateStep to perform the operation.
        server.tool(
            'update_step',
            `Update a single step in a workflow by step ID. Only the specified fields are merged —
    all other steps and fields remain unchanged. This is SAFER than update_workflow with steps
    because it cannot accidentally replace or delete other steps.
    
    Use this instead of update_workflow when you only need to change one step (e.g., update a prompt,
    change inputs, modify entry conditions). Deep-merges nested objects like pipelineStepPrompt,
    stepInputData, and entryConditions.
    
    For live workflows, changes are routed to a draft snapshot (same behavior as update_workflow).`,
            {
                workflowId: z.string().describe('The workflow ID'),
                stepId: z.string().describe('The step ID to update (e.g., "analyze", "scrape-company")'),
                updates: z.record(z.string(), z.any()).describe('Partial step updates to merge. Examples: { name: "New Name" }, { pipelineStepPrompt: { template: "..." } }, { stepInputData: { url: "{{input.url}}" } }'),
            },
            async ({ workflowId, stepId, updates }, extra) => {
                const client = clientFactory(extra);
                const result = await client.updateStep(workflowId, stepId, updates);
                return {
                    content: [{
                        type: 'text' as const,
                        text: JSON.stringify(result, null, 2),
                    }],
                };
            }
  • The underlying client implementation that sends the PATCH request to the API to update a workflow step.
    async updateStep(workflowId: string, stepId: string, updates: Record<string, any>) {
        return this.request(`/workflows/${workflowId}/steps/${stepId}`, {
            method: 'PATCH',
            body: JSON.stringify({ updates }),
        });
    }
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does an excellent job explaining the merge behavior ('Only the specified fields are merged — all other steps and fields remain unchanged'), safety characteristics ('SAFER than update_workflow'), deep-merge behavior for nested objects, and draft snapshot routing for live workflows. The only minor gap is not mentioning error conditions or response format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured and efficient. It starts with the core purpose, immediately explains the safety advantage, provides usage guidance with examples, details behavioral characteristics, and ends with draft behavior context. Every sentence adds essential information with zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description does an excellent job covering purpose, usage, safety, merge behavior, and draft routing. It provides sufficient context for an agent to use the tool correctly. The only minor gap is not describing the return value or error conditions, which would be helpful given the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds meaningful context about how the 'updates' parameter works ('Partial step updates to merge'), provides concrete examples of what can be updated, and explains the deep-merge behavior for nested objects. This significantly enhances understanding beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Update a single step in a workflow by step ID'), identifies the resource ('step in a workflow'), and explicitly distinguishes it from its sibling 'update_workflow' by explaining it's safer for single-step modifications. This provides perfect clarity about what the tool does and how it differs from alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool ('Use this instead of update_workflow when you only need to change one step') with concrete examples (e.g., 'update a prompt, change inputs, modify entry conditions'). It also specifies the safety advantage over the sibling tool, making the usage context perfectly clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Agentled/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server