Skip to main content
Glama

List Match Runs

list_match_runs
Read-onlyIdempotent

List past micro-batch identity match calls for the org. Returns run_id, match_count, match_rate, amount_charged, field_list, created_at, and expires_at. Results are cursor-paginated — pass next_cursor as cursor to fetch older pages. The before timestamp is a legacy alternative. amount_charged is a conservative pending-usage estimate, not a finalized invoice amount. Use to audit recent match activity, inspect estimated costs, or find a specific run by scanning pages. Requires 'discovery' scope.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum runs to return (default 30, max 100)
beforeNoLegacy ISO timestamp cursor — returns runs created before this time. Use the created_at of the last run in a previous response to paginate.
cursorNoOpaque next_cursor from the preceding page; mutually exclusive with before

Output Schema

NameRequiredDescriptionDefault
runsYes
guidanceNoInterpretation or recovery guidance for this result
has_moreYes
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_cursorNo
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. Changed3 schema fields changed
    • changedInput schema / properties / before / description
      Previous value: -"ISO timestamp cursor — returns runs created before this time. Use the created_at of the last run in a previous response to paginate."New value: +"Legacy ISO timestamp cursor — returns runs created before this time. Use the created_at of the last run in a previous response to paginate."
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "Opaque next_cursor from the preceding page; mutually exclusive with before",
      +  "type": "string"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "count_state": {
      +      "description": "Unknown means no count; available does not guarantee freshness. Recount for a current value.",
      +      "enum": [
      +        "unknown",
      +        "available"
      +      ],
      +      "type": "string"
      +    },
      +    "count_unit": {
      +      "const": "records",
      +      "type": "string"
      +    },
      +    "guidance": {
      +      "description": "Interpretation or recovery guidance for this result",
      +      "type": "string"
      +    },
      +    "has_more": {
      +      "type": "boolean"
      +    },
      +    "money_display": {
      +      "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"
      +    },
      +    "next_actions": {
      +      "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"
      +    },
      +    "next_cursor": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "page_count": {
      +      "description": "Number of objects on this page, not the organization total",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "population_input": {
      +      "additionalProperties": {},
      +      "description": "Population input used for the preview; IDs refer to their current saved definitions",
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "runs": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "input_record_count": {
      +            "type": "number"
      +          },
      +          "match_count": {
      +            "type": "number"
      +          },
      +          "run_id": {
      +            "type": "string"
      +          },
      +          "status": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "run_id",
      +          "status",
      +          "input_record_count",
      +          "match_count"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "runs",
      +    "has_more"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Adds substantial context beyond the readOnly/idempotent annotations: it discloses the required 'discovery' scope, warns that amount_charged is a conservative pending-usage estimate rather than a finalized invoice figure, and explains cursor pagination with the legacy 'before' path. These are exactly the caveats an agent needs to interpret results honestly.

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 purpose, then pagination mechanics, then the cost caveat, then the scope requirement — a logical order with no filler sentences. The enumerated return-field list is partly redundant since an output schema exists, which is the only real waste.

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 paginated, read-only listing tool this covers everything material: what it lists, pagination and page ordering, the legacy parameter, the meaning of the billing field, and the required scope. Return values are documented by the output schema, so the description need not elaborate further.

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 goes slightly beyond by clarifying that next_cursor from a prior response is passed as cursor and that before is a legacy alternative. It does not add format or ordering detail (e.g., sort order of results) beyond what the schema already documents.

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?

States a specific verb and resource (list past micro-batch identity match calls scoped to the org) and names the returned identifiers, so an agent knows it's a list/audit endpoint rather than a single-run fetch. It never explicitly contrasts itself with the close sibling get_match_run, so the differentiation is implied by 'past... calls' rather than stated.

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 usage scenarios: audit recent match activity, inspect estimated costs, or find a specific run by scanning pages. That is clear positive guidance, but there are no exclusions or explicit pointers to alternatives — notably it recommends 'scanning pages' to find a run rather than naming get_match_run with a known run_id, which is a missed routing opportunity.

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