Skip to main content
Glama
riveterhq

Riveter MCP Server

Official
by riveterhq

List runs

list_runs
Read-onlyIdempotent

Retrieve an account's runs (enrichments, dataset builds, extractions, searches) newest first, filtered by type, status, or date, or fetch full status objects for up to 100 run IDs in one call.

Instructions

list runs

List the account's runs, newest first. Every async operation shows up here — enrichment runs, dataset builds, extractions, and quick searches.

Filter by type (comma-separated), status, enrichment_id, dataset_id, monitor_id, and created_after / created_before (ISO 8601). Paginate with page / per_page. enrichment_id naming a legacy enrichment still filters and the response carries legacy.

Pass ids (comma-separated, up to 100 run ids) to get those runs' full status objects (same shape as GET /runs/{id}) in one call; not_found lists ids not on this account. Filters and pagination are ignored.

Input Schema

NameRequiredDescriptionDefault
idsNoComma-separated run ids, up to 100. Returns their full status objects plus `not_found`; other filters ignored.
pageNopage
typeNoComma-separated run types: enrichment, dataset_build, extraction, scrape, quick_search, search_agent
statusNoFilter by run status
per_pageNoper_page
dataset_idNoOnly runs on this dataset (ds_...) — its fills and its list generations
monitor_idNoOnly runs of this monitor (mon_...)
created_afterNocreated_after
enrichment_idNoOnly runs of this enrichment (enr_...)
created_beforeNocreated_before

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.5

TDQS

A4/5.0
Behavior4/5

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

Goes beyond the readOnly/idempotent annotations with real behavior: newest-first ordering, the fact that filters and pagination are silently ignored in `ids` mode, `not_found` reporting for foreign ids, and a `legacy` marker on legacy-enrichment runs. Gaps remain on pagination defaults/limits and on how the list is bounded, which matter for a 10-parameter listing tool.

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 filters, then the special `ids` branch — a sensible ordering with no filler sentences. The leading lowercase 'list runs' line merely restates the tool name and could be cut.

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?

Covers all ten parameters, both operating modes, and the notable edge cases (legacy, not_found), which is strong for a tool with no output schema. The only shortfall is that the returned list object's shape is never characterized beyond the `ids` mode matching `GET /runs/{id}`, leaving the agent to infer what fields a run row carries.

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 nominally 100%, but several schema descriptions are placeholders ('page', 'per_page', 'created_after'), so the description earns credit by adding ISO 8601 formatting for the date bounds, comma-separated semantics for `type` and `ids`, the 100-id cap, and the rule that other filters are ignored in `ids` mode. It stops short of documenting page-size defaults or the meaning of negative minimums in 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?

States a specific verb and resource ('List the account's runs, newest first') and enumerates what is included (enrichment runs, dataset builds, extractions, quick searches), which disambiguates it from narrow siblings like list_monitor_runs and get_run. It does not name those siblings explicitly, so differentiation is implied through scope 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?

Clear about the two operating modes: filtered/paginated listing versus an `ids` batch lookup whose semantics match `GET /runs/{id}`, which implicitly routes the agent away from calling get_run repeatedly. It does not explicitly say when to prefer runs_summary or get_run for aggregates or single-run reads, so one class of alternative is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.