Skip to main content
Glama

PumpGTM MCP server

Sales pipeline

get_pipeline
Read-onlyIdempotent

Read your workspace's CRM pipeline: opportunities with their company, stage, value and forecast, plus totals per currency. Use it to answer pipeline questions and to find company and opportunity IDs and revisions before editing. Money is in minor units and totals are separated by currency, never summed across currencies. Probabilities are explicit stage/team estimates, not calibrated predictions or verified revenue. Overdue and stale deals come first. Requires the CRM feature. Returns asOf, totals, opportunityCount, one page of opportunities and nextOffset.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_pipeline"
  }
}

Input Schema

NameRequiredDescriptionDefault
qNoSearch text matched against company name, domain, owner and deal title. Omit to list every deal in scope.
limitNoHow many opportunities to return in this page.
scopeNoActive excludes archived companies; archived and all preserve historical access.active
offsetNoPosition to start the page from; pass the previous call's nextOffset to read the next page.
currencyNoOnly deals in this currency code, such as USD. Omit for all currencies.
attentionNotrue returns only deals that are overdue or have gone 14 or more days without recorded contact.
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
asOfYesTime the forecast was computed.
totalsYesTotals keyed by currency code, in minor units, for every matching deal (not only this page).
nextOffsetYesOffset for the next page, or null when this is the last page.
opportunitiesYesThis page of opportunities, most urgent first.
opportunityCountYesNumber of matching opportunities across all pages.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / properties / attention / description
      Added value: +"true returns only deals that are overdue or have gone 14 or more days without recorded contact."
    • addedInput schema / properties / currency / description
      Added value: +"Only deals in this currency code, such as USD. Omit for all currencies."
    • addedInput schema / properties / limit / description
      Added value: +"How many opportunities to return in this page."
    • addedInput schema / properties / offset / description
      Added value: +"Position to start the page from; pass the previous call's nextOffset to read the next page."
    • addedInput schema / properties / q / description
      Added value: +"Search text matched against company name, domain, owner and deal title. Omit to list every deal in scope."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "asOf": {
      +      "description": "Time the forecast was computed.",
      +      "type": "string"
      +    },
      +    "nextOffset": {
      +      "description": "Offset for the next page, or null when this is the last page.",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "opportunities": {
      +      "description": "This page of opportunities, most urgent first.",
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "amount_minor": {
      +            "description": "Value in minor currency units, or null when unknown.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "company": {
      +            "additionalProperties": {},
      +            "description": "The company this deal belongs to.",
      +            "properties": {
      +              "archived_at": {
      +                "description": "When the company was archived, or null if active.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "domain": {
      +                "description": "Website domain, or null.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "id": {
      +                "description": "Company ID; pass it as company_id to the other CRM tools.",
      +                "type": "string"
      +              },
      +              "last_contact_at": {
      +                "description": "Latest recorded meeting, reply or product engagement, or null.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "lifecycle": {
      +                "description": "Team-assessed stage: prospect, onboarding, active, at_risk or churned.",
      +                "type": "string"
      +              },
      +              "name": {
      +                "description": "Company name.",
      +                "type": "string"
      +              },
      +              "next_review_on": {
      +                "description": "Next account review date, or null.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "owner": {
      +                "description": "Responsible teammate, or null.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "revision": {
      +                "description": "Current revision; pass it as expected_revision when editing with save_company.",
      +                "type": "number"
      +              },
      +              "success_plan": {
      +                "description": "Customer success plan text, or null.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "name",
      +              "revision"
      +            ],
      +            "type": "object"
      +          },
      +          "company_id": {
      +            "description": "Company this deal belongs to.",
      +            "type": "string"
      +          },
      +          "currency": {
      +            "description": "Currency code of amount_minor.",
      +            "type": "string"
      +          },
      +          "expected_close_on": {
      +            "description": "Expected close date, or null.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "forecast": {
      +            "additionalProperties": {},
      +            "description": "Explicit stage or team estimate, not a calibrated prediction.",
      +            "properties": {
      +              "basis": {
      +                "description": "stage_estimate, team_estimate or outcome (closed deals).",
      +                "type": "string"
      +              },
      +              "overdue": {
      +                "description": "true when the next step's due date has passed.",
      +                "type": "boolean"
      +              },
      +              "probability": {
      +                "description": "Estimated win probability in percent.",
      +                "type": "number"
      +              },
      +              "reasons": {
      +                "description": "Plain-language reasons behind the probability.",
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "stale": {
      +                "description": "true when there is no recorded contact for 14 or more days.",
      +                "type": "boolean"
      +              },
      +              "weighted_minor": {
      +                "description": "Value times probability, or null when the value is unknown.",
      +                "type": [
      +                  "number",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "probability",
      +              "basis",
      +              "reasons",
      +              "overdue",
      +              "stale",
      +              "weighted_minor"
      +            ],
      +            "type": "object"
      +          },
      +          "id": {
      +            "description": "Opportunity ID.",
      +            "type": "string"
      +          },
      +          "next_step": {
      +            "description": "Next agreed action, or null.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "next_step_due_on": {
      +            "description": "Due date of the next step, or null.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "probability_override": {
      +            "description": "Team-supplied win probability, or null when the stage estimate applies.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "revision": {
      +            "description": "Current revision; pass it as expected_revision when editing with save_opportunity.",
      +            "type": "number"
      +          },
      +          "stage": {
      +            "description": "new, qualified, meeting, proposal, negotiation, won or lost.",
      +            "type": "string"
      +          },
      +          "title": {
      +            "description": "Deal name.",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "company_id",
      +          "title",
      +          "stage",
      +          "amount_minor",
      +          "currency",
      +          "revision",
      +          "company",
      +          "forecast"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "opportunityCount": {
      +      "description": "Number of matching opportunities across all pages.",
      +      "type": "number"
      +    },
      +    "totals": {
      +      "additionalProperties": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "pipeline_minor": {
      +            "description": "Open deal value.",
      +            "type": "number"
      +          },
      +          "unvalued": {
      +            "description": "Open or won deals with no value set.",
      +            "type": "number"
      +          },
      +          "weighted_minor": {
      +            "description": "Open deal value weighted by probability.",
      +            "type": "number"
      +          },
      +          "won_minor": {
      +            "description": "Value recorded as won (not proof of payment).",
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "pipeline_minor",
      +          "weighted_minor",
      +          "won_minor",
      +          "unvalued"
      +        ],
      +        "type": "object"
      +      },
      +      "description": "Totals keyed by currency code, in minor units, for every matching deal (not only this page).",
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "asOf",
      +    "totals",
      +    "opportunityCount",
      +    "opportunities",
      +    "nextOffset"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / workspaceId / description
      Previous value: -"Team owner only: an active workspace ID from list_team_workspaces. Omit for your own workspace. Supply on every call for a teammate."New value: +"A 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."
  3. Changed1 schema field changed
    • addedInput schema / properties / workspaceId
      Added value: +{
      +  "description": "Team owner only: an active workspace ID from list_team_workspaces. Omit for your own workspace. Supply on every call for a teammate.",
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
  4. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Well beyond the readOnly/idempotent annotations, it discloses that money is in minor units, totals are never summed across currencies, probabilities are raw stage/team estimates rather than calibrated predictions, and overdue/stale deals are ordered first. These are exactly the caveats an agent would otherwise get wrong.

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?

Purpose, usage, unit conventions, caveats, ordering and return shape are packed into tight, front-loaded sentences with no filler. Each sentence contributes a distinct fact.

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?

For a paginated, currency-sensitive read tool with an output schema, the description covers scope, units, ordering, prerequisites, pagination via nextOffset and the top-level return fields. Nothing needed 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.

Parameters4/5

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

Schema coverage is already 100%, so the schema carries the parameter detail. The description still adds meaning by explaining the currency/total separation and the overdue-first ordering that gives the attention flag its purpose.

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 uses a specific verb and resource ('Read your workspace's CRM pipeline') and enumerates what the payload contains (company, stage, value, forecast, per-currency totals). It is clearly distinct from the AI-search, people-search and lead-oriented siblings, though it never names a sibling explicitly.

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?

It states two concrete jobs: answering pipeline questions, and resolving company/opportunity IDs and revisions before editing. It also flags the prerequisite ('Requires the CRM feature'). There are no explicit when-not-to-use exclusions, so it stops short of a 5.

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.