关于 Liongard
Liongard 是面向使用 Liongard 平台的团队和 AI 助手的 MCP 服务。其决策树式工具设计按需呈现检查器、系统、指标、警报、用户、群组、环境和集成工具,并支持 API v1 和 v2。
主要功能
- 01按需导航至领域工具
- 02操作检查器和系统
- 03访问指标和警报
- 04管理用户、群组和环境
- 05使用 API v1 和 v2
- 06查看交互式检测卡片
适用场景
- 01检查 Liongard 系统及其指标
- 02查看警报和检测详情
- 03浏览环境、用户和集成
MCP 相关
通过 MCP 工具提供 Liongard 平台操作,并以导航工具按需呈现领域专用工具。检测详情可在 MCP Apps 宿主中显示为只读交互式卡片。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm -e LIONGARD_API_KEY -e LIONGARD_INSTANCE -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-technology/liongard-mcp:v2.3.7LIONGARD_API_KEY密钥Liongard API access key (access key ID and secret combined per Liongard auth scheme)LIONGARD_INSTANCELiongard instance hostname (e.g. yourorg.app.liongard.com)MCP_TRANSPORTTransport mode for the server. Set to 'stdio' for local CLI use; the image defaults to 'http' for gateway hosting.AUTH_MODE密钥Credential source: 'env' reads vars locally, 'gateway' expects header injection from the WYRE MCP Gateway.LOG_LEVELLog verbosity: debug, info, warn, error本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/wyre-technology/liongard-mcp:v2.3.7stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Liongard MCP 服务
一个用于与 Liongard 平台交互的 MCP(模型上下文协议)服务。通过 Liongard 的 API,为 AI 助手提供管理检查器、系统、指标、警报、用户等内容的工具。
一键部署
重要
点击之前请注意: 此服务依赖
@wyre-technology/node-liongard, 该包托管在 GitHub Packages npm 注册表中。GitHub Packages 不支持匿名访问—— 即使该包是公开的,每次npm install也都需要令牌。云构建器会为你运行npm install, 因此你必须提供令牌,否则构建会失败,并显示npm error 401 Unauthorized ... npm.pkg.github.com。
- 创建一个具有
read:packages权限范围的 GitHub Personal Access Token(经典令牌)。 任何 GitHub 账户都可以——要读取其公开包,不需要加入wyre-technology组织。- 部署流程提示时,将其添加为构建变量:
- Cloudflare Workers → 将名为
NODE_AUTH_TOKEN的构建变量设为你的 PAT (Workers → Settings → Build → Variables and Secrets)。- DigitalOcean App Platform → 将名为
GITHUB_TOKEN、作用范围为 Build Time 的加密环境变量设为你的 PAT(Dockerfile 会读取该变量以安装依赖)。
功能
- 决策树式工具架构——从导航工具开始,随后按需提供特定领域的工具
- 提供 25 个工具,涵盖检查器、系统、指标、警报、用户、组、环境和集成
- 通过 MCP Apps 提供交互式检测卡片(SEP-1865):在 MCP Apps 宿主(Claude Desktop/web)中,
liongard_detections_get会渲染为只读卡片,显示严重性/状态徽章,以及由服务解析的系统/环境名称——默认采用中性色;可通过注入window.__BRAND__或设置MCP_BRAND_*环境变量(MCP_BRAND_NAME、MCP_BRAND_LOGO_URL、MCP_BRAND_PRIMARY_COLOR、MCP_BRAND_ACCENT_COLOR、MCP_BRAND_BG、MCP_BRAND_TEXT)进行品牌定制,无需重新构建 - 支持双 API 版本(v1 和 v2)
- 128 项测试
安装
此项目依赖发布在 GitHub Packages npm 注册表中的 @wyre-technology/node-liongard,
即使是公开包也需要令牌。
完成一次身份验证后即可安装:
# Authenticate npm to GitHub Packages (token needs the read:packages scope)
export NODE_AUTH_TOKEN=$(gh auth token) # or a PAT with read:packages
npm install
仓库中的 .npmrc 已将 @wyre-technology 作用域指向 GitHub Packages,并
从 NODE_AUTH_TOKEN 读取令牌,因此无需进行其他配置。
配置
复制 .env.example。Stdio 和 AUTH_MODE=env 会读取 Liongard 变量。网关模式不会读取。
| 变量 | 必填 | 说明 |
|---|---|---|
LIONGARD_API_KEY | Stdio 和 AUTH_MODE=env 必填 | Liongard API 密钥 |
LIONGARD_INSTANCE | Stdio 和 AUTH_MODE=env 必填 | Liongard 实例主机名(例如 yourorg.app.liongard.com) |
MCP_TRANSPORT | 否 | stdio(默认)或 http |
AUTH_MODE | 否 | env(默认)或 gateway。网关模式要求每个 /mcp 请求都携带 X-Liongard-API-Key 和 X-Liongard-Instance,且绝不会回退到 LIONGARD_*。 |
CONDUIT_S2S_SECRET | HTTP 必填 | 服务间密钥。如果该值为空或是已知占位符,HTTP 服务会记录错误并以非零状态码退出。未设置此项时,Compose 不会启动。切勿提交真实值。使用 openssl rand -hex 32 生成。 |
MCP_ALLOW_INSECURE_DEV | 否 | 仅在本地开发时设为 1,以便在没有 CONDUIT_S2S_SECRET 的情况下启动 HTTP。进程会记录警告,不会强制要求 X-Gateway-S2S,且仅绑定到 127.0.0.1。如果 MCP_HTTP_HOST 不是环回地址,则拒绝启动。仍会拒绝已知的占位符密钥。 |
MCP_HTTP_HOST | 否 | 设置了真实 CONDUIT_S2S_SECRET 时的绑定地址。未设置时使用 0.0.0.0,容器镜像也会设置此值,因此容器部署会在容器内的所有网络接口上监听。没有密钥时,开发绕过模式会改为绑定 127.0.0.1。 |
MCP_HTTP_PORT | 否 | HTTP 端口。默认为 8080。 |
/health 无需身份验证,也不会读取凭据。Stdio 传输不使用 CONDUIT_S2S_SECRET。
HTTP 身份验证
当设置了 MCP_TRANSPORT=http 和 CONDUIT_S2S_SECRET 时,每个 /mcp 请求都必须包含 X-Gateway-S2S。其值为 t=<unix seconds>,v1=<hex>,其中 v1 是以 CONDUIT_S2S_SECRET 为密钥、对精确字符串 t=<unix seconds> 进行 HMAC-SHA256 计算所得的值(64 个小写十六进制字符)。时间戳与服务器时钟的差值不得超过 300 秒。缺少此标头或标头无效时会返回 401。密钥绝不会写入日志。
import { createHmac } from "node:crypto";
const t = Math.floor(Date.now() / 1000);
const v1 = createHmac("sha256", process.env.CONDUIT_S2S_SECRET)
.update(`t=${t}`)
.digest("hex");
const xGatewayS2s = `t=${t},v1=${v1}`;
在 AUTH_MODE=gateway 模式下,/mcp 还要求提供 X-Liongard-API-Key 和 X-Liongard-Instance。这些标头是该请求唯一的凭据来源。请求缺少任一标头时会返回 401,且不会从环境中读取 LIONGARD_API_KEY 或 LIONGARD_INSTANCE。
Docker Compose
仓库中已提交的 Compose 服务采用网关模式。它会发布 127.0.0.1:8080:8080,要求设置 CONDUIT_S2S_SECRET,且不会设置 LIONGARD_API_KEY、LIONGARD_INSTANCE 或 env_file。
CONDUIT_S2S_SECRET=your-s2s-secret docker compose up --build
使用方法
npm start
在 CONDUIT_S2S_SECRET 设置为真实密钥之前,HTTP 不会启动:
MCP_TRANSPORT=http CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" npm start
没有密钥时,仅限开发环境使用本地 HTTP。它会绑定到 127.0.0.1 并记录警告:
MCP_TRANSPORT=http MCP_ALLOW_INSECURE_DEV=1 npm start
开发
npm run build # Build the project
npm run test # Run tests
npm run lint # Run linter
npm run typecheck # Type-check
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。