Skip to main content
Glama
AlmaLinux

albs-mcp

Official
by AlmaLinux

create_build

Create a build on AlmaLinux Build System for selected platforms and packages, with options for branches, tags, or SRPM URLs.

Instructions

Create a new build on ALBS. Requires JWT token.

Platforms and allowed architectures are fetched dynamically from ALBS. Use get_platforms to see available options.

For EPEL builds (SRPMs from dl.fedoraproject.org/pub/epel/), the tool automatically applies EPEL-specific flavors and defaults arch to x86_64_v2.

Args: platform: Target platform (single). Use get_platforms to see available options. platforms: List of target platforms to build on (e.g. ["AlmaLinux-8", "AlmaLinux-9"]). Can be used alone or combined with platform. At least one must be provided. packages: List of package names (for git/branch) or SRPM URLs (for from_srpm). For from_tag: use "pkg_name tag_name" format or just "tag_name". At least one of packages or git_urls must be provided. git_urls: List of custom Git repository URLs to build from (e.g. ["https://github.com/user/repo.git"]). Use for repos outside git.almalinux.org/rpms. The branch parameter sets the git ref. For from_tag, use "url tag_name" format. Cannot be used with from_srpm. branch: Git branch to build from (e.g. "a8", "c9s"). from_tag: Build from git tags instead of branch. from_srpm: Build from source RPM URLs. tags: Explicit tags for each package when from_tag=True (must match packages length). arch_list: Architectures to build. Default: all for the platform (x86_64_v2 for EPEL builds). skip_tests: Disable %check phase by adding --define "__spec_check_template exit 0;" to mock definitions. add_epel_dist: Extract .elN dist suffix from each package name/URL and set it as a per-task mock definition: dist=".elN.alma_altarch". Only works with from_tag or from_srpm. Recommended for EPEL-altarch builds. beta: Enable beta flavor. secureboot: Enable SecureBoot signing. nosecureboot: Override secureboot requirement for SB packages. excludes: Space-separated packages to exclude from mock. definitions: Dict of mock definitions, e.g. {"dist": ".el9"}. linked_builds: Build IDs to link. flavors: Additional flavor names. with_opts: Mock --with options. without_opts: Mock --without options. modules: Modules to enable, e.g. ["nodejs:18"]. independent_tasks: When True, disables the per-platform sequential task chain so packages build independently / in parallel within each platform (the default ALBS behavior chains task N's start on task N-1's completion). Applied to every platform entry in the payload. Default: False.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
betaNo
tagsNo
branchNo
flavorsNo
modulesNo
excludesNo
from_tagNo
git_urlsNo
packagesNo
platformNo
arch_listNo
from_srpmNo
platformsNo
with_optsNo
securebootNo
skip_testsNo
definitionsNo
nosecurebootNo
without_optsNo
add_epel_distNo
linked_buildsNo
independent_tasksNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

Since no annotations are provided, the description carries the full burden. It discloses authentication needs (JWT token), dynamic fetching of platforms/architectures, automatic EPEL handling, and the behavior of independent_tasks and skip_tests. It doesn't explicitly state that this is a mutating operation, but 'create' implies it. It also doesn't describe side effects or reversibility, but that's not critical for a create action. Overall it's quite transparent.

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?

The description is lengthy but every sentence provides necessary information given the 22 parameters. It is structured with an intro on EPEL and an 'Args:' section with clear bullet-like formatting. It front-loads the purpose and then systematically covers each parameter. Not a single sentence is fluff, so it earns its length. Slightly less concise than ideal due to volume, but that's warranted.

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

Completeness5/5

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

Given the high complexity (22 params, no annotations), the description is remarkably complete. It covers parameter semantics, constraints, special cases (EPEL, from_tag/from_srpm), and references get_platforms for available options. It also notes the output schema exists (though not shown), so return values don't need explanation. An agent has enough information to invoke the tool correctly without guessing.

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

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must fully compensate. It provides detailed meanings for all 22 parameters, including constraints (e.g., at least one of packages/git_urls, cannot combine git_urls with from_srpm), format examples (e.g., 'pkg_name tag_name' for from_tag), and special behaviors (add_epel_dist extracts dist suffix). This is exemplary parameter documentation.

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

Purpose4/5

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

The description states 'Create a new build on ALBS' which is a specific verb (create) and resource (build on ALBS). It also notes the JWT token requirement. It doesn't explicitly contrast with sibling tools like create_release_plan, but the action is distinct and unambiguous. One point off because it doesn't explicitly name the sibling it's not, but the purpose is clear.

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?

The description provides context for when to use certain parameters (e.g., EPEL builds auto-apply flavors, from_tag vs from_srpm, uses get_platforms for available options). It explains constraints like 'Cannot be used with from_srpm' and 'At least one must be provided'. It doesn't explicitly say 'use this instead of X' but the context is clear for a create operation with no direct alternative.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AlmaLinux/albs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server