使用说明
工头mcp服务器
如何跑步
将VSCode与Copilot一起使用
通过uv启动服务器
uv run foreman-mcp-server \
--foreman-url https://foreman.example.com \
--foreman-username $FOREMAN_USERNAME \
--foreman-password $FOREMAN_PASSWORD \
--log-level debug \
--host localhost \
--port 8080 \
--transport stdio \
--no-verify-ssl
如果未提供默认值:
--foreman-url https://$hostname
--log-level INFO
--host '127.0.0.1'
--port 8080
--transport streamable-http
--verify-ssl
使用自定义CA证书
如果您的Foreman实例使用自定义CA证书,您有几个选项:
- 使用
--ca-bundle选项或FOREMAN_CA_BUNDLE环境变量:
uv run foreman-mcp-server \
--foreman-url https://foreman.example.com \
--foreman-username $FOREMAN_USERNAME \
--foreman-password $FOREMAN_PASSWORD \
--ca-bundle /path/to/ca-bundle.pem
- 将您的CA证书放置为
./ca.pem在工作目录中(自动检测):
cp /path/to/ca-bundle.pem ./ca.pem
uv run foreman-mcp-server \
--foreman-url https://foreman.example.com \
--foreman-username $FOREMAN_USERNAME \
--foreman-password $FOREMAN_PASSWORD
通过podman启动服务器
首先,构建容器:
podman build -t foreman-mcp-server .
现在运行容器:
podman run -it -p 8080:8080 foreman-mcp-server \
--foreman-url https://my-foreman-instance.something.somewhere \
--log-level debug \
--host localhost \
--port 8080 \
--transport streamable-http
在容器中使用自定义CA证书
要在容器中使用自定义CA证书,您可以将CA捆绑包装载到默认值 ca.pem 位置(自动检测)或指定自定义路径:
选项1:安装到默认位置(推荐)
# Standard container or UBI9 image - mount to /app/ca.pem
podman run -it -p 8080:8080 \
-v /path/to/your-ca-bundle.pem:/app/ca.pem:ro,Z \
foreman-mcp-server \
--foreman-url https://my-foreman-instance.something.somewhere \
--transport streamable-http
**Option 2: Mount to custom location**
```shell
podman run -it -p 8080:8080 \
-v /path/to/your-ca-bundle.pem:/custom/ca.pem:ro,Z \
foreman-mcp-server \
--foreman-url https://my-foreman-instance.something.somewhere \
--ca-bundle /custom/ca.pem \
--transport streamable-http
配置VSCode
# settings.json
{
"mcp": {
"servers": {
"foreman": {
"url": "http://127.0.0.1:8080/mcp/sse",
"type": "http",
"headers": {
"FOREMAN_USERNAME": "login",
"FOREMAN_TOKEN": "token"
}
}
}
},
}
运行VSCode客户端
- 按Ctrl+Shift+P
- 选择MCP:列出服务器命令
- 选择领班
- 按启动服务器
在Copilot聊天中使用
- 按Ctrl+Alt+I打开聊天
- 在配置工具中,仅选择MCP工具
- 聊天中可以列出提示,例如/mcp.foreman.basic_hosts_pending_sec_updates_static_report
- 可以通过添加上下文来附加资源。..>MCP资源>资源
使用MCP检查器
与mcp检查器一起使用
- 以以下方式启动检查器
npx @modelcontextprotocol/inspector - 打开
http://localhost:6274在浏览器中 - 集
Type到Streamable HTTP和URL到http://localhost:8080/mcp - 点击连接
在Linux上使用Claude桌面
注:这是高度实验性的。在运行CentOS Stream 9的虚拟机中测试。
安装
- 遵循安装步骤https://github.com/bsneed/claude-desktop-fedora?tab=readme-ov文件#1 fedora-package-new
- 如果它没有启动,试试`npm i-g electronic
配置
# ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"foreman": {
"command": "uv",
"args": ["--directory", "/home/$USER/foreman-mcp-server", "run","foreman-mcp-server", "--transport", "stdio", "--foreman-username", "login", "--foreman-password", "password/token"],
}
}
}
要在Claude Desktop中使用自定义CA证书,请执行以下操作:
# ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"foreman": {
"command": "uv",
"args": ["--directory", "/home/$USER/foreman-mcp-server", "run","foreman-mcp-server", "--transport", "stdio", "--foreman-username", "login", "--foreman-password", "password/token", "--ca-bundle", "/path/to/ca-bundle.pem"],
}
}
}
运行Claude客户端
这将启动UI应用程序,登录您的帐户。它将自动启动并连接到MCP服务器。
claude-desktop
- 点击
+按钮>从工头添加:>从服务器中选择任何提示和资源 - 单击配置按钮从服务器中选择工具
远程执行功能
MCP服务器可以触发Foreman主机上的远程执行作业。此功能是 选择加入 出于安全原因,默认情况下禁用。
启用远程执行
要启用远程执行,您必须使用 --allowed-rex-features 选项或 FOREMAN_ALLOWED_REX_FEATURES 环境变量:
uv run foreman-mcp-server \
--foreman-url https://foreman.example.com \
--foreman-username $FOREMAN_USERNAME \
--foreman-password $FOREMAN_PASSWORD \
--allowed-rex-features "katello_errata_install,katello_package_install"
或者使用环境变量:
export FOREMAN_ALLOWED_REX_FEATURES="katello_errata_install,katello_package_install"
uv run foreman-mcp-server ...
运作原理
-
基于允许列表的安全:中仅明确列出了远程执行功能
--allowed-rex-features可以被触发。任何使用不在列表中的功能的尝试都将被拒绝。 -
可用功能资源:配置允许的功能后,资源将在以下位置可用
foreman://remote_execution/allowed_features此资源返回有关每个允许功能的信息,包括:- 特征标签、ID、名称和描述
- 关联的作业模板ID和名称
- 任何错误(例如,如果Foreman中不存在该功能)
-
触发工具:The
trigger_remote_execution_job该工具仅在至少允许一个功能时启用。要使用它,AI代理应该:- 阅读“允许的远程执行功能”资源以查看可用功能
- 为任务选择合适的功能
- 使用
call_foreman_api_get读取功能的作业模板(resource: "job_templates",action: "show")查看它接受哪些输入 - 呼叫
trigger_remote_execution_job使用特征标签、搜索查询和适当的输入
常见远程执行功能
以下是一些常用的远程执行功能标签:
| 功能标签 | 描述 |
|---|---|
katello_errata_install |
在主机上安装勘误表 |
katello_package_install |
在主机上安装软件包 |
katello_package_update |
更新主机上的包 |
katello_package_remove |
从主机中删除包 |
katello_host_tracer_resolve |
解析Tracer检测到的服务 |
要在Foreman实例中查找所有可用功能,可以使用API:
curl -u $USER:$PASSWORD https://foreman.example.com/api/remote_execution_features
内容视图操作
MCP服务器可以发布、推广和增量更新内容视图。此功能是 选择加入 出于安全原因,默认情况下禁用。
启用内容视图操作
要启用内容视图操作,您必须使用 --allowed-cv-actions 选项或 FOREMAN_ALLOWED_CV_ACTIONS 环境变量:
uv run foreman-mcp-server \
--foreman-url https://foreman.example.com \
--foreman-username $FOREMAN_USERNAME \
--foreman-password $FOREMAN_PASSWORD \
--allowed-cv-actions "publish,promote,incremental_update"
或者使用环境变量:
export FOREMAN_ALLOWED_CV_ACTIONS="publish,promote,incremental_update"
uv run foreman-mcp-server ...
运作原理
-
基于允许列表的安全:仅在中明确列出的内容视图操作
--allowed-cv-actions可以被触发。如果该选项未设置或为空,则禁用所有内容视图工具。 -
可用工具:当允许执行特定操作时,相应的工具将启用:
| 操作 | 工具 | 描述 |
|---|---|---|
publish |
publish_content_view |
发布内容视图的新版本 |
promote |
promote_content_view_version |
将内容视图版本推广到生命周期环境 |
incremental_update |
incremental_content_view_update |
执行增量更新,向内容视图版本添加勘误表 |
- 使用流程:要使用内容查看工具,AI代理应:
- 使用
call_foreman_api_get查找内容视图(资源:"content_views",行动:"index") - 发布新版本
publish_content_view - 升级版本
promote_content_view_version - 使用
poll_task监控任务进度
- 使用