Skip to main content
Glama
AlmaLinux

albs-mcp

Official
by AlmaLinux

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ALBS_LOG_DIRNoDirectory for downloaded logs/tmp/albs-logs
ALBS_JWT_TOKENNoJWT 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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 make -j log the real compile error sits hundreds of lines above the end, so the tail shows only make: *** Error 2: the symptom, not the cause. This finds the cause in one call.

pattern is a Python regex; omit it to use the built-in build-failure signatures (compiler/link errors, failed patch hunks, unresolved BuildRequires, RPM packaging errors, %check failures, OOM/network trouble). Matched lines are prefixed >>> and every line is numbered, so a hit's number can be fed straight to read_log_range to see more.

Only the first max_matches hits are reported — the first error is the root cause and the rest are cascades — but the header counts all of them. Lines are clipped to max_line_chars around the match (0 = verbatim, needed when quoting an exact multi-KB command line). The log is downloaded automatically if not already on disk.

read_log_tailA

Read a page of a build log from the end, and page upward from there.

Good for how the build terminated (RPM build errors:, the mock exception). To FIND a compile error, use search_log — the end of a make -j log holds only the wrapper error.

One call returns as many lines as fit in max_chars (~10k tokens), up to lines lines. That budget is what sizes the page: the same budget is about 165 lines of a mock_build log or 350 of a mock_root, so a fixed line count would be wrong for one of them. The result ends with the exact call for the page above it — before_line=<first line shown> — so walking a log bottom to top needs no arithmetic and skips nothing.

before_line=N reads the page ending at line N-1. Each line is clipped to max_line_chars (0 = verbatim); keep the clip on, mock_build lines can be several KB of gcc flags. The log is downloaded automatically if not already on disk — no need to call download_log first.

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 start_line; a range too large for max_chars stops early and tells you the call to continue with, so nothing is silently lost.

Each line is clipped to max_line_chars (0 = verbatim). The log is downloaded automatically if not already on disk — no need to call download_log first.

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 (mingw-glib2-2.89.2-1.el10) so a version question can be answered without opening the build. When project is set, the packages that matched it are listed on their own match: line — the remaining ones are summarised and may be truncated.

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

NameDescription
investigate_buildSeed the build-failure investigation workflow for a build ID.
release_planSeed the release-plan workflow for a build ID (never releases).

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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