Skip to main content
Glama

put_jobset

Idempotent

Create or update a Hydra CI jobset by setting flake or legacy Nix inputs and selected fields; existing fields remain unchanged when updating.

Instructions

Create a jobset, or change the given fields of an existing one (others keep their values).

Give flake for a flake jobset, or nix_expression_input/path plus inputs for a legacy one. Needs project ownership (or admin). New jobsets default to enabled, visible, no email, 300 s polling.

Input Schema

NameRequiredDescriptionDefault
flakeNoFlake URI, e.g. git+https://example.org/repo.git?ref=main; evaluates its hydraJobs
stateNo
inputsNoLegacy jobsets: {name: {type, value, email_responsible}}, replaces all inputs
jobsetYes
projectYes
visibleNo
instanceNoConfigured Hydra instance; omitted uses the default
keep_evalsNoEvaluations whose outputs are kept as GC roots
descriptionNo
email_overrideNo
check_interval_sNo0 disables polling
scheduling_sharesNo
email_notificationsNo
nix_expression_pathNoLegacy jobsets: path inside that input, e.g. release.nix
nix_expression_inputNoLegacy jobsets: input holding the expression

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Beyond annotations, it discloses that this is a partial update ('others keep their values'), requires project ownership or admin, and lists defaults for new jobsets. These are valuable behavioral details, though it does not discuss conflict handling or other operational limits.

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?

The description is three short paragraphs with no wasted language. The create/update purpose, branch selection, permissions, and defaults are front-loaded and easy to scan.

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 15-parameter mutation tool, the description covers the core invocation paths, permissions, and defaults. It still leaves many optional parameters dependent on sparse schema descriptions, so an agent may need to infer behavior for fields like state and scheduling_shares.

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?

With 15 parameters and only 47% schema description coverage, the description adds useful meaning for the flake-vs-legacy branch and for create-vs-update semantics. However, many optional fields such as state, visible, email_notifications, scheduling_shares, and description are left to the schema alone, which is a clear gap for a tool of this size.

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?

The description states a specific verb and resource: 'Create a jobset, or change the given fields of an existing one.' It also clarifies that unspecified fields keep their values, which is a meaningful distinction between create and partial update.

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?

It gives clear context for creation variants ('Give `flake` for a flake jobset, or nix_expression_input/path plus inputs for a legacy one') and states the required permission level. It does not explicitly name sibling alternatives such as get_jobset or put_project, so it falls short of full when-to-use/when-not guidance.

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