Skip to main content
Glama

Update pipeline

update_pipeline
DestructiveIdempotent

Update a pipeline by pipeline_key (or pipeline_id; id wins): rename it (label), re-point it (applies_to), replace its stages (including each stage's entry requirements) or set which opportunity types default to it (default_for_types). Existing stage keys stay stable; a stage with open deals can't be removed (reassign them first). Omit both key and id to reshape the WORKSPACE DEFAULT pipeline — only stages apply there. An unknown key or id returns the known pipelines instead of an error. Admin-only. Returns the updated pipeline.

When to use: When an admin wants to rename a pipeline, change its stages or their entry requirements, re-point it, or set which deal types default onto it; omit the pipeline key to reshape the workspace default pipeline's stages.

Example: Don't let a deal reach Proposal until Metrics and an economic buyer are filled in.

Input Schema

NameRequiredDescriptionDefault
labelNoRename the pipeline.
stagesNoReplace the stage list ([{key,label,role,is_closed?,is_won?,requires?,requires_mode?}]). Keep existing keys stable; a stage with open deals can't be removed. Replace-all: a stage sent without `requires` loses its requirements, so echo them back when only renaming or reordering.
applies_toNoThe object key this pipeline runs on (e.g. opportunity). Named pipelines only.
pipeline_idNoThe pipeline to edit by id (uuid). Prefer pipeline_key; id wins if both are given.
pipeline_keyNoThe named pipeline to edit, by its stable key (from describe_schema's pipelines section). Omit BOTH pipeline_key and pipeline_id to edit the workspace default pipeline (only `stages` applies there).
default_for_typesNoOpportunity `type` value keys this pipeline is the default for — new deals of a mapped type start on it; a type maps to one pipeline. Pass [] to clear. Named pipelines only; registry value keys, not fixed type names.

Output Schema

NameRequiredDescriptionDefault
pipelineNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
  2. Changed4 schema fields changed
    • removedOutput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • removedOutput schema / additionalProperties
      Removed value: -{}
    • removedOutput schema / properties / pipeline / additionalProperties
      Removed value: -{}
    • removedOutput schema / properties / pipeline / propertyNames
      Removed value: -{
      -  "type": "string"
      -}
  3. Changed5 schema fields changed
    • changedInput schema / properties / default_for_types / description
      Previous value: -"The opportunity `type` VALUE KEYS this pipeline is the default for — new deals of a mapped type start on it. A type maps to only one pipeline. Pass [] to clear the mapping. Named pipelines only; registry data, not fixed type names."New value: +"Opportunity `type` value keys this pipeline is the default for — new deals of a mapped type start on it; a type maps to one pipeline. Pass [] to clear. Named pipelines only; registry value keys, not fixed type names."
    • changedInput schema / properties / stages / description
      Previous value: -"Replace the stage list ([{key,label,role,is_closed?,is_won?,requires?,requires_mode?}], role one of unqualified/qualifying/active/commit/won/lost). Keep existing stage keys stable; a stage that still has open deals can't be removed. REPLACE-ALL: a stage you send without `requires` loses any requirements it had, so echo them back when you only mean to reorder or rename."New value: +"Replace the stage list ([{key,label,role,is_closed?,is_won?,requires?,requires_mode?}]). Keep existing keys stable; a stage with open deals can't be removed. Replace-all: a stage sent without `requires` loses its requirements, so echo them back when only renaming or reordering."
    • changedInput schema / properties / stages / items / properties / requires / description
      Previous value: -"Stage gate: the field keys a deal must have FILLED to ENTER this stage. Two namespaces — a plain field key on the object (amount_cents, close_date, a custom field key) and the active qualification framework's keys as \"qualification.<key>\" (describe_schema lists both). At most 10. Omit or pass [] for no gate — that is every workspace by default. A key the workspace can no longer fill is skipped rather than trapping the deal, and a backward move out of a gated stage is never blocked."New value: +"Stage gate: field keys a deal must have filled to ENTER this stage. Two namespaces — a plain field key on the object (amount_cents, close_date, a custom key) or a framework key as \"qualification.<key>\" (describe_schema lists both); at most 10. Omit or [] for no gate (every workspace's default). A key the workspace can no longer fill is skipped rather than trapping the deal, and a backward move is never blocked."
    • changedInput schema / properties / stages / items / properties / requires_mode / description
      Previous value: -"How hard the gate is. \"require\" (the default) refuses the move until the fields are filled; \"warn\" lets it through and reports what is still empty. Only meaningful alongside requires."New value: +"How hard the gate is: \"require\" (default) refuses the move until the fields are filled; \"warn\" lets it through and reports what is empty. Only meaningful alongside requires."
    • changedInput schema / properties / stages / items / properties / role / description
      Previous value: -"The stage's semantic role — unqualified, qualifying, active, commit, won or lost — which drives lens membership and the open-pipeline boundary; labels are free, roles are not. Omit to let the registry infer it from position and the closed/won flags."New value: +"Semantic role — unqualified, qualifying, active, commit, won or lost — which drives lens membership and the open-pipeline boundary (labels are free, roles are not). Omit to infer it from position and the closed/won flags."
  4. First observed

TDQS

A4.1/5.0
Behavior5/5

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

With annotations already declaring destructiveHint=true and idempotentHint=true, the description adds real behavioral context: admin-only authorization, unknown key/id returning the known pipelines instead of erroring, existing stage keys staying stable, a stage with open deals being unremovable (reassign first), and the replace-all destruction rule where a stage sent without `requires` silently loses its requirements. This goes well beyond the annotations.

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

Conciseness4/5

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

The first sentence is densely front-loaded with operations, precedence, constraints, and error behavior. However, the 'When to use' sentence largely restates the operations already listed in that opening sentence, and the trailing example ('Don't let a deal reach Proposal until...') illustrates a gate without tying back to a specific parameter, so there is some redundancy.

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

Completeness5/5

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

Return values are covered by the output schema and the description's closing note. For a 6-parameter mutation tool it covers identification (key/id/default), all mutation targets, gates, authorization, idempotency implications, and failure behavior — nothing an agent needs to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the nested stage object (requires, requires_mode, role) is already fully documented in the schema, including the key/id precedence and the omit-both default behavior. The description largely restates these, so baseline 3 applies; it adds only light emphasis on precedence rather than new semantics.

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

Purpose4/5

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

The description gives a precise verb+resource (update a pipeline) and enumerates the mutations it supports: rename (label), re-point (applies_to), replace stages/entry requirements, and set default_for_types. It clearly separates itself from define_pipeline and archive_pipeline by scope, but it never names a sibling explicitly, so it stops short of a 5.

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

Usage Guidelines4/5

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

There is an explicit 'When to use' clause scoping it to admins renaming pipelines, changing stages/gates, re-pointing, or setting defaults, plus the condition for editing the workspace default pipeline. No alternatives (define_pipeline, archive_pipeline, get_pipeline_summary) are named, and there are no negative exclusions, so it is clear context rather than full routing guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources