Skip to main content
Glama
This connector has been deprecated

Duplicate listing. The official PumpGTM connector is https://glama.ai/mcp/connectors/com.pumpgtm/mcp (same server, https://mcp.pumpgtm.com/mcp).

Cancel a pending lead move

cancel_lead_move
Idempotent

When requested by the customer, cancel the exact operationId during its five-second window and before execution starts. This is Undo during the five-second delay: cancellation competes atomically with execution. Inspect the returned status; cancelled confirms no people moved, while running or completed means cancellation was too late. A pending result with serverNow at or after executeAfter also means the cancellation window closed. Repeating cancellation is safe. This never reverses a completed move, rewinds progress, approves messages or sends outreach. Returns the operation with its current status.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "operationId": "<operationId>"
    },
    "name": "cancel_lead_move"
  }
}

Input Schema

NameRequiredDescriptionDefault
operationIdYesThe operationId you supplied to move_leads.
workspaceIdNoA teammate's workspace you may manage: an active workspace ID from list_team_workspaces. Omit for your own workspace. Supply on every call for a teammate.

Output Schema

NameRequiredDescriptionDefault
statusYespending, running, completed, cancelled or failed.
resultsYesConfirmed per-person outcomes so far.
serverNowYesServer time of this read; compare with executeAfter.
movedCountYesPeople confirmed moved so far.
sequenceIdYesDestination sequence ID.
operationIdYesThe move operation's ID; keep it to read or cancel the move.
blockedCountYesPeople confirmed blocked so far.
executeAfterYesTime the move starts; cancel_lead_move works only before this.
requestLeadIdsYesEvery person requested. Anyone missing from results is still unconfirmed and needs review.
sourceSequenceIdNoSource sequence the move was bound to, when one was supplied.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / operationId / description
      Added value: +"The operationId you supplied to move_leads."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "blockedCount": {
      +      "description": "People confirmed blocked so far.",
      +      "type": "number"
      +    },
      +    "executeAfter": {
      +      "description": "Time the move starts; cancel_lead_move works only before this.",
      +      "type": "string"
      +    },
      +    "movedCount": {
      +      "description": "People confirmed moved so far.",
      +      "type": "number"
      +    },
      +    "operationId": {
      +      "description": "The move operation's ID; keep it to read or cancel the move.",
      +      "type": "string"
      +    },
      +    "requestLeadIds": {
      +      "description": "Every person requested. Anyone missing from results is still unconfirmed and needs review.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "results": {
      +      "description": "Confirmed per-person outcomes so far.",
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "leadId": {
      +            "description": "The person's lead ID.",
      +            "type": "string"
      +          },
      +          "message": {
      +            "description": "Plain-language explanation to show the customer.",
      +            "type": "string"
      +          },
      +          "person": {
      +            "description": "The person's name, or null when unknown.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "reason": {
      +            "description": "Why the person is blocked (or a safety note), or null. Codes such as outreach_started or contact_stopped.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "sourceSequenceId": {
      +            "description": "Sequence the person was in, or null.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "status": {
      +            "description": "moved or blocked.",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "leadId",
      +          "person",
      +          "sourceSequenceId",
      +          "reason",
      +          "message",
      +          "status"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "sequenceId": {
      +      "description": "Destination sequence ID.",
      +      "type": "string"
      +    },
      +    "serverNow": {
      +      "description": "Server time of this read; compare with executeAfter.",
      +      "type": "string"
      +    },
      +    "sourceSequenceId": {
      +      "description": "Source sequence the move was bound to, when one was supplied.",
      +      "type": "string"
      +    },
      +    "status": {
      +      "description": "pending, running, completed, cancelled or failed.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "operationId",
      +    "sequenceId",
      +    "requestLeadIds",
      +    "status",
      +    "executeAfter",
      +    "serverNow",
      +    "movedCount",
      +    "blockedCount",
      +    "results"
      +  ],
      +  "type": "object"
      +}
  2. Added

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=true) by explaining the atomic race with execution, the meaning of each returned status, the executeAfter/serverNow boundary condition, and safe repeat calls. It also clarifies that this is not a reversal and performs no outreach, which the structured hints cannot convey.

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?

Front-loads the action and timing constraint, then layers status interpretation and exclusions in a logical order. A few clauses restate the same idea ('This is Undo during the five-second delay' alongside the window sentence), but no sentence is wasted.

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?

Despite an output schema existing, the description proactively explains how to read the returned status and the pending/serverNow edge case, which is exactly the ambiguity an agent would hit. Nothing needed to invoke or interpret this call 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 coverage is 100%, so both parameters are already self-documenting, and the description only reinforces that operationId is the exact handle from move_leads. The workspaceId teammate-scoping behavior is documented in the schema but never echoed or emphasized in the description, so it adds marginal value.

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 ('cancel the exact operationId') and pins the scope to the five-second pre-execution window. It also ties itself to the sibling that produces the handle ('the operationId you supplied to move_leads'), so an agent can distinguish it from move_leads or get_lead_move without opening either schema.

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?

Gives a clear trigger ('When requested by the customer') and a hard precondition ('during its five-second window and before execution starts'), plus explicit exclusions of what the tool will not do. It stops short of naming a fallback tool when the window has closed, leaving the agent to infer that get_lead_move or similar should be used to inspect status.

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