Skip to main content
Glama

Tracklution

List tracking containers

list_containers
Read-only

Entry-point tool. Lists every tracking container the user can access across all connected servers. Each container is one tracked website or app.

USE WHEN:

  • Starting any session — get_report, get_summary, list_events and list_sessions need a container_id.

  • The user asks which sites / accounts they can see, or names a brand without a trc_ ID.

  • You need the server_name for multi-server setups.

  • Resolving the (container_id, container_hash) pair that onboarding tools take (get_installation_scripts, verify_and_score, create_login_link, ...) for a website: match its host name against domain; domain can be null on freshly created containers.

Returns container IDs (trc_...), container hash (dashboard-URL identifier and secret half of the onboarding auth; the container_hash argument of onboarding tools — null on older backends that predate the field, where register_and_provision with auth_token + website_url returns the pair), titles, domains, currency, timezone, and active status.

Input Schema

NameRequiredDescriptionDefault
server_nameNoFilter to a specific server. Omit to list containers from all servers.

Output Schema

NameRequiredDescriptionDefault
totalYes
serversYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedOutput schema / properties / servers / items / properties / containers / items / additionalProperties
      Previous value: -falseNew value: +true
    • changedOutput schema / properties / servers / items / properties / containers / items / properties / client / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "id": {
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "id",
      -      "name"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "id": {
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / servers / items / properties / containers / items / properties / pii_restricted
      Added value: +{
      +  "type": "boolean"
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so safety is covered. The description adds real context beyond that: it discloses the cross-server aggregation scope, that `domain` can be null on freshly created containers, and that `container_hash` is the secret half of onboarding auth and is null on older backends with a documented fallback (register_and_provision with auth_token + website_url). That fallback path is genuinely useful behavioral disclosure.

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 entry-point role, then a scannable USE WHEN list. Dense and mostly earned, but the final sentence about return values is heavy with nested parentheticals (the container_hash fallback aside is a long aside inside a list of fields) and partly duplicates the output schema.

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?

Handles the tricky cases an agent would otherwise stumble on: what to do for multi-server setups, how to resolve a container from a host name when `domain` is null, and the legacy-backend path when `container_hash` is missing. With an output schema present, the field enumeration is a bonus rather than a requirement, so nothing essential 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 100% for the single `server_name` parameter, so the baseline is 3. The description improves on it by tying the parameter to a concrete motive ('You need the server_name for multi-server setups'), which tells an agent why it would ever set it rather than always omitting it.

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 ('Lists every tracking container the user can access across all connected servers') and immediately defines the resource unit ('Each container is one tracked website or app'). The 'Entry-point tool' framing plus the cross-server scope distinguishes it cleanly from the sibling get_container, which fetches a single one.

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?

The USE WHEN block explicitly covers the triggering conditions: session start because get_report/get_summary/list_events/list_sessions need a container_id, brand-name-without-ID lookups, multi-server setups needing server_name, and onboarding pair resolution. It also names the downstream tools that depend on its output and states what to do when `domain` is null.

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