Skip to main content
Glama

Browse Field Catalog

get_field_catalog
Read-onlyIdempotent

Discover a bounded page of fields, descriptions, accepted aliases, allowed filter operators, coded values and coverage definitions. Search zip or zip_code for the canonical zip5 field. State publishes two-letter codes and full-name labels; either input is accepted. Defaults to filterable audience fields; use purpose=enrichment for all output fields. feature_store fields are enrichment-only unless also tagged audience. Follow next_cursor for more fields; for more enum values pass field_name and values_next_cursor as value_cursor. Pricing is opt-in. Requires discovery scope. Requires 'discovery' scope.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum fields per page; response size may shorten the page
cursorNonext_cursor returned by the previous page
searchNoCase-insensitive search across field names, accepted aliases, labels and descriptions
purposeNoDefault filter: show fields usable for population filters. Use enrichment for all selectable output fields. Explicit product_usage, template_id or field_name overrides this default.filter
field_nameNoRetrieve one exact field, including a page of its coded values
template_idNoShow fields in this delivery template
value_limitNoMaximum enum values per field; defaults to 100 for one field or 25 in a list
value_cursorNovalues_next_cursor from a field; requires field_name
product_usageNoFilter by supported product usage
include_pricingNoInclude account-specific pricing; requires configured billing

Output Schema

