kube-audit-mcp 是一个模型上下文协议(MCP)服务器,它赋予 AI 代理、助手和聊天机器人查询 Kubernetes 审计日志的能力。
docker pull quay.io/mozillazg/kube-audit-mcp:latest
理论上,任何 MCP 客户端都可以与 kube-audit-mcp 配合使用。
标准配置 在大多数客户端中都适用:
{
"mcpServers": {
"kube-audit": {
"type": "stdio",
"command": "kube-audit-mcp",
"args": [
"mcp"
]
}
}
}
你也可以通过 Docker 运行 kube-audit-mcp,使用以下配置:
{
"mcpServers": {
"kube-audit": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/etc/kube-audit-mcp/config.yaml:/etc/kube-audit-mcp/config.yaml:ro",
"quay.io/mozillazg/kube-audit-mcp:latest",
"mcp",
"--config",
"/etc/kube-audit-mcp/config.yaml"
],
"env": {
"ALIBABA_CLOUD_ACCESS_KEY_ID": "needed_if_you_use_alibaba_sls_provider",
"ALIBABA_CLOUD_ACCESS_KEY_SECRET": "needed_if_you_use_alibaba_sls_provider",
"AWS_ACCESS_KEY_ID": "needed_if_you_use_aws_cloudwatch_logs_provider",
"AWS_SECRET_ACCESS_KEY": "needed_if_you_use_aws_cloudwatch_logs_provider",
"GOOGLE_APPLICATION_CREDENTIALS": "needed_if_you_use_gcp_cloud_logging_provider"
}
}
}
}
使用 Claude Code CLI 添加 kube-audit-mcp:
claude mcp add kube-audit kube-audit-mcp mcp
遵循 MCP 安装 指南,使用上述标准配置。
遵循 MCP 安装 指南,使用上述标准配置。
遵循 MCP 安装 指南,使用上述标准配置。你也可以使用 VS Code CLI 安装 kube-audit-mcp MCP 服务器:
# 对于 VS Code
code --add-mcp '''{"name":"kube-audit","command":"kube-audit-mcp","args":["mcp"]}'''
安装完成后,kube-audit-mcp MCP 服务器将可在 VS Code 中与你的 GitHub Copilot 代理一起使用。
默认的传输模式使用标准输入输出来进行通信。这是大多数客户端(如 Claude Desktop)使用的标准 MCP 传输方式。
# 使用默认的标准输入输出传输运行
kube-audit-mcp mcp
# 或者显式指定标准输入输出
kube-audit-mcp mcp --transport stdio
kube-audit-mcp 需要一个配置文件来指定 Kubernetes 审计日志的提供者。配置文件通常位于 ~/.config/kube-audit-mcp/config.yaml
,或者可以通过 --config
标志指定。
你可以通过以下命令获取示例配置:
kube-audit-mcp sample-config
或者将示例配置保存到默认配置文件位置:
kube-audit-mcp sample-config --save
前提条件:
配置:
name: alibaba-sls
alibaba_sls:
endpoint: cn-hangzhou.log.aliyuncs.com # 替换为你的日志服务端点
logstore: ${log_store} # 替换为你的日志服务日志库
project: ${project_name} # 替换为你的日志服务项目
前提条件:
配置:
name: aws-cloudwatch-logs
aws_cloudwatch_logs:
log_group_name: /aws/eks/${cluster_name}/cluster # 替换为你的 CloudWatch Logs 日志组名称
前提条件:
roles/logging.viewer
。配置:
name: gcp-cloud-logging
gcp_cloud_logging:
project_id: ${project_id} # 替换为你的项目 ID
cluster_name: ${cluster_name} # 替换为你的 GKE 集群名称(可选)
此 MCP 服务器向 AI 代理公开了以下工具:
query_audit_log
从配置的提供者处查询 Kubernetes 审计日志。这是调查集群活动的主要工具。
参数:
cluster_name
(字符串,可选):要查询的集群名称。你可以使用 list_clusters
工具查看可用的集群。默认为配置的 default_cluster
。start_time
(字符串,可选):查询的开始时间。可以是 ISO 8601 格式(2024-01-01T10:00:00
)或相对时间(7d
、1h
、30m
)。默认为 7d
。end_time
(字符串,可选):查询的结束时间。如果省略,默认为当前时间。limit
(数字,可选):要返回的最大日志条目数。默认为 10
,最大为 20
。namespace
(字符串,可选):按特定命名空间过滤日志。支持后缀通配符(例如,kube-*
)。resource_types
(字符串数组,可选):按一个或多个 Kubernetes 资源类型过滤(例如,pods
、deployments
)。支持短名称(例如,po
、deploy
)。使用 list_common_resource_types
来发现可用的类型。resource_name
(字符串,可选):按特定资源名称过滤。支持后缀通配符。verbs
(字符串数组,可选):按一个或多个操作动词过滤(例如,create
、delete
、update
)。user
(字符串,可选):按执行操作的用户过滤。支持后缀通配符。list_clusters
列出 config.yaml
文件中配置的所有集群。这有助于发现你可以针对哪些集群进行查询。
参数: 无
list_common_resource_types
返回常见的 Kubernetes 资源类型列表,按类别分组(例如,“核心资源”、“应用资源”)。这有助于为 query_audit_log
工具中的 resource_types
参数找到正确的值。
参数: 无