Skip to main content
Glama

List Deals

list_deals
Read-onlyIdempotent

Lists sales opportunities (deals), optionally filtered by stage or owner, or reads one deal with its recent activity by its id. value is the deal's estimated worth in currency units, in the deal's currency; probability is the effective likelihood (the owner's estimate, else the stage default), the figure the weighted pipeline uses; onHold marks a paused pursuit. stage open returns the live pipeline: every undecided stage, paused pursuits left out. This is the sales pipeline: opportunities, not priced proposals and not expected cash. Answers questions like "what deals are in progress?", "what is in the sales pipeline?", or "what deals does this owner have?".

Input Schema

NameRequiredDescriptionDefault
idNoReturn this one deal in full under `deal`, by the id an earlier list result gave. The other arguments are then ignored.
limitNoMax results (default 20, max 100)
stageNoFilter by pipeline stage, open for the live pipeline (undecided and not on hold), or closed for every decided outcome (won, lost or abandoned).
owner_idNoFilter by owner user ID

Output Schema

NameRequiredDescriptionDefault
dealNoSet when id is given
dealsNo
totalNoEvery deal that matches, not only the ones returned

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / stage / description
      Previous value: -"Filter by pipeline stage."New value: +"Filter by pipeline stage, open for the live pipeline (undecided and not on hold), or closed for every decided outcome (won, lost or abandoned)."
    • changedInput schema / properties / stage / enum
      Previous value: -[
      -  "prospect",
      -  "qualified",
      -  "proposal",
      -  "negotiation",
      -  "closed_won",
      -  "closed_lost",
      -  "closed_abandoned"
      -]New value: +[
      +  "open",
      +  "closed",
      +  "prospect",
      +  "qualified",
      +  "proposal",
      +  "negotiation",
      +  "closed_won",
      +  "closed_lost",
      +  "closed_abandoned"
      +]
    • changedOutput schema / properties / deals / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "properties": {
      -        "clientId": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "createdAt": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "currency": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "expectedCloseDate": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "id": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "name": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "ownerId": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "ownerName": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "probability": {
      -          "anyOf": [
      -            {
      -              "type": "number"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "stage": {
      -          "anyOf": [
      -            {
      -              "type": "string"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "value": {
      -          "anyOf": [
      -            {
      -              "type": "number"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ],
      -          "description": "Estimated deal value, in currency units"
      -        }
      -      },
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "properties": {
      +        "clientId": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "createdAt": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "currency": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "expectedCloseDate": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "id": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "name": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "onHold": {
      +          "anyOf": [
      +            {
      +              "type": "boolean"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "The pursuit is paused and left out of the live pipeline"
      +        },
      +        "ownerId": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "ownerName": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "probability": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Effective likelihood, 0 to 100: the owner's estimate, else the stage default"
      +        },
      +        "stage": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "value": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Estimated deal value, in currency units"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description adds genuinely useful semantics about returned content: value as estimated worth in the deal's currency, probability as the effective weighted-pipeline figure, and onHold as paused pursuit.

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-loaded with the core verb and resource, then scope and examples. The mid-sentence glosses of value/probability/onHold are output-field definitions rather than parameter guidance, which is slightly off-placement, but they are informative and reasonably tight.

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?

An output schema exists, so return values need not be explained, yet the description still glosses key fields and fully covers the id-vs-filter modes and domain boundaries. Complete for an agent to call correctly, with only mild redundancy.

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%, so the schema already documents id, limit, stage, and owner_id, including the stage enum and the 'other arguments ignored' behavior. The description restates the stage/owner filtering without adding format or syntax beyond the schema.

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+resource (lists sales opportunities/deals) and explicitly scopes the domain in both directions: 'opportunities, not priced proposals and not expected cash.' This cleanly separates it from siblings like list_proposals and forecast_cash_flow.

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 concrete when-to-use triggers ('what deals are in progress?', 'what is in the sales pipeline?') and rules out the adjacent concepts it is not for, plus explains what stage open returns. Nothing is left to inference about when to pick this tool.

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