albs-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ALBS_LOG_DIR | No | Directory for downloaded logs | /tmp/albs-logs |
| ALBS_JWT_TOKEN | No | JWT token for authenticated operations |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_platformsA | Get all available platforms and their supported architectures from ALBS. Returns the list of platforms with arch_list fetched dynamically from the build system. |
| get_build_infoA | Get build details: tasks, statuses, packages, architectures. Returns a summary of the build including each task's status, architecture, package name, and whether it has sign tasks. Also lists any linked builds (their -br repos are mixed into the buildroot), which is needed to accurately reproduce a similar rebuild. |
| get_failed_tasksA | Get failed tasks for a build with their available log files. Shows only tasks that failed, along with log file names. Key logs for debugging: mock_build, mock_stderr, mock_root. |
| download_logA | Download a build log file to local filesystem. The file will be saved to $ALBS_LOG_DIR// (default: /tmp/albs-logs//). After downloading, use read_log_tail to read the contents. |
| search_logA | Find the failure in a build log: grep it and return each hit with context. START HERE when investigating a failed build — do not read tails first.
In a parallel
Only the first |
| read_log_tailA | Read a page of a build log from the end, and page upward from there. Good for how the build terminated ( One call returns as many lines as fit in
|
| read_log_rangeA | Read a specific range of lines from a build log. Use this to widen the window around a line number that search_log
reported, or to inspect an earlier section. Reads forward from
Each line is clipped to |
| list_build_logsC | List all available log files for a build from the server. Shows all log and config files stored in Pulp for this build. |
| search_buildsA | Search builds on ALBS. Returns a page of builds. Each build line carries its task count, failed count, and release state,
then the packages as full NVRs ( Args: page: Page number (default 1). project: Filter by project/package name. is_running: Filter by running status. |
| get_sign_task_statusA | Get the status of sign tasks for a build. Use this after sign_build to check whether signing completed or failed. Returns each sign task's ID, status (idle/in_progress/completed/failed), and sign key ID. No authentication required. |
| get_productsA | List all products on ALBS. No authentication required. Returns each product's id, name, official/community flag, and the platforms it covers. Use this to pick the target product when creating a release plan with create_release_plan. |
| get_release_planA | View an existing release plan. No authentication required. Returns the release status (scheduled/in_progress/completed/failed/ reverted), product, platform, the source packages it covers, and the target repositories. |
| get_sign_keysA | Get available sign keys from ALBS. Requires JWT token. Returns key ID, name, keyid (GPG fingerprint short), and associated platform IDs needed for sign_build. |
| get_flavorsA | List all available platform flavors on ALBS. Returns flavor names and IDs, useful for verifying correct flavor names before creating builds with the flavors parameter. |
| create_buildA | 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. |
| sign_buildA | Sign a build on ALBS. Requires JWT token. Use get_sign_keys to see available sign key IDs. Args: build_id: The build ID to sign. sign_key_id: Sign key ID (default: 4). Use get_sign_keys to list. |
| create_release_planA | Create a release PLAN on ALBS. Requires JWT token. Creates a "scheduled" release and computes which packages go to which repositories. It NEVER performs the actual release — nothing is published. Committing the plan (the real release) is intentionally not supported here. The completed build tasks are collected automatically; the build must have completed tasks. Platform and product names are validated against ALBS — use get_platforms() and get_products() to see valid names. Args: build_id: The build to release. platform: Target platform name (e.g. "AlmaLinux-9"). product: Target product name (e.g. "AlmaLinux", "epel-al"). Use get_products() to list available products. build_ids: Optional additional build ids to include in the same plan. whole_packages_only: When True, include only packages whose every architecture task completed (drop half-built packages). Use for a PARTIAL build superseded by a 'retry failed' build. Default: False. |
| commit_releaseA | Commit (perform) a release. CURRENTLY BLOCKED. This server only creates release plans. Performing the actual release (publishing packages) is intentionally disabled. |
| delete_buildA | Delete a build. CURRENTLY BLOCKED. This operation is intentionally disabled for safety. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| investigate_build | Seed the build-failure investigation workflow for a build ID. |
| release_plan | Seed the release-plan workflow for a build ID (never releases). |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Each tool targets a distinct resource or action: get_* tools each fetch a specific entity (products, platforms, keys, flavors, release plans, build info), and log tools (download, search, tail, range) have clearly separated purposes. Even the two potentially overlapping tools (get_build_info vs get_failed_tasks) are distinct—one gives an overview, the other focuses specifically on failures. No two tools could be confused.
All tool names follow a consistent verb_noun snake_case pattern (e.g., get_build_info, create_build, read_log_tail, search_builds). Verbs are descriptive and nouns reference the subject clearly. There are no mixed conventions or vague names like 'process' or 'do_thing'.
At 19 tools, the server is on the heavier side but each tool serves a clear function within the build system domain. The count is justified by the breadth of operations (create/build, sign, release planning, log inspection, search). It does not feel bloated, though it is slightly above the typical 'sweet spot' of 10-15 tools.
The tool surface covers the full build lifecycle: creation, status retrieval, signing, failed-task inspection, log analysis, release plan creation, and search. Log tools are particularly thorough (search, tail, range, list). The only missing operation—commit_release—is explicitly blocked for safety, not an oversight. There are no dead ends; every workflow has the necessary supporting tools.