mcp-beaker
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BEAKER_URL | Yes | Base URL of your Beaker server (required) | |
| BEAKER_OWNER | No | Default owner for job queries | |
| KRB5_PASSWORD | No | Kerberos password (container only) | |
| BEAKER_CA_CERT | No | Path to CA certificate bundle | |
| KRB5_PRINCIPAL | No | Kerberos principal (container only) | |
| BEAKER_PASSWORD | No | Beaker password (required for password auth) | |
| BEAKER_USERNAME | No | Beaker username (required for password auth) | |
| BEAKER_SSL_VERIFY | No | Verify SSL certificates | true |
| BEAKER_AUTH_METHOD | No | Authentication method: 'kerberos' or 'password' | kerberos |
| BEAKER_CA_CERT_DATA | No | PEM-encoded CA cert (container only) | |
| BEAKER_KERBEROS_BACKEND | No | Kerberos backend: 'http' (native) or 'bkr' (CLI) | http |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| 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
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
| reserve_system | Reserve 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_job | Step-by-step diagnosis workflow for a Beaker job. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| beaker_docs_index | Index of all available Beaker documentation topics. |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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