Skip to main content
Glama

Get Run Records

get_run_records
Read-only

WHICH records a run decided about, and what it decided -- one row per record, with the outcome, the reason, the CRM record id and the PROVIDER's id for it where the run learned one. get_run answers how many; this answers who. Read it when the count is not the question: which contacts were skipped and why, which were written, which the provider held nothing for. IT IS ALSO HOW ONE RUN FEEDS THE NEXT: create_records_run names people by provider id through its person_ids input, and those ids are on these rows, so an enrichment run that found movers can be chained into a create run for them. Paged, newest scope first: total counts every row, records holds the page, and truncated says a page did not reach the end. by_outcome and by_reason are computed over EVERY row, not over the page, so the summary never describes only what fitted. Reads a run that has already been dispatched; it spends nothing and changes nothing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoRows per page. Defaults to 50; by_outcome and by_reason count them all.
offsetNoRows to skip, for paging through a large run.
run_idYesThe run to read. Call list_runs first.
outcomeNoOnly rows with this outcome, e.g. 'written' or 'skipped'. Read by_outcome first to see which occur.
connection_idYesThe CRM connection. Call list_crm_connections first.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / limit / description
      Previous value: -"Rows per page. Defaults to 200."New value: +"Rows per page. Defaults to 50; by_outcome and by_reason count them all."
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, non-destructive, not open-world), yet the description adds substantial behavior not in any structured field: it is spend-free and mutation-free, it is paged newest-scope-first, and crucially that by_outcome/by_reason are computed over EVERY row while total/records/truncated describe the page. This aggregation semantics is nowhere else and directly affects how the agent interprets results.

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 core purpose and the key distinction from get_run before the paging and chaining details. It is on the long side with heavy all-caps emphasis, but nearly every sentence carries distinct information about scope, chaining, or pagination rather than filler.

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?

There is no output schema, so the description carries the full burden of explaining the return shape: total, records, truncated, and the all-row aggregation of by_outcome/by_reason. Combined with the dispatched-run precondition and the chaining guidance, an agent has everything needed to call and interpret it correctly.

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 schema already documents all five parameters, establishing a baseline of 3. The description adds page-ordering semantics ('Paged, newest scope first') that no schema field mentions, giving a marginal boost above baseline. It does not add format or syntax detail beyond that.

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+resource with exact scope: 'WHICH records a run decided about, and what it decided -- one row per record' with outcome, reason, CRM id, and provider id. It explicitly differentiates from its closest sibling: 'get_run answers how many; this answers who.' An agent can tell the two apart without opening either schema.

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?

Gives an explicit when-to-use condition ('Read it when the count is not the question: which contacts were skipped and why') and names the alternatives (get_run for counts, create_records_run for chaining via person_ids). It also states the precondition ('Reads a run that has already been dispatched'), which rules out use on un-dispatched runs.

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.