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).

Get outreach analytics

get_analytics
Read-onlyIdempotent

Read the same outreach results as /analytics: totals, daily activity, Plays and their Sequences, message-step performance, channels and highest/lowest eligible results. Defaults to range=30d and scope=workspace. Team scope requires a personal OAuth or personal delegation key belonging to a current Team owner/admin, used from its own home workspace; shared workspace and operator keys cannot read team scope. Enrolled is all-time current Sequence assignment; other activity uses the selected Pacific-time window. Reply rates use a full 14-day observation window and rankings require 30 eligible people per result. Null rankings mean insufficient or tied results. Clicks are unavailable; meetings have partial coverage. Cached report timestamps are returned explicitly. No message text, lead records, paid lookups or outreach actions. Use team scope only when the customer asks for the Team. Returns range, scope, timezone, period, totals, daily, plays, messages, channels, team (team scope only), rankings, methodology and coverage; read period, methodology and coverage, and never turn unavailable comparisons or tracking into zero.

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_analytics"
  }
}

Input Schema

NameRequiredDescriptionDefault
rangeNoHow many days back, in Pacific time, activity is counted; enrolled is always all-time.30d
scopeNoworkspace reads this workspace; team reads every workspace in the Team and needs a Team owner or admin's personal connection. Use team only when the customer asks for the Team.workspace
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
teamYesTeam scope only: the Team and each workspace's results; null for workspace scope.
dailyYesActivity per day across the window, oldest first.
playsYesEach Play's results, with its Sequences' results in sequences.
rangeYesThe window read: 7d, 30d or 90d.
scopeYesworkspace or team.
periodYesThe exact window read.
totalsYesResults across everything in scope.
channelsYesActivity per channel.
coverageYesWhat is not fully tracked.
messagesYesEach message step's results. The message text is never returned.
rankingsYesHighest and lowest eligible results; never turn null into zero.
timezoneYesThe timezone days are counted in.
methodologyYesHow results are counted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / range / description
      Added value: +"How many days back, in Pacific time, activity is counted; enrolled is always all-time."
    • addedInput schema / properties / scope / description
      Added value: +"workspace reads this workspace; team reads every workspace in the Team and needs a Team owner or admin's personal connection. Use team only when the customer asks for the Team."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "channels": {
      +      "description": "Activity per channel.",
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "id": {
      +            "description": "linkedin, email, x, instagram or whatsapp.",
      +            "type": "string"
      +          },
      +          "invites": {
      +            "description": "Connection requests sent on it (LinkedIn only).",
      +            "type": "number"
      +          },
      +          "messages": {
      +            "description": "Messages sent on it in the window.",
      +            "type": "number"
      +          },
      +          "name": {
      +            "description": "The channel's name for the customer.",
      +            "type": "string"
      +          },
      +          "touched": {
      +            "description": "People contacted on it in the window.",
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "name",
      +          "messages",
      +          "touched",
      +          "invites"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "coverage": {
      +      "additionalProperties": {},
      +      "description": "What is not fully tracked.",
      +      "properties": {
      +        "clicks": {
      +          "description": "unavailable: clicks are not tracked; never report them as zero.",
      +          "type": "string"
      +        },
      +        "meetings": {
      +          "description": "partial: some meetings are not captured, so treat meetings as a floor.",
      +          "type": "string"
      +        },
      +        "unmatchedSendEvents": {
      +          "description": "Sends in the window that could not be matched to a lead, so are left out of per-lead figures.",
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "clicks",
      +        "meetings",
      +        "unmatchedSendEvents"
      +      ],
      +      "type": "object"
      +    },
      +    "daily": {
      +      "description": "Activity per day across the window, oldest first.",
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "date": {
      +            "description": "The day (YYYY-MM-DD) in the report timezone.",
      +            "type": "string"
      +          },
      +          "invites": {
      +            "description": "Connection requests sent that day.",
      +            "type": "number"
      +          },
      +          "messages": {
      +            "description": "Messages sent that day.",
      +            "type": "number"
      +          },
      +          "replies": {
      +            "description": "First replies that day.",
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "date",
      +          "messages",
      +          "replies",
      +          "invites"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "messages": {
      +      "description": "Each message step's results. The message text is never returned.",
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "channel": {
      +            "description": "linkedin, email, x, instagram or whatsapp.",
      +            "type": "string"
      +          },
      +          "cohortReplies": {
      +            "description": "How many of those mature people replied within 14 days.",
      +            "type": "number"
      +          },
      +          "connections": {
      +            "description": "Connection requests accepted in the window.",
      +            "type": "number"
      +          },
      +          "enrolled": {
      +            "description": "People currently assigned to a Sequence, all-time (not limited to the window).",
      +            "type": "number"
      +          },
      +          "id": {
      +            "description": "The Play, Sequence or workspace id.",
      +            "type": "string"
      +          },
      +          "invites": {
      +            "description": "LinkedIn connection requests sent in the window.",
      +            "type": "number"
      +          },
      +          "mature": {
      +            "description": "People first messaged in the window whose full 14-day reply window has passed; the base of replyRate.",
      +            "type": "number"
      +          },
      +          "meetings": {
      +            "description": "Meetings recorded in the window; coverage is partial.",
      +            "type": "number"
      +          },
      +          "messages": {
      +            "description": "Messages sent in the window, across channels.",
      +            "type": "number"
      +          },
      +          "name": {
      +            "description": "Its name.",
      +            "type": "string"
      +          },
      +          "rankable": {
      +            "description": "True when it has enough mature people (minimumRankingSample) to compare.",
      +            "type": "boolean"
      +          },
      +          "replies": {
      +            "description": "People whose first reply came in the window.",
      +            "type": "number"
      +          },
      +          "replyRate": {
      +            "description": "cohortReplies over mature, 0 to 1; null when no one is mature yet (never read as zero).",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "sequenceName": {
      +            "description": "The Sequence the step belongs to.",
      +            "type": "string"
      +          },
      +          "touched": {
      +            "description": "People contacted at least once in the window.",
      +            "type": "number"
      +          },
      +          "variant": {
      +            "description": "The A/B variant label; null when the step has none.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "name",
      +          "enrolled",
      +          "touched",
      +          "invites",
      +          "connections",
      +          "messages",
      +          "replies",
      +          "meetings",
      +          "mature",
      +          "cohortReplies",
      +          "replyRate",
      +          "sequenceName",
      +          "channel",
      +          "variant",
      +          "rankable"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "methodology": {
      +      "additionalProperties": {},
      +      "description": "How results are counted.",
      +      "properties": {
      +        "enrolled": {
      +          "description": "How enrolled is counted: all_time_current_assignment.",
      +          "type": "string"
      +        },
      +        "minimumRankingSample": {
      +          "description": "Mature people a result needs before it is ranked.",
      +          "type": "number"
      +        },
      +        "replies": {
      +          "description": "How replies are counted: first_recorded_reply (one per person).",
      +          "type": "string"
      +        },
      +        "replyAttribution": {
      +          "description": "Which message a reply is attributed to: last_message_before_first_reply.",
      +          "type": "string"
      +        },
      +        "responseDays": {
      +          "description": "Days a person is watched for a reply before counting as mature.",
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "responseDays",
      +        "minimumRankingSample",
      +        "enrolled",
      +        "replies",
      +        "replyAttribution"
      +      ],
      +      "type": "object"
      +    },
      +    "period": {
      +      "additionalProperties": {},
      +      "description": "The exact window read.",
      +      "properties": {
      +        "label": {
      +          "description": "The window's dates in words, for the customer.",
      +          "type": "string"
      +        },
      +        "since": {
      +          "description": "Start of the window (ISO time, inclusive).",
      +          "type": "string"
      +        },
      +        "until": {
      +          "description": "End of the window (ISO time, exclusive): when the cached report was built, so recent activity may be missing.",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "since",
      +        "until",
      +        "label"
      +      ],
      +      "type": "object"
      +    },
      +    "plays": {
      +      "description": "Each Play's results, with its Sequences' results in sequences.",
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "cohortReplies": {
      +            "description": "How many of those mature people replied within 14 days.",
      +            "type": "number"
      +          },
      +          "connections": {
      +            "description": "Connection requests accepted in the window.",
      +            "type": "number"
      +          },
      +          "enrolled": {
      +            "description": "People currently assigned to a Sequence, all-time (not limited to the window).",
      +            "type": "number"
      +          },
      +          "id": {
      +            "description": "The Play, Sequence or workspace id.",
      +            "type": "string"
      +          },
      +          "invites": {
      +            "description": "LinkedIn connection requests sent in the window.",
      +            "type": "number"
      +          },
      +          "mature": {
      +            "description": "People first messaged in the window whose full 14-day reply window has passed; the base of replyRate.",
      +            "type": "number"
      +          },
      +          "meetings": {
      +            "description": "Meetings recorded in the window; coverage is partial.",
      +            "type": "number"
      +          },
      +          "messages": {
      +            "description": "Messages sent in the window, across channels.",
      +            "type": "number"
      +          },
      +          "name": {
      +            "description": "Its name.",
      +            "type": "string"
      +          },
      +          "replies": {
      +            "description": "People whose first reply came in the window.",
      +            "type": "number"
      +          },
      +          "replyRate": {
      +            "description": "cohortReplies over mature, 0 to 1; null when no one is mature yet (never read as zero).",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "sequences": {
      +            "description": "Results of each Sequence the Play feeds.",
      +            "items": {
      +              "additionalProperties": {},
      +              "properties": {
      +                "cohortReplies": {
      +                  "description": "How many of those mature people replied within 14 days.",
      +                  "type": "number"
      +                },
      +                "connections": {
      +                  "description": "Connection requests accepted in the window.",
      +                  "type": "number"
      +                },
      +                "enrolled": {
      +                  "description": "People currently assigned to a Sequence, all-time (not limited to the window).",
      +                  "type": "number"
      +                },
      +                "id": {
      +                  "description": "The Play, Sequence or workspace id.",
      +                  "type": "string"
      +                },
      +                "invites": {
      +                  "description": "LinkedIn connection requests sent in the window.",
      +                  "type": "number"
      +                },
      +                "mature": {
      +                  "description": "People first messaged in the window whose full 14-day reply window has passed; the base of replyRate.",
      +                  "type": "number"
      +                },
      +                "meetings": {
      +                  "description": "Meetings recorded in the window; coverage is partial.",
      +                  "type": "number"
      +                },
      +                "messages": {
      +                  "description": "Messages sent in the window, across channels.",
      +                  "type": "number"
      +                },
      +                "name": {
      +                  "description": "Its name.",
      +                  "type": "string"
      +                },
      +                "replies": {
      +                  "description": "People whose first reply came in the window.",
      +                  "type": "number"
      +                },
      +                "replyRate": {
      +                  "description": "cohortReplies over mature, 0 to 1; null when no one is mature yet (never read as zero).",
      +                  "type": [
      +                    "number",
      +                    "null"
      +                  ]
      +                },
      +                "touched": {
      +                  "description": "People contacted at least once in the window.",
      +                  "type": "number"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "name",
      +                "enrolled",
      +                "touched",
      +                "invites",
      +                "connections",
      +                "messages",
      +                "replies",
      +                "meetings",
      +                "mature",
      +                "cohortReplies",
      +                "replyRate"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "touched": {
      +            "description": "People contacted at least once in the window.",
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "name",
      +          "enrolled",
      +          "touched",
      +          "invites",
      +          "connections",
      +          "messages",
      +          "replies",
      +          "meetings",
      +          "mature",
      +          "cohortReplies",
      +          "replyRate",
      +          "sequences"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "range": {
      +      "description": "The window read: 7d, 30d or 90d.",
      +      "type": "string"
      +    },
      +    "rankings": {
      +      "additionalProperties": {},
      +      "description": "Highest and lowest eligible results; never turn null into zero.",
      +      "properties": {
      +        "messages": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": {},
      +              "properties": {
      +                "highest": {
      +                  "additionalProperties": {},
      +                  "description": "The message step with the highest reply rate.",
      +                  "properties": {
      +                    "cohortReplies": {
      +                      "description": "How many of them replied.",
      +                      "type": "number"
      +                    },
      +                    "id": {
      +                      "description": "The Play or message step id.",
      +                      "type": "string"
      +                    },
      +                    "mature": {
      +                      "description": "Mature people behind the rate.",
      +                      "type": "number"
      +                    },
      +                    "name": {
      +                      "description": "Its name (for a message step, the Sequence name and step name).",
      +                      "type": "string"
      +                    },
      +                    "replyRate": {
      +                      "description": "Its reply rate, 0 to 1.",
      +                      "type": "number"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "name",
      +                    "replyRate",
      +                    "mature",
      +                    "cohortReplies"
      +                  ],
      +                  "type": "object"
      +                },
      +                "lowest": {
      +                  "additionalProperties": {},
      +                  "description": "The message step with the lowest reply rate.",
      +                  "properties": {
      +                    "cohortReplies": {
      +                      "description": "How many of them replied.",
      +                      "type": "number"
      +                    },
      +                    "id": {
      +                      "description": "The Play or message step id.",
      +                      "type": "string"
      +                    },
      +                    "mature": {
      +                      "description": "Mature people behind the rate.",
      +                      "type": "number"
      +                    },
      +                    "name": {
      +                      "description": "Its name (for a message step, the Sequence name and step name).",
      +                      "type": "string"
      +                    },
      +                    "replyRate": {
      +                      "description": "Its reply rate, 0 to 1.",
      +                      "type": "number"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "name",
      +                    "replyRate",
      +                    "mature",
      +                    "cohortReplies"
      +                  ],
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "highest",
      +                "lowest"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Highest and lowest reply-rate rankable message steps; null when insufficient or tied."
      +        },
      +        "plays": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": {},
      +              "properties": {
      +                "highest": {
      +                  "additionalProperties": {},
      +                  "description": "The Play with the highest reply rate.",
      +                  "properties": {
      +                    "cohortReplies": {
      +                      "description": "How many of them replied.",
      +                      "type": "number"
      +                    },
      +                    "id": {
      +                      "description": "The Play or message step id.",
      +                      "type": "string"
      +                    },
      +                    "mature": {
      +                      "description": "Mature people behind the rate.",
      +                      "type": "number"
      +                    },
      +                    "name": {
      +                      "description": "Its name (for a message step, the Sequence name and step name).",
      +                      "type": "string"
      +                    },
      +                    "replyRate": {
      +                      "description": "Its reply rate, 0 to 1.",
      +                      "type": "number"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "name",
      +                    "replyRate",
      +                    "mature",
      +                    "cohortReplies"
      +                  ],
      +                  "type": "object"
      +                },
      +                "lowest": {
      +                  "additionalProperties": {},
      +                  "description": "The Play with the lowest reply rate.",
      +                  "properties": {
      +                    "cohortReplies": {
      +                      "description": "How many of them replied.",
      +                      "type": "number"
      +                    },
      +                    "id": {
      +                      "description": "The Play or message step id.",
      +                      "type": "string"
      +                    },
      +                    "mature": {
      +                      "description": "Mature people behind the rate.",
      +                      "type": "number"
      +                    },
      +                    "name": {
      +                      "description": "Its name (for a message step, the Sequence name and step name).",
      +                      "type": "string"
      +                    },
      +                    "replyRate": {
      +                      "description": "Its reply rate, 0 to 1.",
      +                      "type": "number"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "name",
      +                    "replyRate",
      +                    "mature",
      +                    "cohortReplies"
      +                  ],
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "highest",
      +                "lowest"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Highest and lowest reply-rate Plays among those with enough mature people; null when insufficient or tied."
      +        }
      +      },
      +      "required": [
      +        "plays",
      +        "messages"
      +      ],
      +      "type": "object"
      +    },
      +    "scope": {
      +      "description": "workspace or team.",
      +      "type": "string"
      +    },
      +    "team": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "name": {
      +              "description": "The Team's name.",
      +              "type": "string"
      +            },
      +            "workspaces": {
      +              "description": "Each workspace's results.",
      +              "items": {
      +                "additionalProperties": {},
      +                "properties": {
      +                  "cohortReplies": {
      +                    "description": "How many of those mature people replied within 14 days.",
      +                    "type": "number"
      +                  },
      +                  "connections": {
      +                    "description": "Connection requests accepted in the window.",
      +                    "type": "number"
      +                  },
      +                  "enrolled": {
      +                    "description": "People currently assigned to a Sequence, all-time (not limited to the window).",
      +                    "type": "number"
      +                  },
      +                  "id": {
      +                    "description": "The Play, Sequence or workspace id.",
      +                    "type": "string"
      +                  },
      +                  "invites": {
      +                    "description": "LinkedIn connection requests sent in the window.",
      +                    "type": "number"
      +                  },
      +                  "mature": {
      +                    "description": "People first messaged in the window whose full 14-day reply window has passed; the base of replyRate.",
      +                    "type": "number"
      +                  },
      +                  "meetings": {
      +                    "description": "Meetings recorded in the window; coverage is partial.",
      +                    "type": "number"
      +                  },
      +                  "messages": {
      +                    "description": "Messages sent in the window, across channels.",
      +                    "type": "number"
      +                  },
      +                  "name": {
      +                    "description": "Its name.",
      +                    "type": "string"
      +                  },
      +                  "replies": {
      +                    "description": "People whose first reply came in the window.",
      +                    "type": "number"
      +                  },
      +                  "replyRate": {
      +                    "description": "cohortReplies over mature, 0 to 1; null when no one is mature yet (never read as zero).",
      +                    "type": [
      +                      "number",
      +                      "null"
      +                    ]
      +                  },
      +                  "touched": {
      +                    "description": "People contacted at least once in the window.",
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "id",
      +                  "name",
      +                  "enrolled",
      +                  "touched",
      +                  "invites",
      +                  "connections",
      +                  "messages",
      +                  "replies",
      +                  "meetings",
      +                  "mature",
      +                  "cohortReplies",
      +                  "replyRate"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            }
      +          },
      +          "required": [
      +            "name",
      +            "workspaces"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Team scope only: the Team and each workspace's results; null for workspace scope."
      +    },
      +    "timezone": {
      +      "description": "The timezone days are counted in.",
      +      "type": "string"
      +    },
      +    "totals": {
      +      "additionalProperties": {},
      +      "description": "Results across everything in scope.",
      +      "properties": {
      +        "cohortReplies": {
      +          "description": "How many of those mature people replied within 14 days.",
      +          "type": "number"
      +        },
      +        "connections": {
      +          "description": "Connection requests accepted in the window.",
      +          "type": "number"
      +        },
      +        "enrolled": {
      +          "description": "People currently assigned to a Sequence, all-time (not limited to the window).",
      +          "type": "number"
      +        },
      +        "invites": {
      +          "description": "LinkedIn connection requests sent in the window.",
      +          "type": "number"
      +        },
      +        "mature": {
      +          "description": "People first messaged in the window whose full 14-day reply window has passed; the base of replyRate.",
      +          "type": "number"
      +        },
      +        "meetings": {
      +          "description": "Meetings recorded in the window; coverage is partial.",
      +          "type": "number"
      +        },
      +        "messages": {
      +          "description": "Messages sent in the window, across channels.",
      +          "type": "number"
      +        },
      +        "replies": {
      +          "description": "People whose first reply came in the window.",
      +          "type": "number"
      +        },
      +        "replyRate": {
      +          "description": "cohortReplies over mature, 0 to 1; null when no one is mature yet (never read as zero).",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "touched": {
      +          "description": "People contacted at least once in the window.",
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "enrolled",
      +        "touched",
      +        "invites",
      +        "connections",
      +        "messages",
      +        "replies",
      +        "meetings",
      +        "mature",
      +        "cohortReplies",
      +        "replyRate"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "range",
      +    "scope",
      +    "timezone",
      +    "period",
      +    "totals",
      +    "daily",
      +    "plays",
      +    "messages",
      +    "channels",
      +    "team",
      +    "rankings",
      +    "methodology",
      +    "coverage"
      +  ],
      +  "type": "object"
      +}
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover the read-only/idempotent safety profile, and the description layers on real behavior: auth constraints for team scope, metric definitions (enrolled = all-time assignment, activity = Pacific-time window), a 14-day reply observation window, ranking eligibility thresholds (30 eligible people), null-vs-zero semantics for ties/insufficient data, known gaps (clicks unavailable, meetings partial), and explicit cached timestamps.

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 result set, then defaults, then access constraints, then methodology caveats — a sensible order with no filler sentences. It is dense and long for a single paragraph, packing several methodology rules that could be deferred to the returned 'methodology' field, which slightly slows scanning.

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 computed-report tool with three optional parameters, the description covers access prerequisites, metric definitions, coverage caveats and interpretation guidance. An output schema exists, yet the description's enumeration of the return keys and the instruction to read period/methodology/coverage adds interpretive value rather than redundant schema restatement.

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 baseline applies, but the description still adds meaning beyond the schema: it explains that 'enrolled' is all-time while other activity uses the selected Pacific-time window, and it restates the team-scope credential requirement. The only lost opportunity is that workspaceId is not discussed in the description at all, forcing reliance on the schema for teammate-workspace behavior.

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 ('Read the same outreach results as /analytics') and enumerates exactly what is returned: totals, daily activity, Plays/Sequences, message-step performance, channels, rankings. The closing sentence clarifies what it does NOT do (no message text, lead records, paid lookups, outreach actions), which cleanly separates it from lead/search siblings in the catalog.

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 explicit defaults (range=30d, scope=workspace) and a precise selection rule for the risky alternative: 'Use team scope only when the customer asks for the Team.' It also states the prerequisites that gate that path (personal OAuth or delegation key from a current Team owner/admin, used from its own home workspace; shared/operator keys cannot read team scope).

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