Skip to main content
Glama
nixkeeper
by nixkeeper

Hydra build failures

build_failures
Read-only

Search Hydra's nixpkgs master build results that are failed, dependency-blocked, unfinished, or queued; sort newest or longest-failing and see each package's last success.

Instructions

Search Hydra's builds of nixpkgs master (the builds digest, hourly) that aren't ok: failed (the package's own failure, with why from its log and an excerpt), dependency (blockedBy: which dependency failed), unfinished, queued. Newest first, or longest failing first. With the last success of each.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sortNonewest (default: finished most recently) or longestFailing (never succeeded, then oldest last success).
limitNoAt most this many results (default 50).
sinceNoOnly since then: "24h", "7d", "2w", or a day or time (ISO 8601).
reasonNoWhy a failed build failed: compile, tests, link, header, cmake4, cmake, boost, pythonImport, pythonDeps, pythonBuild, pythonMetadata, haskellDeps, npm, lisp, home, download, hash, patch, substitute, missingFile, symlinks, patchelf, autotools, disk, other, noLog.
searchNoPart of an attribute.
statusNofailed (default), dependency, unfinished, queued, or notOk for all of them.
systemNoA Hydra system.
packageNoAn attribute, or a set's prefix (python313Packages): its builds and its members'.
blocked_byNoDependency failures blocked by this attribute (status dependency).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds real value beyond that: data source and freshness ("the builds digest, hourly"), the meaning of each status (dependency -> blockedBy which dependency failed), sort order, and return content ("with the last success of each"). Only auth/rate-limit context is absent.

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?

Dense but front-loaded: the verb/resource/scoping sentence comes first, followed by two short fragments on ordering and return content. It is telegraphic rather than wasteful, though the run-on enumeration of statuses is a little heavy.

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 9 params and no output schema, the description should carry return-value burden, and it does partially explain result content (why from the log, an excerpt, last success). It leaves other params (system, package, blocked_by, since, reason, limit) to the schema, which fully documents them.

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 the baseline is 3. The description nevertheless adds semantics the schema lacks, explaining what the status categories mean (e.g. dependency failures expose blockedBy) and what each sort yields ("newest" vs "longest failing first"), which genuinely helps parameter selection.

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 and resource ("Search Hydra's builds of nixpkgs master that aren't ok") and enumerates the four status categories it returns. An agent can immediately tell this is a read-only failure-listing tool, distinct from siblings like find_packages or needs_attention.

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?

Usage is implied by the scope description (finding non-ok builds), but there is no explicit when-to-use, when-not, or named alternative. Siblings such as needs_attention and update_attempts could overlap, and nothing here routes the agent between them.

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