🚀 Red Hat Lightspeed MCP
(前身为 Insights MCP)
Red Hat Lightspeed 模型上下文协议(MCP)服务器是一个轻量级的自托管解决方案,它将基于大语言模型(LLM)的代理(如 Claude Desktop 和其他兼容 MCP 的工具)连接到 Red Hat Lightspeed 服务。
✨ 主要特性
- 支持只读操作:服务器默认以只读模式运行。使用
--all-tools 可启用写工具(例如创建蓝图、运行组合)。基于角色的访问控制(RBAC)权限也可限制访问。
- 提供自然语言提示:支持使用自然语言查询 Red Hat Lightspeed 服务。
📦 支持的 Lightspeed 服务
🚀 快速开始
认证
注意:访问 Red Hat Lightspeed API 才需要进行认证,MCP 服务器本身不需要认证。
有两种认证方式:
- 服务账户(客户端 ID + 客户端密钥):创建一个服务账户,并通过环境变量或 HTTP 头提供凭证。
- JWT 承载令牌:通过
Authorization: Bearer <token> HTTP 头提供现有的 JWT 令牌(仅适用于 SSE/HTTP 传输)。
服务账户设置
- 访问 https://console.redhat.com → 点击设置(⚙️ 齿轮图标)→ “服务账户”。
- 创建一个服务账户,并记住
客户端 ID 和 客户端密钥 以备后续使用。在下面的集成说明中,它们分别被称为 LIGHTSPEED_CLIENT_ID 和 LIGHTSPEED_CLIENT_SECRET。
工具集所需权限
不同的工具集需要服务账户具备特定的角色:
- 顾问工具:
RHEL 顾问查看器
- 库存工具:
库存主机查看器
- 漏洞工具:
漏洞查看器、库存主机查看器
- 修复工具:
修复用户
为服务账户授予权限
默认情况下,服务账户没有访问权限。组织管理员必须分配权限。MCP 服务器只能执行其被授权的任务。例如,如果用户希望允许只读操作并拒绝写操作,可以通过权限系统来实现。
有关详细的分步说明,请查看此视频教程:服务账户权限设置
- 以组织管理员身份登录,需具备用户访问管理员角色。
- 导航到用户访问设置:点击设置(⚙️ 齿轮图标)→ “用户访问” → “组”。
- 分配权限(选择一个选项):
- 选项 A - 创建新组:
- 创建新组(例如
mcp-service-accounts)。
- 添加所需角色(例如 RHEL 顾问查看器、库存主机查看器等)。
- 将您的服务账户添加到该组。
- 选项 B - 使用现有组:
- 打开具有必要角色的现有组。
- 转到 “服务账户” 选项卡。
- 将您的服务账户添加到该组。
您的服务账户将继承分配组中的所有角色。
⚠️ 安全注意事项 ⚠️
如果您在本地(使用 podman 或 docker)启动此 MCP 服务器,请确保容器不暴露在互联网上。在这种情况下,使用 LIGHTSPEED_CLIENT_ID 和 LIGHTSPEED_CLIENT_SECRET 可能没问题,尽管您的 MCP 客户端(如 VSCode、Cursor 等)可以获取您的 LIGHTSPEED_CLIENT_ID 和 LIGHTSPEED_CLIENT_SECRET。
如果您从不同的机器连接到此 MCP 服务器,您应该考虑到 LIGHTSPEED_CLIENT_ID 和 LIGHTSPEED_CLIENT_SECRET(或您的 JWT 承载令牌)会传输到 MCP 服务器,并且您需要信任远程 MCP 服务器不会泄露这些信息。
在这两种情况下,如果您有疑虑,请在使用完 MCP 服务器后,从您的账户中禁用/删除 LIGHTSPEED_CLIENT_ID 和 LIGHTSPEED_CLIENT_SECRET。
安全与事件响应(紧急撤销)
为确保人工智能操作的安全并符合安全标准,在出现异常的人工智能行为、意外的数据暴露或疑似令牌泄露的情况下,操作员必须能够迅速切断连接的大语言模型对 Red Hat Lightspeed 的访问。
紧急 “终止开关” 程序:
如果您需要立即撤销人工智能对工具集的访问,请执行以下步骤:
- 终止服务器:立即停止 MCP 容器或本地进程(例如,运行
podman ps 查找容器,然后执行 podman stop <容器 ID>)。
- 撤销凭证:使 MCP 服务器用于向 Red Hat 服务进行认证的 Red Hat 客户端 ID 无效。访问 “服务账户” 页面,然后
删除 或 重置 凭证。
此外,您可以从本地大语言模型客户端的配置中删除 MCP 服务器条目(例如客户端 mcp.json 中的 lightspeed-mcp),以防止客户端尝试重新启动或重新连接到服务器。
🔧 技术细节
工具集
有关 MCP 服务器中可用的工具集,请参阅 toolsets.md。
📚 详细文档
前提条件
确保您已安装 podman。(使用 Docker 也可以,但需要相应调整以下命令)
您可以在 Fedora/RHEL/CentOS 上使用 sudo dnf install podman 进行安装,或者在 macOS 上使用 Podman Desktop 或 brew install podman 进行安装。
⚠️ 注意:如果您在 macOS 上使用 Podman,有时需要显式设置 podman 的路径。例如,将 podman 替换为完整路径,可能是以下路径之一:
/usr/local/bin/podman
/opt/homebrew/bin/podman
- …
您可以在终端中运行 which podman 来查找路径。
VSCode
首先查看前提条件部分。
选项 1:一键安装(最简单)
(注意:此方法使用 quay.io 容器镜像)
选项 2:手动 STDIO 安装
要在您的项目中使用,请创建一个名为 .vscode/mcp.json 的文件,并包含以下内容:
{
"inputs": [
{
"id": "lightspeed_client_id",
"type": "promptString",
"description": "输入 Red Hat Lightspeed 客户端 ID",
"default": "",
"password": true
},
{
"id": "lightspeed_client_secret",
"type": "promptString",
"description": "输入 Red Hat Lightspeed 客户端密钥",
"default": "",
"password": true
}
],
"servers": {
"lightspeed-mcp": {
"type": "stdio",
"command": "podman",
"args": [
"run",
"--env",
"LIGHTSPEED_CLIENT_ID",
"--env",
"LIGHTSPEED_CLIENT_SECRET",
"--interactive",
"--rm",
"ghcr.io/redhatinsights/red-hat-lightspeed-mcp:latest"
],
"env": {
"LIGHTSPEED_CLIENT_ID": "${input:lightspeed_client_id}",
"LIGHTSPEED_CLIENT_SECRET": "${input:lightspeed_client_secret}"
}
}
}
}
Cursor
首先查看前提条件部分。
选项 1:一键安装(最简单)
⚠️ 使用 Ctrl/Cmd 点击 在 新标签页 中打开。否则,安装完成后标签页将关闭,您将无法再看到文档。
(注意:此方法使用 quay.io 容器镜像)
选项 2:手动 STDIO 安装
Cursor 似乎不支持 inputs,您需要在配置文件中添加凭证。要开始集成,请创建一个 ~/.cursor/mcp.json 文件,并包含以下内容:
{
"mcpServers": {
"lightspeed-mcp": {
"type": "stdio",
"command": "podman",
"args": [
"run",
"--env",
"LIGHTSPEED_CLIENT_ID",
"--env",
"LIGHTSPEED_CLIENT_SECRET",
"--interactive",
"--rm",
"ghcr.io/redhatinsights/red-hat-lightspeed-mcp:latest"
],
"env": {
"LIGHTSPEED_CLIENT_ID": "",
"LIGHTSPEED_CLIENT_SECRET": ""
}
}
}
}
如果您看到错误 Some tools have naming issues and may be filtered out.,请参阅已知问题。
选项 3:手动可流式 HTTP 安装(高级)
启动服务器:
podman run --net host --rm ghcr.io/redhatinsights/red-hat-lightspeed-mcp:latest http
然后使用 服务账户凭证 进行集成:
{
"mcpServers": {
"lightspeed-mcp": {
"type": "http",
"url": "http://localhost:8000/mcp",
"headers": {
"lightspeed-client-id": "",
"lightspeed-client-secret": ""
}
}
}
}
或者使用 JWT 承载令牌 进行集成:
{
"mcpServers": {
"lightspeed-mcp": {
"type": "http",
"url": "http://localhost:8000/mcp",
"headers": {
"Authorization": "Bearer <YOUR_JWT_TOKEN>"
}
}
}
}
Gemini CLI
首先查看前提条件部分。
选项 1:手动 STDIO 安装
要开始集成,请创建一个 ~/.gemini/settings.json 文件,并包含以下内容:
{
...
"mcpServers": {
"lightspeed-mcp": {
"type": "stdio",
"command": "podman",
"args": [
"run",
"--env",
"LIGHTSPEED_CLIENT_ID=<YOUR_CLIENT_ID>",
"--env",
"LIGHTSPEED_CLIENT_SECRET=<YOUR_CLIENT_SECRET>",
"--interactive",
"--rm",
"ghcr.io/redhatinsights/red-hat-lightspeed-mcp:latest"
]
}
}
}
选项 2:手动可流式 HTTP 安装(高级)
启动服务器:
podman run --net host --rm ghcr.io/redhatinsights/red-hat-lightspeed-mcp:latest http
[!NOTE]
对于 macOS 上的 podman 机器,您需要显式设置主机并暴露端口。
podman run -p 8000:8000 --rm ghcr.io/redhatinsights/red-hat-lightspeed-mcp:latest http --host 0.0.0.0
然后使用 服务账户凭证 进行集成:
{
...
"mcpServers": {
"lightspeed-mcp": {
"httpUrl": "http://localhost:8000/mcp",
"headers": {
"lightspeed-client-id": "<YOUR_CLIENT_ID>",
"lightspeed-client-secret": "<YOUR_CLIENT_SECRET>"
}
}
}
}
或者使用 JWT 承载令牌 进行集成:
{
...
"mcpServers": {
"lightspeed-mcp": {
"httpUrl": "http://localhost:8000/mcp",
"headers": {
"Authorization": "Bearer <YOUR_JWT_TOKEN>"
}
}
}
}
Claude Desktop
首先查看前提条件部分。
对于 Claude Desktop,项目的发布部分中有一个扩展文件。只需下载 red-hat-lightspeed-mcp*.mcpb 文件(或旧格式的 red-hat-lightspeed-mcp*.dxt),并在 Claude Desktop 中通过以下路径添加:设置 -> 扩展 -> 高级扩展设置 -> 安装扩展…
CLine 与 VSCode
首先查看前提条件部分。
首先,使用 sse 参数启动 SSE 服务器:
export LIGHTSPEED_CLIENT_ID=<YOUR_CLIENT_ID>
export LIGHTSPEED_CLIENT_SECRET=<YOUR_CLIENT_SECRET>
podman run --env LIGHTSPEED_CLIENT_ID --env LIGHTSPEED_CLIENT_SECRET --net host --rm ghcr.io/redhatinsights/red-hat-lightspeed-mcp:latest sse
在 CLine -> 管理 MCP 服务器 界面中,添加一个新的服务器名称和 URL:http://localhost:9000/sse。它将创建以下配置:
{
"mcpServers": {
"lightspeed-mcp": {
"disabled": false,
"type": "sse",
"url": "http://localhost:9000/sse"
}
}
}
确保 type 为 sse,因为 CLine 目前不支持 HTTP 传输。
通用 STDIO
首先查看前提条件部分。
要通过 STDIO 将其集成到其他工具中,您应该设置环境变量 LIGHTSPEED_CLIENT_ID 和 LIGHTSPEED_CLIENT_SECRET,并使用以下命令进行集成:
export LIGHTSPEED_CLIENT_ID=<YOUR_CLIENT_ID>
export LIGHTSPEED_CLIENT_SECRET=<YOUR_CLIENT_SECRET>
podman run --env LIGHTSPEED_CLIENT_ID --env LIGHTSPEED_CLIENT_SECRET --interactive --rm ghcr.io/redhatinsights/red-hat-lightspeed-mcp:latest
通过标准输入暴露的是 MCP API,而不是聊天界面。您需要一个具有 “代理功能” 的 MCP 客户端来连接到 red-hat-lightspeed-mcp 服务器并实际使用它。
Claude Code
首先查看前提条件部分。
Claude Code 需要对 podman 命令进行一些修改,因为它运行时无法访问主机环境。必须将凭证复制到配置中,在设置 LIGHTSPEED_CLIENT_ID 和 LIGHTSPEED_CLIENT_SECRET 环境变量后,可以使用以下命令完成:
export LIGHTSPEED_CLIENT_ID=<YOUR_CLIENT_ID>
export LIGHTSPEED_CLIENT_SECRET=<YOUR_CLIENT_SECRET>
claude mcp add red-hat-lightspeed-mcp -- podman run --env LIGHTSPEED_CLIENT_ID=$LIGHTSPEED_CLIENT_ID --env LIGHTSPEED_CLIENT_SECRET=$LIGHTSPEED_CLIENT_SECRET --interactive --rm ghcr.io/redhatinsights/red-hat-lightspeed-mcp:latest
或者直接在命令中设置变量:
claude mcp add red-hat-lightspeed-mcp -- podman run --env LIGHTSPEED_CLIENT_ID=<YOUR_CLIENT_ID> --env LIGHTSPEED_CLIENT_SECRET=<YOUR_CLIENT_SECRET> --interactive --rm ghcr.io/redhatinsights/red-hat-lightspeed-mcp:latest
要验证设置是否成功,在 Claude 终端中执行以下命令:
/mcp
如果成功,您应该在 “管理 MCP 服务器” 中看到 red-hat-lightspeed-mcp 并带有绿色的勾号,表示已连接。
URL 覆盖
如果您使用的是非标准的 RH Lightspeed URL,请相应地设置以下环境变量:
LIGHTSPEED_BASE_URL
LIGHTSPEED_SSO_BASE_URL
LIGHTSPEED_PROXY_URL
💻 使用示例
这篇博客文章提供了一些如何使用 RH Lightspeed MCP 服务器的示例。
您也可以向刚刚连接到 MCP 服务器的大语言模型提问,例如:
请解释 red-hat-lightspeed-mcp 以及我可以用它做什么?
有关每个工具集的具体示例问题,请查看测试文件:
CLI
对于某些用例,可能需要直接从命令行使用 MCP 服务器。有关 MCP 服务器的使用方法,请参阅 usage.md。
📦 版本发布
此 MCP 服务器发布了两个容器镜像:
ghcr.io/redhatinsights/red-hat-lightspeed-mcp:latest
quay.io/redhat-services-prod/insights-management-tenant/insights-mcp/red-hat-lightspeed-mcp:latest
它们都基于 main 分支,您可以使用其中任意一个。
带有 Insights 品牌的镜像已被弃用,但仍会保留一段时间,未来可能会被移除。
ghcr.io/redhatinsights/insights-mcp:latest
quay.io/redhat-services-prod/insights-management-tenant/insights-mcp/insights-mcp:latest
🐞 已知问题
Cursor
使用 Cursor 与 MCP 服务器时,您可能会遇到以下错误:
Some tools have naming issues and may be filtered out.
… exceeds 60 characters…
请将 MCP 配置文件(mcp.json)中的 MCP 服务器名称重命名为更短的名称。
{
"mcpServers": {
"red-hat-lightspeed-mcp-this-will-be-too-long": { # <--- 重命名此名称
…
📄 许可证
本软件按 “原样” 提供,不提供任何形式的明示或暗示保证。使用风险自负。作者和贡献者对因使用本软件而可能产生的任何损害或问题不承担责任。
🤝 贡献
请参考 hacking guide 以了解更多信息。