Skip to main content
Glama

Property names

list_property_keys
Read-onlyIdempotent

The properties that can be filtered or broken down by: the standard ones, plus the detail names (attribute_keys; use them as attrs.KEY: data-track-* attributes and track() details) and URL parameter names (query.PARAM) seen in a date range. Standard entries with kind number (scroll_depth, time_on_page_seconds: a page view's scroll depth in percent and active seconds, null where no value arrived) take only their operators (equals, greater_than, less_than, exists; the two comparisons strict) with a whole number from minimum to maximum, can be the measure_property of their measures, and are no breakdown. Details (attrs.KEY) also take greater_than and less_than, as numbers: attrs.order_value greater_than 100. Dates are the project's calendar days, YYYY-MM-DD (timezone: get_project); timestamps are UTC. Omit from/to for the last 28 complete days, ending yesterday.

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": "list_property_keys"
  }
}

Input Schema

NameRequiredDescriptionDefault
toNoLast day, YYYY-MM-DD in the project's timezone, inclusive. Default: yesterday, the last complete day.
fromNoFirst day, YYYY-MM-DD in the project's timezone, inclusive. Default: 27 days before 'to'.
limitNoKeys of each kind to return, 1-100. Default 20.
searchNoCase-insensitive prefix of the detail name or URL parameter name.
featureNoOnly detail names that events of this feature carry (by data-track name or any feature rule with that name), as a funnel step's feature. Narrows attribute_keys only.
projectNoProject ID, from list_projects. Required when this connection covers more than one project; may be left out when it covers one (and with an API key, which belongs to one project).
page_pathNoOnly detail names that events on this page path carry, exact, as stored (e.g. /checkout/:id), as a funnel step's page_path. Narrows attribute_keys only.
event_typeNoOnly detail names that events of this type carry: pageview, click, form_submit or custom. With page_origin, page_path and feature this is one funnel step's filters, matched exactly as a funnel step is (interaction events only). Narrows attribute_keys only.
page_originNoOnly detail names that events on this page origin carry, exact, as stored, as a funnel step's page_origin. Narrows attribute_keys only.
numeric_onlyNoOnly detail names some matched event sent as a number, i.e. ones a sum, an average or a goal's value can use. Narrows attribute_keys only.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / event_type
      Added value: +{
      +  "description": "Only detail names that events of this type carry: pageview, click, form_submit or custom. With page_origin, page_path and feature this is one funnel step's filters, matched exactly as a funnel step is (interaction events only). Narrows attribute_keys only.",
      +  "type": "string"
      +}
    • addedInput schema / properties / feature
      Added value: +{
      +  "description": "Only detail names that events of this feature carry (by data-track name or any feature rule with that name), as a funnel step's feature. Narrows attribute_keys only.",
      +  "type": "string"
      +}
    • addedInput schema / properties / numeric_only
      Added value: +{
      +  "description": "Only detail names some matched event sent as a number, i.e. ones a sum, an average or a goal's value can use. Narrows attribute_keys only.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / page_origin
      Added value: +{
      +  "description": "Only detail names that events on this page origin carry, exact, as stored, as a funnel step's page_origin. Narrows attribute_keys only.",
      +  "type": "string"
      +}
    • addedInput schema / properties / page_path
      Added value: +{
      +  "description": "Only detail names that events on this page path carry, exact, as stored (e.g. /checkout/:id), as a funnel step's page_path. Narrows attribute_keys only.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A3.8/5.0
Behavior5/5

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

Beyond the read-only and idempotent annotations, the description discloses meaningful behavior: key categories, how standard numeric entries behave, null handling for scroll_depth and time_on_page_seconds, date-range defaults, and timezone conventions. This gives an agent substantial context for interpreting results and avoiding misuse.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the description is a dense run-on paragraph with nested parentheses and repeated references to standard entries and attrs.KEY. The information is largely relevant, yet the structure makes it harder to scan than it needs to be.

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?

For a complex, ten-parameter listing tool with no output schema, the description does a good job explaining key categories, usage forms, date defaults, and numeric-entry behavior. It stops short of specifying the exact response shape, such as whether keys are returned as grouped strings or objects, but it is otherwise sufficiently complete.

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 the input schema already documents all ten parameters. The description adds useful context about what the returned keys mean and briefly reinforces the from/to defaults, but it does not materially deepen the meaning of most individual parameters beyond the schema.

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 clearly identifies the resource: property keys usable for filtering or breakdown, including standard entries, detail names, and URL parameter names. It does not explicitly contrast with the sibling list_property_values, but the key-versus-value distinction is strongly implied by 'properties' and the attrs.KEY/query.PARAM examples.

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?

It explains how returned keys are used in queries (attrs.KEY, query.PARAM, operators for standard entries, comparisons for details) and gives default date behavior. However, it does not state when to call this tool instead of list_property_values or other sibling tools, so the selection guidance is only implied.

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