Skip to main content
Glama
zackscriven

ghl-mcp-server-v2

by zackscriven

ghl_workflow_update_definition

Idempotent

Replaces a workflow definition in full while guarding against concurrent edits with the current version; only draft workflows can be updated.

Instructions

WORKFLOW API — limited availability: enabled for selected sub-accounts only; others get 403 WORKFLOW_API_NOT_ENABLED_FOR_LOCATION (not a token or scope problem). Suggested order: get step types -> build the definition -> validate (validate_workflow_definition, read-only) -> create (always lands in draft) -> publish via update status. Rate limits: integration daily quota + 10s burst (X-RateLimit-* headers) AND a per-sub-account budget per 10s window with reads and writes counted separately; no Retry-After is sent. Logs: default and max range 30 days; retained 60 days. Update Workflow Definition Limited availability. The workflow API is currently enabled for selected sub-accounts only; any other sub-account receives 403 WORKFLOW_API_NOT_ENABLED_FOR_LOCATION.

Replace a workflow definition in full. This is a complete overwrite — any step absent from the request is deleted, so always read the current definition first and send it back modified — the definition carries its own version, so sending back what you read keeps you protected against overwriting a concurrent edit. A stale version is rejected with 422 and nothing is written.

Draft only. A published workflow is rejected with 409: the overwrite would replace steps under contacts currently moving through it. Set the workflow to draft with Update Workflow Status, update it, then publish it again.

Order matters. Changing status advances the version, so read the definition after setting the workflow to draft: draft → read → update → publish. Reading first and drafting second leaves you holding a stale version. Endpoint: PUT /workflows/{workflowId}/definition (Version header: v3; source: v3/workflows-v3.json) OAuth scopes: workflows.write

Input Schema

NameRequiredDescriptionDefault
bodyYesRequest body (schema carried verbatim from the official OpenAPI spec).
locationIdYesSub-account (location) ID the workflow belongs to
workflowIdYesWorkflow ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.1.0

TDQS

A4/5.0
Behavior2/5

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

The description is unusually transparent — full-overwrite deletion of absent steps, 422 on stale version, 409 on published workflows, 403 availability gate, rate-limit shape — but this directly conflicts with the annotation destructiveHint=false: a call that deletes every step omitted from the request IS a destructive update, and the description's stale-version rejection also undercuts idempotentHint=true (replaying the same body fails). The description is the more accurate source, but the agent receives contradictory signals from the two channels.

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

Conciseness3/5

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

The body is well front-loaded: limited availability, then the overwrite warning, then draft-only, then ordering. However the opening block drags in API-wide rate-limit budgets and log retention ('max range 30 days; retained 60 days') that have no bearing on invoking an update — wasted attention for the caller.

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 high-risk mutation with no output schema, the description covers prerequisites, failure modes, ordering and version safety thoroughly. The remaining gap is what a successful call returns (only the status code/path is named), which the caller may want in order to chain into a publish.

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?

Schema coverage is 100%, so the baseline is 3; the description goes beyond it by explaining how `version` works (opaque, echo it back, stale value rejected before anything is written) and how the overwrite interacts with step IDs and in-flight contacts. It does not add anything about workflowId/locationId, which the schema already covers.

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?

States a specific verb and resource ('Replace a workflow definition in full') and immediately distinguishes itself from siblings by noting the draft-only requirement and pointing at Update Workflow Status / Validate Workflow Definition. An agent can distinguish it from create, get_definition and update_status without reading any schema.

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?

Gives an explicit ordered procedure (get step types -> build -> validate -> create -> publish), an explicit pre-condition sequence for this call (draft -> read -> update -> publish), and an explicit when-not-to-use case (published workflow returns 409). It even explains why the naive ordering fails.

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

Deploy Server

Other Tools