Skip to main content
Glama

mcp-beaker

PyPI Version PyPI Downloads CI License Python

Beaker ラボ自動化のためのMCPサーバー -- システムプロビジョニング、ジョブ管理、ディストリビューション検出、障害診断に対応。

あらゆるBeakerサーバーインスタンスで動作します。FastMCP v3 上に構築され、AIコーディングアシスタント(Cursor、Claude Desktopなど)での使用を想定しています。

特徴

  • 27のツールでBeakerのライフサイクル全体をカバー:システム、ジョブ、ディストリビューション、タスク

  • Beaker Py3互換:レガシーとモダナイズドの両方のBeaker REST APIで動作

  • 柔軟な認証:Kerberos(ネイティブGSSAPI/SPNEGOまたはbkr CLIフォールバック)とパスワード(XML-RPC)

  • ジョブXML検証:欠落フィールドの自動入力、ディストリビューションファミリーの推論

  • 障害診断:修正可能な障害に対する自動リトライ付きの詳細分析

  • MCPリソースとして公開された10のドキュメントトピック

  • 一般的なタスク用の2つのワークフロープロンプト(システム予約、ジョブ診断)

  • 汎用性:あらゆるBeaker URLで動作し、SSL/CA設定を構成可能

Related MCP server: zuul-mcp

インストール

コンテナ(推奨)

コンテナイメージにはすべてがバンドルされており、ホスト側の依存関係は podman(またはdocker)のみです。Kerberos認証は、KRB5_PRINCIPALおよびKRB5_PASSWORD環境変数を介して コンテナ内で行われます。

# Pull the pre-built image from GHCR
podman pull ghcr.io/faizbawa/mcp-beaker:latest

# Or build locally from the repo
podman build -t mcp-beaker:latest -f Containerfile .

Pip / uvx

# Using uv (recommended)
pip install uv
uvx mcp-beaker

# Using pip
pip install mcp-beaker
mcp-beaker

# With native Kerberos support (no bkr CLI needed -- requires krb5-devel on host)
pip install mcp-beaker[kerberos]

# Local development
uv run --directory /path/to/mcp-beaker mcp-beaker

設定

Cursor / VS Code

.cursor/mcp.json(または.vscode/mcp.json)に追加します:

コンテナ(推奨)

{
  "mcpServers": {
    "beaker": {
      "command": "podman",
      "args": [
        "run", "--rm", "-i", "--network=host",
        "-e", "BEAKER_URL=https://beaker.example.com",
        "-e", "KRB5_PRINCIPAL=your-user@YOUR.REALM",
        "-e", "KRB5_PASSWORD=your-kerberos-password",
        "ghcr.io/faizbawa/mcp-beaker:latest"
      ]
    }
  }
}

コンテナは内部でkinitを実行するため、ボリュームマウントやホストの依存関係は 不要です。--network=hostを使用して、コンテナがKerberos KDCやBeaverサーバーに (特にVPN経由で)到達できるようにします。

チケットキャッシュをマウントしたコンテナ(設定ファイルにパスワードを入れない)

mcp.jsonにKerberosパスワードを保存する代わりに、ホストから既存の チケットキャッシュをマウントできます:

ステップ1 -- ホストにファイルベースのチケットを作成:

kinit -c FILE:/tmp/krb5cc_beaker your-user@YOUR.REALM

チケットの有効期限が切れたら(通常10時間ごと)、これを再実行します。

ステップ2 -- チケットをコンテナにマウント:

{
  "mcpServers": {
    "beaker": {
      "command": "podman",
      "args": [
        "run", "--rm", "-i", "--network=host",
        "-v", "/tmp/krb5cc_beaker:/tmp/krb5cc_0:ro,Z",
        "-e", "BEAKER_URL=https://beaker.example.com",
        "ghcr.io/faizbawa/mcp-beaker:latest"
      ]
    }
  }
}

コンテナは有効なチケットを検出し、kinitを完全にスキップします。 KRB5_PRINCIPALKRB5_PASSWORDは不要です。:ro,Zマウントフラグにより、 適切なSELinuxラベルで読み取り専用アクセスが保証されます。

