Skip to main content
Glama

List artifacts

list_artifacts
Read-onlyIdempotent

List proof-of-work artifacts (QA screenshots/video/traces) for the caller's accessible projects. Each row carries kind, content type, caption, the acceptance criterion it proves, the sandboxId of the agent run that produced it, and a long-lived signed serving url. Filter by issueId to get one ticket's evidence: the artifacts of every run, superseded QA attempts included, up to limit; a note says when more exist. For the mission's proof of work specifically, read proofRunSandboxId from GET /v1/missions/{id} and pass it as sandboxId.

Input Schema

NameRequiredDescriptionDefault
limitNoMax results (default 50). Narrow with issueId or sandboxId before raising it.
issueIdNoFilter to one issue (e.g. SHIP-133)
projectIdNoFilter to one project id
sandboxIdNoFilter to ONE agent run's artifacts (e.g. the mission's proofRunSandboxId)

Output Schema

NameRequiredDescriptionDefault
dataYes
nextCursorYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare a safe, idempotent read, so the description's value is in behavioral detail: results include superseded QA attempts, a note indicates when more results exist, and serving urls are long-lived and signed. Some of the row-field enumeration overlaps with the existing output schema, which lowers the marginal value slightly.

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?

Three dense sentences, front-loaded with the resource and scope before the filtering workflow. No filler, though the row-field enumeration in sentence two is the least essential part given the output schema exists.

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 four-parameter, all-optional list tool with an output schema and full annotation coverage, the description covers what the agent needs: scope, filters, superseded coverage, pagination signal, and the mission proof-of-work recipe. Minor gap is not pointing to get_artifact for single-item retrieval.

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 baseline is 3, but the description adds real meaning: issueId returns every run's artifacts including superseded attempts up to limit, and sandboxId is tied to a specific agent run (the mission's proofRunSandboxId). That exceeds what the schema descriptions alone convey.

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?

Names a specific verb and resource ('List proof-of-work artifacts') and scopes it to 'QA screenshots/video/traces' for the caller's accessible projects. An agent can distinguish it from get_artifact or list_agent_runs without opening any schema.

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 routing guidance: use issueId to get one ticket's evidence, and for a mission's proof of work read proofRunSandboxId from GET /v1/missions/{id} and pass it as sandboxId. It stops short of naming get_artifact as the alternative for fetching a single artifact, so it is clear context rather than full when/when-not coverage.

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.