Skip to main content
Glama

job_start

Destructive

Start a Veeam backup job asynchronously, optionally previewing with dry_run. Poll progress via session_list or session_get; use job_stop to cancel.

Instructions

[WRITE] Start a backup job. Runs as an async session. Inverse: job_stop.

Poll progress with session_list / session_get; do not re-issue. Pass dry_run=True to preview.

Args: job_id: Veeam job id. dry_run: If True, preview without starting. target: Veeam target name from config.

Input Schema

NameRequiredDescriptionDefault
job_idYes
targetNo
dry_runNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.10.0
  2. Removedv0.8.0
  3. First observedv0.2.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true and idempotentHint=false, so the safety profile is covered. The description adds context the annotations cannot: the operation is asynchronous, progress is observed through session tools, and it must not be re-issued (concretely explaining the non-idempotent behavior). Auth requirements and failure modes remain unstated.

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

Conciseness5/5

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

Front-loaded with the [WRITE] marker and the core action, followed by behavior, inverse, polling guidance, and a compact Args block in three short lines. No sentence is filler and the agent-critical constraints appear before the parameter list.

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?

With no output schema, the description correctly substitutes by telling the agent how results are observed (session_list/session_get) and that polling rather than re-issuing is the pattern. Combined with annotation-covered safety, it is nearly complete for a 3-param async start tool; only error/conflict behavior is unaddressed.

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 description coverage is 0%, so the description carries the full burden and does document all three parameters: job_id as the Veeam job id, dry_run as a preview toggle, and target as a Veeam target name from config. The explanations are terse but sufficient to disambiguate each parameter, which is a large improvement over the bare schema titles.

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 ('Start a backup job') and immediately distinguishes itself from siblings by naming job_stop as its inverse and pointing to session_list/session_get for progress. An agent can pick this over job_retry or job_start-adjacent tools 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 real operational guidance: it runs as an async session, progress must be polled via session_list/session_get, and it must not be re-issued. It also offers dry_run=True as a preview path and names job_stop as the inverse. It does not, however, clarify when to choose this over job_retry, which is the most plausible adjacent alternative.

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