Skip to main content
Glama

Retain selected artifact deliveries

vivac_artifacts

Capture, list, inspect, verify, and restore project artifacts with revision provenance, including self-contained visual and interactive previews.

Instructions

Retain complete visual/interactive previews by default; use vivac-artifacts and prefer a self-contained frontend without a backend. Other files (reports, docs, JSON, SQL, code, config) require explicit delivery selection. Operations match vivac artifacts. Query capabilities for installed formats/limits; it takes no other arguments or project state. Capture needs path OR bundle, from and description. Continue an identity with artifact and previous, never by filename. List defaults to focus lineage; all lists the project. Check verifies the complete revision, not just paginated metadata. Restore uses an absent destination and never overwrites. Store check finds unrecorded objects; orphan restore rescues bytes without inventing provenance. Custody neither executes nor installs content. Strict privacy is default. PNG/MP4 need installed support and, by default, prior human review of exact bytes; automatic inspection cannot review pixels/speech. SQLite needs installed support. Only explicit project authorization may enable allow_insecure_artifacts; never enable it to retry a refusal. It permits sensitive or unreviewed content only in supported profiles. Permissive revisions still record sensitivity, inspection and review needed; provenance guards and all technical limits remain. Custody is not approval, runtime proof or a source snapshot.

Input Schema

NameRequiredDescriptionDefault
toNoNew project-relative destination for restore.
allNoList whole project instead of focus lineage.
fromNoProducer node for capture; scope node for list.
pathNoSelected project-relative source; capture only.
limitNoList page size, between 1 and 100.
storeNoCheck retained store; no artifact identity.
bundleNoProject-relative complete-bundle JSON selector; capture only, conflicts with path. SQLite requires paired database/runtime and installed support.
offsetNoNonnegative list offset.
orphanNoUnrecorded retained object identity for explicit rescue.
artifactNoStable identity; never inferred from filename.
previousNoExpected previous revision for capture.
revisionNoExact revision for show, check or restore.
operationYescapabilities, policy, list, show, capture, check or restore.
descriptionNoRequired capture purpose, one line, at most 280 Unicode characters.
operation_idNoOpaque capture retry ULID; do not recapture bytes.
allow_insecure_artifactsNoPolicy only: explicit opt-in/out for supported content; omitted inspects. Default false; no approval or technical bypass.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv0.22.1
    • changedInput schema / properties / all / description
      Previous value: -"List the whole project, instead of focus lineage."New value: +"List whole project instead of focus lineage."
    • changedInput schema / properties / allow_insecure_artifacts / description
      Previous value: -"Policy only: explicitly enable or disable permissive custody for supported content. Omit to inspect; default false. Does not approve revisions or bypass technical checks."New value: +"Policy only: explicit opt-in/out for supported content; omitted inspects. Default false; no approval or technical bypass."
    • changedInput schema / properties / artifact / description
      Previous value: -"Stable artifact identity, never inferred from a filename."New value: +"Stable identity; never inferred from filename."
    • changedInput schema / properties / bundle / description
      Previous value: -"Project-relative JSON selection file for a complete frontend bundle, optionally with paired database and fixed runtime identity when sqlite_application is supported; capture only, exclusive with path."New value: +"Project-relative complete-bundle JSON selector; capture only, conflicts with path. SQLite requires paired database/runtime and installed support."
    • changedInput schema / properties / description / description
      Previous value: -"Required for capture: what this revision does, in one line of up to 280 Unicode characters."New value: +"Required capture purpose, one line, at most 280 Unicode characters."
    • changedInput schema / properties / from / description
      Previous value: -"Producer node for capture, or scope node for list."New value: +"Producer node for capture; scope node for list."
    • changedInput schema / properties / operation_id / description
      Previous value: -"Opaque ULID for retrying one capture without recapturing bytes."New value: +"Opaque capture retry ULID; do not recapture bytes."
    • changedInput schema / properties / revision / description
      Previous value: -"Exact retained revision for show, check or restore."New value: +"Exact revision for show, check or restore."
    • changedInput schema / properties / store / description
      Previous value: -"Check the retained store explicitly; takes no artifact identity."New value: +"Check retained store; no artifact identity."
  2. Changed2 schema fields changedv0.21.0
    • addedInput schema / properties / allow_insecure_artifacts
      Added value: +{
      +  "description": "Policy only: explicitly enable or disable permissive custody for supported content. Omit to inspect; default false. Does not approve revisions or bypass technical checks.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / operation / description
      Previous value: -"capabilities, list, show, capture, check or restore."New value: +"capabilities, policy, list, show, capture, check or restore."
  3. Changed2 schema fields changedv0.20.0
    • addedInput schema / properties / bundle
      Added value: +{
      +  "description": "Project-relative JSON selection file for a complete frontend bundle, optionally with paired database and fixed runtime identity when sqlite_application is supported; capture only, exclusive with path.",
      +  "type": "string"
      +}
    • addedInput schema / properties / description
      Added value: +{
      +  "description": "Required for capture: what this revision does, in one line of up to 280 Unicode characters.",
      +  "type": "string"
      +}
  4. Addedv0.18.2

TDQS

B3.1/5.0
Behavior4/5

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

With annotations declaring non-readonly, non-destructive and non-idempotent, the description still adds substantial behavior: restore never overwrites, check verifies the complete revision rather than paginated metadata, store check surfaces unrecorded objects, custody neither executes nor installs, strict privacy is the default, and PNG/MP4 require prior human review. It also warns never to enable allow_insecure_artifacts to retry a refusal. Remaining gaps are return shapes and idempotency semantics, which annotations only partially address.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is a dense, semicolon-chained block with no headings, operation grouping, or front-loaded summary, drifting across capture, list, check, restore, policy, and limits in one paragraph. Nearly every clause carries real content, so the failure is structure rather than padding. An agent must parse sequentially to find, for example, the capture preconditions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 16-parameter, six-operation tool with no output schema and no examples, the description covers many constraints (privacy defaults, review requirements, provenance guards) but never maps operations to parameters or describes what each operation returns. It also introduces a 'policy' operation that the enum does not contain, which leaves the calling contract ambiguous. Adequate but with clear gaps for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/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 and each parameter is already documented, including 'stable identity, never inferred from filename' and 'conflicts with path'. The prose adds value mainly through combinatorial rules (path OR bundle, artifact plus previous to continue an identity, absent destination for restore), but repeats much of what the schema already states. That is a modest lift over the schema, not a substantive one.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific purpose (retaining complete visual/interactive previews by default, other files requiring explicit delivery selection), but it is a multi-operation tool whose overall identity is never stated as a single sentence. The operation list in the prose ('capabilities, policy, list, show, capture, check or restore') does not match the enum, which omits 'policy', muddying what the tool actually does. An agent can extract the gist but must reassemble it from fragments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There are implied when-to-use rules per operation: 'Capture needs path OR bundle', 'List defaults to focus lineage; all lists the project', 'Continue an identity with artifact and previous'. It also steers toward self-contained frontends and says other file types need explicit delivery selection. However, no alternatives outside the tool are named, no explicit 'do not use when' guidance appears, and no operation-by-operation selection map is given.

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