注: ホストは通常、資格情報ストレージにKCM(D-Bus)を使用するため、 コンテナからはアクセスできません。そのため、バインドマウントできるファイルベースの キャッシュを作成するにはkinit -c FILE:...が必要です。

SSL証明書: 多くのBeakerサーバーは、コンテナのデフォルトのトラストストアにない 内部CA証明書を使用します。3つのオプションがあります:

  1. 検証を無効にする(最も簡単。信頼できる社内ネットワークで問題ありません):

"-e", "BEAKER_SSL_VERIFY=false",
  1. BEAKER_CA_CERT_DATAでCA証明書をインラインで渡す(ボリュームマウント不要):

"-e", "BEAKER_CA_CERT_DATA=-----BEGIN CERTIFICATE-----\nMIID...your-ca-cert...\n-----END CERTIFICATE-----",
  1. CAバンドルをマウントする(単一ファイル):

"-v", "/path/to/ca-bundle.crt:/tmp/ca-bundle.crt:ro",
"-e", "BEAKER_CA_CERT=/tmp/ca-bundle.crt",

Pip / uvx

{
  "mcpServers": {
    "beaker": {
      "command": "uvx",
      "args": ["mcp-beaker[kerberos]"],
      "env": {
        "BEAKER_URL": "https://beaker.example.com",
        "BEAKER_AUTH_METHOD": "kerberos",
        "BEAKER_KERBEROS_BACKEND": "http"
      }
    }
  }
}

ストリーミングHTTPモード

uvx mcp-beaker --transport streamable-http --port 8000
{
  "mcpServers": {
    "beaker": {
      "url": "http://localhost:8000/mcp",
      "type": "streamableHttp"
    }
  }
}

環境変数

変数

必須

デフォルト

説明

BEAKER_URL

はい

--

BeakerサーバーのベースURL

BEAKER_AUTH_METHOD

いいえ

kerberos

kerberos または password

BEAKER_KERBEROS_BACKEND

いいえ

http

http(ネイティブSPNEGO)または bkr(bkr CLI)

BEAKER_USERNAME

パスワード認証時

--

Beakerユーザー名

BEAKER_PASSWORD

パスワード認証時

--

Beakerパスワード

BEAKER_OWNER

いいえ

$USER

ジョブクエリのデフォルトオーナー

BEAKER_SSL_VERIFY

いいえ

true

SSL証明書を検証する

BEAKER_CA_CERT

いいえ

--

CA証明書バンドルへのパス

KRB5_PRINCIPAL

コンテナのみ

--

コンテナ内のkinit用Kerberosプリンシパル

KRB5_PASSWORD

コンテナのみ

--

コンテナ内のkinit用Kerberosパスワード

BEAKER_CA_CERT_DATA

コンテナのみ

--

起動時にファイルに書き込まれるPEMエンコードされたCA証明書

CLIオプション

mcp-beaker [OPTIONS]

Options:
  --transport [stdio|sse|streamable-http]  Transport type (default: stdio)
  --port INTEGER                           Port for HTTP transports (default: 8000)
  --host TEXT                              Host for HTTP transports (default: 0.0.0.0)
  --path TEXT                              Path for streamable-http (default: /mcp)
  --beaker-url TEXT                        Beaker server URL
  --ssl-verify / --no-ssl-verify           Verify SSL certs (default: verify)
  --ca-cert TEXT                           CA certificate bundle path
  --auth-method [kerberos|password]        Authentication method
  --kerberos-backend [http|bkr]            Kerberos backend (default: http)
  --read-only                              Disable all write tools
  --enabled-tools TEXT                     Comma-separated tools to enable
  -v, --verbose                            Increase verbosity (-v info, -vv debug)
  --version                                Show version
  --help                                   Show this message

ツール

読み取りツール(15)

ツール

説明

list_systems

可用性(all/available/free)でシステムを一覧表示

search_systems

