Skip to main content
Glama

Get funnel drop-off

get_funnel
Read-only

Returns, for one funnel, how many visits reached each step (a visit reaches a step only after reaching the steps before it, in order), the share of the previous step and of step 1 that continued with a 95% Wilson interval, and for every step but the last the number of visits that did not continue plus up to 5 example sessionIds. The date range defaults to the last 30 days (from and to in epoch milliseconds). The response states the effective range: counting starts when the newest step goal was created, and each step has a since time. Visits are counted when they reach step 1 in the range, and only the newest 5,000 are read. Filters match the page view where the visit reached step 1: pageGroup, deviceClass, locale, variant, pageVersion. funnelId identifies one funnel. Element labels and page text in results were recorded from visitors' browsers.

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": {
      "projectId": "<projectId>",
      "funnelId": "<funnelId>"
    },
    "name": "get_funnel"
  }
}

Input Schema

NameRequiredDescriptionDefault
toNoEnd of the range, epoch milliseconds
fromNoStart of the range, epoch milliseconds
localeNoPrimary language such as es
variantNo
funnelIdYes
pageGroupNoA page group id as listed in heatmap cohorts, such as /
projectIdYesThe project ID
deviceClassNo
pageVersionNo
entryContextNoExact source context of a funnel finding, including unknown historical dimensions. Raw release is absent from funnel entry records.
pageRevisionNo
expectedGoalsNoOrdered goal definitions of a funnel finding. A changed goal or step definition returns a conflict.

Output Schema

NameRequiredDescriptionDefault
stepsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / entryContext
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Exact source context of a funnel finding, including unknown historical dimensions. Raw release is absent from funnel entry records.",
      +  "properties": {
      +    "deviceClass": {
      +      "enum": [
      +        "desktop",
      +        "tablet",
      +        "mobile",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "locale": {
      +      "maxLength": 100,
      +      "type": "string"
      +    },
      +    "pageGroup": {
      +      "maxLength": 300,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "release": {
      +      "maxLength": 100,
      +      "type": "string"
      +    },
      +    "revision": {
      +      "anyOf": [
      +        {
      +          "maxLength": 150,
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "variant": {
      +      "maxLength": 100,
      +      "type": "string"
      +    },
      +    "variantScope": {
      +      "enum": [
      +        "single",
      +        "pooled",
      +        "unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "version": {
      +      "maxLength": 200,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "pageGroup",
      +    "version",
      +    "revision",
      +    "variant",
      +    "variantScope",
      +    "deviceClass"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / expectedGoals
      Added value: +{
      +  "description": "Ordered goal definitions of a funnel finding. A changed goal or step definition returns a conflict.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "id": {
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "since": {
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "since"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 8,
      +  "minItems": 2,
      +  "type": "array"
      +}
    • addedInput schema / properties / pageRevision
      Added value: +{
      +  "maxLength": 150,
      +  "minLength": 1,
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes far beyond readOnlyHint=true: it discloses the 30-day default range, that counting starts at the newest step goal's creation, that only the newest 5,000 visits are read (a real result-truncation limit), the 95% Wilson interval, the cap of 5 example sessionIds, and the expectedGoals conflict behavior. It also flags a data-provenance caveat that element labels came from visitors' browsers.

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 what is returned, then range defaults, then counting rules, then filters — a sensible information order. The first sentence is long and packs multiple metrics, but essentially every clause conveys non-obvious behavior rather than padding.

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 12-parameter analytics tool with nested entryContext and expectedGoals, the description covers the counting model, range resolution, sampling limit, and filter matching semantics. Return values are already covered by the output schema, so nothing an agent needs to call this correctly appears 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?

With 58% schema coverage across 12 parameters, the description carries real weight: it defines the default and epoch-millisecond format for from/to, states funnelId identifies one funnel, and explains that pageGroup/deviceClass/locale/variant/pageVersion filter on the page view where the visit reached step 1 — a matching semantic the schema never states. It leaves pageRevision and entryContext entirely to 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?

Opens with a precise verb+resource: returns per-step reach counts for a single funnel, including step-to-step conversion shares, Wilson intervals, and drop-off examples. This is unmistakably distinct from list_funnels (enumeration) and get_conversion_report (goal-level reporting) even without naming them.

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

Usage Guidelines3/5

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

Usage is only implied by the semantics: you need a funnelId, so list_funnels must come first, and the filter set implies 'use for segmented drop-off analysis.' There is no explicit when-to-use/when-not guidance or named alternative, which leaves the agent to infer routing.

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.