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_PRINCIPALKRB5_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 및 Beaker 서버에 도달할 수 있게 하세요(특히 VPN 사용 시).

마운트된 티켓 캐시가 있는 컨테이너(구성에 비밀번호 없음)

Kerberos 비밀번호를 mcp.json에 저장하는 대신, 호스트의 기존 티켓 캐시를 마운트할 수 있습니다:

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_PRINCIPAL 또는 KRB5_PASSWORD가 필요 없습니다. :ro,Z 마운트 플래그는 적절한 SELinux 라벨링과 함께 읽기 전용 액세스를 보장합니다.

참고: 호스트는 일반적으로 자격 증명 저장에 KCM(D-Bus)을 사용하므로 컨테이너가 접근할 수 없습니다. 그렇기 때문에 바인드 마운트할 수 있는 파일 기반 캐시를 만들려면 kinit -c FILE:...이 필요합니다.

SSL 인증서: 많은 Beaker 서버가 컨테이너의 기본 신뢰 저장소에 없는 내부 CA 인증서를 사용합니다. 세 가지 옵션이 있습니다:

  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"
      }
    }
  }
}

Streamable 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

가용성(전체/사용 가능/여유)별 시스템 목록

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

레시피 세트 결과에 대해 ack/nak(면제) 처리

인증

Kerberos(권장)

유효한 티켓이 있는지 확인하세요:

kinit your-username@YOUR.REALM

서버는 BEAKER_KERBEROS_BACKEND로 제어되는 두 가지 Kerberos 백엔드를 지원합니다:

백엔드

설치

http(기본값)

네이티브 GSSAPI/SPNEGO -- 경량, pip 설치 가능

pip install mcp-beaker[kerberos]

bkr

bkr CLI 하위 프로세스 -- 전통적, RPM 필요

yum install beaker-client

두 백엔드 모두 kinit의 동일한 Kerberos 티켓을 사용합니다.

비밀번호

BEAKER_AUTH_METHOD=passwordBEAKER_USERNAMEBEAKER_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