NameRequiredDescriptionDefault
totalYes
fieldsYesSelectable output fields; audience filtering remains audience-tagged only
pricingYesOrganization prices when include_pricing=true; otherwise null
guidanceNoInterpretation or recovery guidance for this result
templatesYesTemplates; request template_id to page their fields
count_unitNo
page_countNoNumber of objects on this page, not the organization total
count_stateNoUnknown means no count; available does not guarantee freshness. Recount for a current value.
next_cursorYes
next_actionsNoSuggested next calls using returned IDs and available scopes. Not executed and not user consent.
money_displayNoCurrency amounts formatted once from source paths ending in _cents. Use verbatim; do not divide again. Null/missing source amounts are omitted, not zero.
population_inputNoPopulation input used for the preview; IDs refer to their current saved definitions

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed43 schema fields changed
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "next_cursor returned by the previous page",
      +  "type": "string"
      +}
    • addedInput schema / properties / field_name
      Added value: +{
      +  "description": "Retrieve one exact field, including a page of its coded values",
      +  "type": "string"
      +}
    • addedInput schema / properties / include_pricing
      Added value: +{
      +  "default": false,
      +  "description": "Include account-specific pricing; requires configured billing",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 20,
      +  "description": "Maximum fields per page; response size may shorten the page",
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / product_usage
      Added value: +{
      +  "description": "Filter by supported product usage",
      +  "enum": [
      +    "audience",
      +    "feature_store"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / purpose
      Added value: +{
      +  "default": "filter",
      +  "description": "Default filter: show fields usable for population filters. Use enrichment for all selectable output fields. Explicit product_usage, template_id or field_name overrides this default.",
      +  "enum": [
      +    "filter",
      +    "enrichment"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / search
      Added value: +{
      +  "description": "Case-insensitive search across field names, accepted aliases, labels and descriptions",
      +  "type": "string"
      +}
    • addedInput schema / properties / template_id
      Added value: +{
      +  "description": "Show fields in this delivery template",
      +  "enum": [
      +    "standard_iag",
      +    "standard_enrichment"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / value_cursor
      Added value: +{
      +  "description": "values_next_cursor from a field; requires field_name",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / value_limit
      Added value: +{
      +  "description": "Maximum enum values per field; defaults to 100 for one field or 25 in a list",
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / count_state
      Added value: +{
      +  "description": "Unknown means no count; available does not guarantee freshness. Recount for a current value.",
      +  "enum": [
      +    "unknown",
      +    "available"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / count_unit
      Added value: +{
      +  "const": "records",
      +  "type": "string"
      +}
    • addedOutput schema / properties / fields / items / properties / coverage_basis
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / fields / items / properties / coverage_rate
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / fields / items / properties / data_type
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / fields / items / properties / default_text_comparison
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "exact"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Exact by default for supported text comparisons; null otherwise"
      +}
    • addedOutput schema / properties / fields / items / properties / description
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / fields / items / properties / enum_values
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Exact request values, not display labels"
      +}
    • addedOutput schema / properties / fields / items / properties / filterable
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / fields / items / properties / groupable
      Added value: +{
      +  "description": "May be used as a group_by/crosstab dimension",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / fields / items / properties / label
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / fields / items / properties / operators
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / fields / items / properties / text_comparison_modes
      Added value: +{
      +  "description": "Supported comparison modes for text filter values; empty for non-text fields",
      +  "items": {
      +    "enum": [
      +      "exact",
      +      "case_insensitive"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / fields / items / properties / trim_whitespace_supported
      Added value: +{
      +  "description": "Whether filter values can request trimming of outer whitespace",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / fields / items / properties / value_labels
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {
      +        "type": "string"
      +      },
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / fields / items / properties / values_next_cursor
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / fields / items / required
      Previous value: -[
      -  "field_name",
      -  "product_usage"
      -]New value: +[
      +  "field_name",
      +  "product_usage",
      +  "text_comparison_modes",
      +  "default_text_comparison",
      +  "trim_whitespace_supported"
      +]
    • addedOutput schema / properties / guidance
      Added value: +{
      +  "description": "Interpretation or recovery guidance for this result",
      +  "type": "string"
      +}
    • addedOutput schema / properties / money_display
      Added value: +{
      +  "additionalProperties": {
      +    "type": "string"
      +  },
      +  "description": "Currency amounts formatted once from source paths ending in _cents. Use verbatim; do not divide again. Null/missing source amounts are omitted, not zero.",
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / next_actions
      Added value: +{
      +  "description": "Suggested next calls using returned IDs and available scopes. Not executed and not user consent.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "arguments": {
      +        "additionalProperties": {},
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "reason": {
      +        "type": "string"
      +      },
      +      "tool": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tool",
      +      "arguments",
      +      "reason"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / next_cursor
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / page_count
      Added value: +{
      +  "description": "Number of objects on this page, not the organization total",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / population_input
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Population input used for the preview; IDs refer to their current saved definitions",
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • removedOutput schema / properties / pricing / additionalProperties
      Removed value: -{}
    • addedOutput schema / properties / pricing / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": {},
      +    "propertyNames": {
      +      "type": "string"
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / pricing / description
      Previous value: -"Organization-specific prices"New value: +"Organization prices when include_pricing=true; otherwise null"
    • removedOutput schema / properties / pricing / propertyNames
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / pricing / type
      Removed value: -"object"
    • changedOutput schema / properties / templates / description
      Previous value: -"Available field templates"New value: +"Templates; request template_id to page their fields"
    • addedOutput schema / properties / templates / items / properties / field_count
      Added value: +{
      +  "type": "number"
      +}
    • changedOutput schema / properties / templates / items / required
      Previous value: -[
      -  "template_id",
      -  "fields"
      -]New value: +[
      +  "template_id"
      +]
    • addedOutput schema / properties / total
      Added value: +{
      +  "type": "number"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "fields",
      -  "templates",
      -  "pricing"
      -]New value: +[
      +  "fields",
      +  "templates",
      +  "total",
      +  "next_cursor",
      +  "pricing"
      +]
  2. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, and the description adds meaningful operational context beyond that: bounded pagination, default filterable-audience scope, enrichment-only feature_store fields, opt-in pricing, and required discovery scope. There is no contradiction with the annotations.

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?

The description is front-loaded and information-dense, covering the most important defaults and cursor flow early. It is slightly repetitive, especially the duplicated statement that the tool requires discovery scope, which prevents a perfect conciseness score.

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?

The tool has 10 optional parameters, an output schema, and clear annotations; the description covers pagination, default filtering, enrichment mode, pricing opt-in, and scope requirements. An agent has enough context to invoke and paginate correctly without needing return-value details the output schema already provides.

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 parameter meanings are already largely documented. The description still adds useful semantics, including zip_code alias handling, state two-letter/full-name inputs, purpose default behavior, and value_cursor usage, though it leaves several parameters to 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 states a specific verb and resource: discovering a bounded page of catalog fields, including aliases, operators, coded values, and coverage. It is clear what the tool does, but it does not explicitly distinguish itself from related discovery siblings such as discovery_lookup.

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

Usage Guidelines4/5

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

It gives concrete usage guidance: use purpose=enrichment for output fields, follow next_cursor for more fields, pass field_name plus values_next_cursor for more enum values, and opt in to pricing. It does not state when to use this tool instead of sibling discovery tools, so the alternative-tool guidance is incomplete.

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