Skip to main content
Glama
This connector has been deprecated

Replaced by io.github.no-fait/infinite-audience

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. Subscription capacity rates are opt-in. Requires discovery scope. Requires 'discovery' scope.

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

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 subscription capacity rates

Output Schema

NameRequiredDescriptionDefault
totalYes
fieldsYesSelectable output fields; audience filtering remains audience-tagged only
pricingYesOrganization subscription capacity rates when requested; 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.
population_inputNoPopulation input used for the preview; IDs refer to their current saved definitions

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed42 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 subscription capacity rates",
      +  "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 / 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 subscription capacity rates when requested; 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. Changed3 schema fields changed
    • changedOutput schema / properties / fields / description
      Previous value: -"Selectable enrichment fields"New value: +"Selectable output fields; audience filtering remains audience-tagged only"
    • addedOutput schema / properties / fields / items / properties / product_usage
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / fields / items / required
      Previous value: -[
      -  "field_name"
      -]New value: +[
      +  "field_name",
      +  "product_usage"
      +]
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "fields": {
      +      "description": "Selectable enrichment fields",
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "field_name": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "field_name"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "pricing": {
      +      "additionalProperties": {},
      +      "description": "Organization-specific prices",
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "templates": {
      +      "description": "Available field templates",
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "fields": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "template_id": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "template_id",
      +          "fields"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "fields",
      +    "templates",
      +    "pricing"
      +  ],
      +  "type": "object"
      +}
  4. First observed

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description adds real context beyond that: 'Requires discovery scope', opt-in subscription capacity rates via include_pricing, and page-shortening behavior on limit. However, the scope requirement is stated twice verbatim ('Requires discovery scope. Requires 'discovery' scope.'), which wastes space rather than adding disclosure.

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 first sentence is well front-loaded and dense with useful detail, but the tail is a run-on list of operational caveats, and the final two sentences are a literal duplicate of the same scope requirement. Removing that repetition and splitting the caveat block would tighten it without losing information.

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 10-parameter, zero-required discovery tool with a full output schema, the description covers scope, pagination, defaulting, and the audience/feature_store distinction without needing to describe return values. The one gap is that it never positions this tool against the other discovery_* tools when an agent is choosing among them.

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 the baseline is 3; the description earns more by explaining interactions the schema does not: purpose's default being overridden by product_usage/template_id/field_name, the next_cursor → cursor chaining, and the value_cursor/field_name pairing. It also documents the enrichment-vs-audience constraint on feature_store fields that no single schema field expresses.

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?

Opens with a specific verb+resource: 'Discover a bounded page of fields' and enumerates what each record carries (descriptions, aliases, filter operators, coded values, coverage definitions). It is clearly distinguishable from mutating siblings like create_segment or patch_audience, though it never names the closest discovery siblings (discovery_lookup, discovery_count) for contrast.

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?

Gives concrete selection rules: default is filterable audience fields, purpose=enrichment for all output fields, follow next_cursor for more fields, pass field_name + values_next_cursor to page enum values. It also resolves a naming ambiguity ('Search zip or zip_code for the canonical zip5 field'). It stops short of explicitly excluding when a caller should use discovery_lookup instead.

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