mcp烧杯
](https://pepy.tech/projects/mcp-beaker) 
MCP服务器 烧杯 实验室自动化——系统配置、作业管理、发行版发现和故障诊断。
适用于任何Beaker服务器实例。建立在 FastMCP v3 并设计用于AI编码助手(Cursor、Claude Desktop等)。
特性
- 25工具 涵盖Beaker的整个生命周期:系统、作业、发行版、任务
- 灵活的身份验证:Kerberos(本机GSSAPI/SPNEGO或
bkrCLI回退)和密码(XML-RPC) - 作业XML验证:自动填充缺失的字段,推断发行版系列
- 故障诊断:对可纠正的故障进行自动重试的深入分析
- 10个文档主题 作为MCP资源公开
- 2个工作流提示 用于常见任务(储备系统、诊断作业)
- 通用的:适用于任何Beaker URL,可配置SSL/CA设置
安装
容器(推荐)
容器映像将所有内容捆绑在一起——除此之外没有主机依赖关系 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配置
光标/VS代码
添加到您的 .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)。
SSL证书: 许多Beaker服务器使用内部CA证书 不在容器的默认信任存储中。您有三个选择:
- 禁用验证 (最简单,在可信的企业网络上很好):
"-e", "BEAKER_SSL_VERIFY=false",- 通过CA证书内联 通过
BEAKER_CA_CERT_DATA(无需卷装载):
"-e", "BEAKER_CA_CERT_DATA=-----BEGIN CERTIFICATE-----\nMIID...your-ca-cert...\n-----END CERTIFICATE-----",- 安装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 | 仅限容器 | -- | Kerberos主体 kinit 集装箱内部 |
KRB5_PASSWORD | 仅限容器 | -- | 的Kerberos密码 kinit 集装箱内部 |
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工具
阅读工具(13)
| 工具 | 说明 |
|---|---|
list_systems | 按可用性列出系统(全部/可用/免费) |
get_system_details | 硬件规格、所有权、系统状态 |
get_system_history | 系统的活动历史记录 |
get_system_arches | 支持的操作系统系列和体系结构 |
list_jobs | 按所有者、状态、白板筛选作业 |
get_job_status | 带有故障诊断的作业状态 |
get_job_results_xml | 将作业结果导出为XML |
get_job_logs | 列出作业/配方/任务的日志文件 |
list_distro_trees | 按名称、家族、拱门、标签搜索发行版 |
list_os_families | 列出所有已知的操作系统系列 |
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服务器支持两个Kerberos后端,由 BEAKER_KERBEROS_BACKEND:
| 价值 | 后端 | 安装 |
|---|---|---|
http (默认) | 本机GSSAPI/SPNEGO --轻量级,可安装pip | pip install mcp-beaker[kerberos] |
bkr | bkr 命令行界面 子流程——传统的,需要RPM | yum install beaker-client |
两个后端使用来自的相同Kerberos票证 kinit.
密码
集 BEAKER_AUTH_METHOD=password 连同 BEAKER_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 (4 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/许可证
麻省理工学院