CPU、アーキテクチャ、メモリ、プール、その他のハードウェア属性でシステムを検索

get_system_details

システムのハードウェア仕様、CPU情報、プールメンバーシップ、所有権、ステータスを取得

get_system_status

システムの現在の状態、予約、ローン状況を取得

get_system_history

システムのアクティビティ履歴を取得

get_system_arches

サポートされているOSファミリーとアーキテクチャを取得

list_jobs

オーナー、ステータス、ホワイトボードでジョブをフィルタリング

get_job_status

障害診断付きのジョブステータスを取得

get_job_results_xml

ジョブ結果をXMLとしてエクスポート

get_job_logs

ジョブ/レシピ/タスクのログファイルを一覧表示

list_distro_trees

名前、ファミリー、アーキテクチャ、タグでディストリビューションを検索

list_os_families

既知のOSファミリーをすべて一覧表示

whoami

認証済みユーザー情報を表示

list_lab_controllers

すべてのラボコントローラーを一覧表示

search_tasks

タスクライブラリを検索

書き込みツール(12)

ツール

説明

submit_job

XMLからジョブを送信(検証と自動入力付き)

clone_job

既存のジョブをクローンして再送信

cancel_job

実行中/キュー内のジョブをキャンセル

watch_job

障害分析と自動リトライ付きで完了までポーリング

reserve_system

システムを手動で予約

release_system

手動で予約したシステムを解放

loan_system

ユーザーにシステムのローンを許可

return_loan

現在のシステムローンの返却

power_system

システムの電源オン/オフ/再起動

provision_system

予約済みシステムにディストリビューションをプロビジョニング

extend_watchdog

実行中タスクのウォッチドッグタイマーを延長

set_job_response

レシピセット結果を承認/拒否(破棄)

認証

Kerberos(推奨)

有効なチケットがあることを確認します:

kinit your-username@YOUR.REALM

サーバーはBEAKER_KERBEROS_BACKENDで制御される2つのKerberosバックエンドをサポートしています:

バックエンド

インストール

http(デフォルト)

ネイティブGSSAPI/SPNEGO -- 軽量、pipインストール可能

pip install mcp-beaker[kerberos]

bkr

bkr CLIサブプロセス -- 従来型、RPMが必要

yum install beaker-client

どちらのバックエンドもkinitからの同じKerberosチケットを使用します。

パスワード

BEAKER_AUTH_METHOD=passwordBEAKER_USERNAMEおよびBEAKER_PASSWORDとともに設定します。サーバーはXML-RPCのauth.login_password()メソッドを介して認証します。これにはサーバー側でLDAPを有効にする必要があることに注意してください。

アーキテクチャ

src/mcp_beaker/
  __init__.py           # Click CLI entry point
  config.py             # BeakerConfig dataclass
  exceptions.py         # Custom exceptions
  client.py             # BeakerClient (XML-RPC + REST)
  models/               # Pydantic response models
  servers/
    __init__.py         # FastMCP server, lifespan, DI helper
    systems.py          # System tools (6 read + 6 write)
    jobs.py             # Job tools (4 read + 6 write)
    distros.py          # Distro tools (2 read)
    tasks.py            # Task tools (1 read)
    general.py          # General tools (2 read)
    prompts.py          # Workflow prompt templates
    resources.py        # Beaker documentation resources
  utils/
    xml_validation.py   # Job XML validation/auto-fill
    diagnosis.py        # Failure analysis engine
    formatting.py       # Human-readable formatters
    bkr_cli.py          # bkr CLI helpers
    parsing.py          # ID parsing utilities

開発

cd mcp-beaker
uv sync --dev
uv run pytest
uv run ruff check src/

ライセンス

MIT

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
1wRelease cycle
19Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Zuul CI/CD with 25 tools for builds, pipelines, queue management (enqueue/dequeue/promote), infrastructure visibility, and autohold management. Supports stdio, HTTP, and SSE transports.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server for infrastructure discovery and remote management, enabling SSH command execution, file transfer, log tailing, and machine/service inventory with a companion web dashboard.
    1

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

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