Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BEAKER_URLYesBase URL of your Beaker server (required)
BEAKER_OWNERNoDefault owner for job queries
KRB5_PASSWORDNoKerberos password (container only)
BEAKER_CA_CERTNoPath to CA certificate bundle
KRB5_PRINCIPALNoKerberos principal (container only)
BEAKER_PASSWORDNoBeaker password (required for password auth)
BEAKER_USERNAMENoBeaker username (required for password auth)
BEAKER_SSL_VERIFYNoVerify SSL certificatestrue
BEAKER_AUTH_METHODNoAuthentication method: 'kerberos' or 'password'kerberos
BEAKER_CA_CERT_DATANoPEM-encoded CA cert (container only)
BEAKER_KERBEROS_BACKENDNoKerberos backend: 'http' (native) or 'bkr' (CLI)http

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_distro_treesA

Search available distro trees on the Beaker server.

Query the distro library to discover which distros are available before submitting a job. At least one search criterion is required.

list_os_familiesA

List all distro families (OS major versions) known to Beaker.

Returns family names like 'RedHatEnterpriseLinux10', 'Fedora41', etc. Optionally filter to families that have distros with specific tags.

whoamiA

Show the currently authenticated Beaker user.

Verifies that credentials are working and returns the username and email associated with the current session.

list_lab_controllersA

List all lab controllers attached to the Beaker server.

Lab controllers manage system provisioning in specific labs. Useful for troubleshooting distro availability issues.

list_jobsA

List Beaker jobs filtered by owner and other criteria.

Uses XML-RPC jobs.filter() to find matching job IDs, then optionally fetches full details for each via the REST API.

get_job_statusA

Check the status of a Beaker job and diagnose any failures.

Fetches detailed job information including recipe sets, recipes, and tasks, then highlights any problems found with failure analysis.

get_job_results_xmlA

Export Beaker job results as XML.

Returns the XML representation of a job component including its current state. Use clone=true to get XML suitable for resubmission.

get_job_logsA

List all log files for a Beaker job, recipe, or task.

Returns URLs to log files including console.log, anaconda logs, and task output. Critical for debugging installation failures.

submit_jobA

Submit a Beaker job from a complete job XML document.

The XML is validated before submission. Missing optional fields are auto-filled with sensible defaults. Uses Kerberos auth via the bkr CLI if available, otherwise falls back to XML-RPC password auth.

clone_jobA

Clone (re-submit) an existing Beaker job.

Fetches the original job's XML in clone mode, then submits it as a new job. Useful for retrying failed jobs or running the same test again.

cancel_jobA

Cancel a running or queued Beaker job.

Note: cancelling any part of a job (recipe, recipe set) cancels the entire job. The reason is recorded in the job history.

watch_jobA

Watch a Beaker job until completion, with failure analysis and auto-retry.

Polls the job continuously. On success, returns a report. On failure, performs deep analysis (failure reasons, constraints, suggestions) and can auto-generate a corrected XML and resubmit up to max_retries times. Also works on already-finished jobs for post-mortem analysis.

extend_watchdogA

Extend the watchdog timer for a running Beaker task.

Prevents a long-running reservation from being reclaimed by Beaker's watchdog. The task must be currently running.

set_job_responseA

Set the response (ack/nak) for a Beaker recipe set or job.

Used to acknowledge or waive recipe set results. Setting 'nak' is equivalent to waiving the result.

list_systemsA

List Beaker systems matching the filter criteria.

Returns a list of system FQDNs filtered by availability status. Use 'available' for systems you can reserve, 'free' for idle ones, or 'all' for the complete inventory.

search_systemsA

Search Beaker systems by hardware attributes.

Find systems matching CPU, architecture, memory, pool, and other hardware criteria. All filters are combined with AND logic.

get_system_detailsA

Get detailed information about a specific Beaker system.

Returns hardware specs, ownership, status, architectures, and lab controller assignment for the given system FQDN.

get_system_historyB

Get activity history for a Beaker system.

Shows who used the system, what changed, and when. Useful for investigating system state changes and usage patterns.

get_system_archesA

Get supported OS families and architectures for a Beaker system.

Returns a mapping of distro family names to their supported architecture list for the given system.

reserve_systemA

Manually reserve a Beaker system.

The system must be in 'Manual' condition and not currently in use. You must have permission to use the system. After reserving, you can provision it at will.

release_systemA

Release a manually reserved Beaker system.

You must be the current user of the system (i.e. you reserved it).

power_systemA

Control power for a Beaker system (on, off, or reboot).

Power control is not normally permitted when the system is in use by someone else. Use force=true to override this safety check.

loan_systemA

Grant a loan for a Beaker system.

The loan recipient gets full permissions to reserve, provision, and schedule jobs on the system. While loaned, only the recipient and the system owner can use it. You must have permission to loan the system (typically the owner or an admin).

return_loanA

Return a current loan on a Beaker system.

Either the loan recipient or a user with permission to loan the system can return it. The system reverts to its normal access policy.

provision_systemA

Provision a reserved Beaker system with a specific distro.

The system must be in 'Manual' condition and already reserved by you. Use list_distro_trees to find the distro_tree_id first.

search_tasksA

Search the Beaker task library for available test tasks.

Find tasks compatible with a given OS, distro, or package list. Returns task names and their excluded architectures.

Prompts

Interactive templates invoked by user choice

NameDescription
reserve_systemReserve a Beaker system with the given requirements. Generates a step-by-step workflow to find the latest matching distro, build a proper job XML, and submit it.
diagnose_beaker_jobStep-by-step diagnosis workflow for a Beaker job.

Resources

Contextual data attached and managed by the client

NameDescription
beaker_docs_indexIndex of all available Beaker documentation topics.

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/faizbawa/mcp-beaker'

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