返回市场
kube审计mcp

kube审计mcp

作者:mozillazg10 星标更新:2025-10-08

项目介绍

kube-audit-mcp

English | 简体中文

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

kube-audit-mcp

目录

安装

  1. 首先,从发布页面下载并安装最新版本。
    • 您也可以通过Docker进行安装:

      docker pull quay.io/mozillazg/kube-audit-mcp:latest
      
  2. 然后,配置Kubernetes审计日志的提供商。详情请参阅配置

MCP客户端

理论上,任何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

<details>

使用Claude Code CLI添加kube-audit-mcp:

claude mcp add kube-audit kube-audit-mcp mcp
</details>

Claude Desktop

<details>

遵循MCP安装指南,使用上面的标准配置。

</details>

Gemini CLI

<details>

遵循MCP安装指南,使用上面的标准配置。

</details>

VS Code

<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>

kubectl-ai

<details> 遵循MCP安装[指南](https://github.com/GoogleCloudPlatform/kubectl-ai/blob/main/pkg/mcp/README.md#local-stdio-based-server-configuration),使用如下配置:
servers:
  # 本地MCP服务器(基于stdio)
  - name: kube-audit
    command: kube-audit-mcp
    args:
      - mcp
</details>

传输选项

STDIO传输(默认)

默认传输模式使用标准输入/输出进行通信。 这是大多数客户端(如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

提供商

阿里云日志服务

前提条件:

<details> <summary>RAM权限</summary>
{
  "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}                # 替换为您自己的日志服务项目

AWS CloudWatch日志

前提条件:

<details> <summary>IAM权限</summary>
{
  "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日志组名称

Google Cloud日志

前提条件:

配置:

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)或相对时间(7d1h30m)。默认为7d
  • end_time(字符串,可选):查询的结束时间。如果省略,默认为当前时间。
  • limit(数字,可选):返回的日志条目最大数量。默认为10,最大为20
  • namespace(字符串,可选):按特定命名空间过滤日志。支持后缀通配符(例如,kube-*)。
  • resource_types(字符串数组,可选):按一个或多个Kubernetes资源类型过滤(例如,podsdeployments)。支持短名称(例如,podeploy)。使用list_common_resource_types发现可用类型。
  • resource_name(字符串,可选):按特定资源名称过滤。支持后缀通配符。
  • verbs(字符串数组,可选):按一个或多个动作动词过滤(例如,createdeleteupdate)。
  • user(字符串,可选):按执行操作的用户过滤。支持后缀通配符。

list_clusters

列出在config.yaml文件中配置的所有集群。这有助于发现您可以针对哪些集群进行查询。

参数:无

list_common_resource_types

返回常见Kubernetes资源类型的列表,按类别分组(例如,“核心资源”,“应用资源”)。这有助于找到query_audit_log工具中的resource_types参数的正确值。

参数:无