English | 简体中文
kube-audit-mcp 是一个模型上下文协议 (MCP) 服务器,它赋予了AI代理、助手和聊天机器人查询Kubernetes审计日志的能力。

您也可以通过Docker进行安装:
docker pull quay.io/mozillazg/kube-audit-mcp:latest
理论上,任何MCP客户端都应该能与kube-audit-mcp配合工作。
标准配置 在大多数客户端中都能正常工作:
{
"mcpServers": {
"kube-audit": {
"type": "stdio",
"command": "kube-audit-mcp",
"args": [
"mcp"
]
}
}
}
<details>
<summary>使用Docker运行</summary>
您也可以通过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-m- cp:latest",
"mcp",
"--config",
"/etc/kube-audit-mcp/config.yaml"
],
"env": {
"ALIBABA_CLOUD_ACCESS_KEY_ID": "如果您使用阿里云SLSP提供者,则需要此值",
"ALIBABA_CLOUD_ACCESS_KEY_SECRET": "如果您使用阿里云SLSP提供者,则需要此值",
"AWS_ACCESS_KEY_ID": "如果您使用AWS CloudWatch日志提供者,则需要此值",
"AWS_SECRET_ACCESS_KEY": "如果您使用AWS CloudWatch日志提供者,则需要此值",
"GOOGLE_APPLICATION_CREDENTIALS": "如果您使用GCP Cloud日志提供者,则需要此值"
}
}
}
}
</details>
使用Claude Code CLI添加kube-audit-mcp:
claude mcp add kube-audit kube-audit-mcp mcp
</details>
遵循MCP安装指南,使用上面的标准配置。
</details>遵循MCP安装指南,使用上面的标准配置。
</details>遵循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代理一起使用。
</details>servers:
# 本地MCP服务器(基于stdio)
- name: kube-audit
command: kube-audit-mcp
args:
- mcp
</details>
默认传输模式使用标准输入/输出进行通信。 这是大多数客户端(如Claude Desktop)使用的标准MCP传输方式。
# 使用默认stdio传输运行
kube-audit-mcp mcp
# 或明确指定stdio
kube-audit-mcp mcp --transport stdio
kube-audit-mcp需要一个配置文件来指定Kubernetes审计日志的提供商。
配置文件通常位于~/.config/kube-audit-mcp/config.yaml或通过--config标志指定。
您可以使用以下命令获取示例配置:
kube-audit-mcp sample-config
<details>
<summary>这是一个示例配置文件</summary>
default_cluster: prod # 默认集群
clusters: # 集群列表
- name: prod # 集群名称
provider: # 提供商配置,详见下文
name: aws-cloudwatch-logs # 使用CloudWatch日志作为提供商
aws_cloudwatch_logs:
log_group_name: /aws/eks/test/cluster # 替换为您自己的CloudWatch日志组名称
- name: dev # 集群名称
provider:
name: alibaba-sls # 使用阿里云日志服务作为提供商
alibaba_sls:
endpoint: cn-hangzhou.log.aliyuncs.com # 替换为您自己的日志服务端点
project: k8s-log-cxxx # 替换为您自己的日志服务项目
logstore: audit-cxxx # 替换为您自己的日志服务存储
- name: test
provider:
name: gcp-cloud-logging # 使用Google Cloud日志作为提供商
gcp_cloud_logging:
project_id: test-233xxx # 替换为您自己的项目ID
cluster_name: test-cluster # 替换为您自己的GKE集群名称(可选)
</details>
或者保存示例配置到默认配置文件位置:
kube-audit-mcp sample-config --save
前提条件:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"log:GetLogStoreLogs"
],
"Resource": "*"
}
]
}
</details>
配置:
name: alibaba-sls
alibaba_sls:
endpoint: cn-hangzhou.log.aliyuncs.com # 替换为您自己的日志服务端点
logstore: ${log_store} # 替换为您自己的日志服务存储
project: ${project_name} # 替换为您自己的日志服务项目
前提条件:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:StartQuery",
"logs:GetQueryResults"
],
"Resource": "*"
}
]
}
</details>
配置:
name: aws-cloudwatch-logs
aws_cloudwatch_logs:
log_group_name: /aws/eks/${cluster_name}/cluster # 替换为您自己的CloudWatch日志组名称
前提条件:
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参数的正确值。
参数:无