项目简介

Operable 是一个基于 Model Context Protocol (MCP) 构建的服务器,专注于 Google Cloud Platform (GCP) 和 Kubernetes 环境的事件响应。它通过集成的工具,使得非运维开发人员和时间受限的运维人员能够更有效地诊断和解决云环境中的问题。Operable 服务器可以与任何支持 MCP 协议的 AI 聊天界面(如 Cursor)配合使用,提供上下文信息和自动化功能。

主要功能点

  • OAuth 认证: 使用 OAuth 安全认证连接到 GCP。
  • GCP 问题工具: 查询和分析 GCP Error Reporting 中的活跃问题。
  • 日志工具: 查询 GCP Cloud Logging 和 Kubernetes Pod 的日志。
  • Kubernetes 工具: 检查 GKE 集群、节点池和资源。
  • 监控工具: 查询 GCP Cloud Monitoring 的指标和告警。
  • 文档工具: 搜索 GCP 和 Kubernetes 文档。
  • (计划中) 修复操作: 执行批准的修复步骤。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/ivanvanderbyl/operable.git
    cd operable
  2. 安装依赖:

    go mod download
  3. 配置 OAuth 凭据:

    • Google Cloud Console 中创建 OAuth 凭据 (客户端 ID 和客户端密钥)。
    • 设置以下环境变量:
      export GOOGLE_CLIENT_ID=你的客户端ID
      export GOOGLE_CLIENT_SECRET=你的客户端密钥
      或者,如果您使用服务账号凭据文件,请设置:
      export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/credentials.json

服务器配置

MCP 客户端需要配置以下 JSON 格式信息以连接到 Operable MCP 服务器。以下是使用 stdio 模式启动服务器的基础配置:

{
  "server name": "GCP/K8s Incident Response",
  "command": "go",
  "args": [
    "run",
    "cmd/main.go"
  ],
  "note": "以上为运行Operable MCP服务器的基础配置,默认以stdio模式启动。更多参数配置,例如使用 SSE 模式,请参考基本使用方法。"
}

参数注释:

  • '"server name"': 服务器名称,显示在 MCP 客户端中,例如 "GCP/K8s Incident Response"。
  • '"command"': 运行服务器的命令,这里使用 'go' 命令。
  • '"args"': 传递给 'go' 命令的参数列表:
    • '"run"': 'go run' 命令用于编译并运行 Go 程序。
    • '"cmd/main.go"': 指定要运行的 Go 程序入口文件。
  • '"note"': 配置的备注信息,说明当前配置为 stdio 模式。

更多配置 (SSE 模式):

如果您希望使用 SSE 模式 (HTTP) 运行服务器,可以使用以下配置,并修改 'args' 参数:

{
  "server name": "GCP/K8s Incident Response (SSE Mode)",
  "command": "go",
  "args": [
    "run",
    "cmd/main.go",
    "-mode=sse",
    "-addr=:8080",
    "-base-url=http://localhost:8080"
  ],
  "note": "使用 SSE 模式运行 Operable MCP 服务器,监听地址为 http://localhost:8080。"
}

SSE 模式参数注释 (在 'args' 列表中新增的参数):

  • '"-mode=sse"': 指定服务器运行模式为 SSE (Server-Sent Events)。
  • '"-addr=:8080"': 指定服务器监听的地址和端口,这里设置为 ':8080' (localhost 的 8080 端口)。
  • '"-base-url=http://localhost:8080"': 指定 SSE 模式下的基础 URL,客户端需要通过此 URL 连接服务器。

基本使用方法

  1. 启动服务器: 根据您选择的模式 (stdio 或 SSE),配置 MCP 客户端的 "服务器配置" 信息,并启动 Operable MCP 服务器。

    • Stdio 模式: 在项目根目录下,直接运行命令 'go run cmd/main.go'。
    • SSE 模式: 在项目根目录下,运行命令 'go run cmd/main.go -mode=sse -addr=:8080 -base-url=http://localhost:8080'。
  2. 连接客户端: 在支持 MCP 协议的客户端 (例如 Cursor) 中,根据 "服务器配置" 中的信息配置并连接到 Operable 服务器。

  3. 身份验证: 首次连接时,客户端会提示进行 Google Cloud 账号身份验证。按照提示完成 OAuth 授权流程。

  4. 使用工具: 连接成功后,您可以在客户端中使用自然语言或特定命令调用 Operable 提供的工具来诊断和响应 GCP/Kubernetes 事件。例如:

    • 在聊天界面中输入自然语言指令,例如 "列出我项目中的活跃告警" (取决于客户端的具体交互方式)。
    • 或者,使用客户端提供的工具调用功能,选择 'list_active_alerts' 工具并提供必要的参数 (例如 'project_id')。

    可用的工具包括:

    • 'list_active_issues': 列出 GCP Error Reporting 中的活跃问题。
    • 'get_issue_details': 获取特定错误组的详细信息。
    • 'query_logs': 查询 GCP Cloud Logging 日志。
    • 'get_pod_logs': 获取 Kubernetes Pod 的日志。
    • 'list_clusters': 列出 GKE 集群。
    • 'get_cluster_info': 获取 GKE 集群的详细信息。
    • 'list_node_pools': 列出 GKE 节点池。
    • 'query_metrics': 查询 GCP Cloud Monitoring 指标。
    • 'list_alerts': 列出 GCP Cloud Monitoring 活跃告警。
    • 'search_gcp_docs': 搜索 GCP 文档。
    • 'search_k8s_docs': 搜索 Kubernetes 文档。
    • 'get_error_docs': 获取错误代码或消息的文档。

    请参考工具的描述和参数,在 MCP 客户端中正确调用和使用这些工具,以辅助您进行 GCP 和 Kubernetes 环境的事件响应和诊断。

信息

分类

开发者工具