项目简介

Stakpak Agent 是一个专为运维和 DevOps 设计的安全增强型 AI Agent,其 MCP 服务器组件将 Agent 的核心功能以 Model Context Protocol (MCP) 标准化接口暴露给 LLM 客户端。该服务器支持多种工具模式(本地、远程、组合),提供端到端加密通信、动态密钥脱敏等安全特性,并能管理异步任务、执行文件操作、进行代码索引和文档搜索等。

主要功能点

  • 工具托管与执行: 提供丰富的 DevOps 工具,包括文件操作(读取、创建、替换、删除)、命令执行(本地及远程 SSH)、密码生成、文档搜索、内存搜索以及子 Agent 任务委托等。
  • 安全增强: 支持 mTLS (Mutual TLS) 端到端加密通信、动态密钥脱密(LLM 可操作密钥而无需知晓其真实值)、隐私模式(自动脱密 IP 地址、AWS 账户 ID 等敏感数据)。
  • 异步任务管理: 能够启动和监控后台命令,如端口转发、服务器启动,并支持任务取消和实时进度流。
  • 基础设施代码索引: 自动索引本地 Terraform、Kubernetes、Dockerfile 和 GitHub Actions 代码,支持语义搜索。
  • 可逆文件操作: 所有文件修改自动备份,支持恢复。
  • 会话管理与持久化: 服务器能够管理会话状态,并支持持久化知识,Agent 能从历史交互中学习。

安装步骤

  • 通过 Homebrew (Linux & macOS): 在终端执行以下命令进行安装:
    brew tap stakpak/stakpak
    brew install stakpak
    更新 Stakpak:
    brew update
    brew upgrade stakpak
  • 二进制发布: 直接从项目的 GitHub Releases 页面下载适用于您操作系统的最新二进制文件。
  • Docker: 使用 Docker 镜像运行 Stakpak Agent,该镜像包含了常用的 CLI 工具:
    docker pull ghcr.io/stakpak/agent:latest

服务器配置 (供 MCP 客户端连接)

MCP 客户端需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 才能与 Stakpak Agent MCP 服务器建立连接。以下是 Stakpak Agent MCP 服务器在不同工具模式下的配置信息示例。这些配置通常以 JSON 格式提供给 MCP 客户端库使用。

  • 本地模式 (Local Mode): 此模式下,MCP 服务器仅提供文件操作和本地命令执行工具,无需 API Key。默认启用 mTLS 端到端加密。

    {
      "name": "StakpakLocalMCP",
      "command": "stakpak",
      "args": ["mcp", "--tool-mode", "local"],
      "description": "连接到本地 Stakpak Agent MCP 服务器,仅启用本地文件和命令执行工具。默认启用 mTLS。",
      "requires_api_key": false,
      "enable_mtls": true
    }
  • 远程模式 (Remote Mode): 此模式下,MCP 服务器启用 AI 驱动的代码生成和搜索工具,需要有效的 Stakpak API Key。默认启用 mTLS。

    {
      "name": "StakpakRemoteMCP",
      "command": "stakpak",
      "args": ["mcp", "--tool-mode", "remote"],
      "description": "连接到 Stakpak Agent MCP 服务器,仅启用远程 AI 驱动的 DevOps 工具。需要配置 STAKPAK_API_KEY 环境变量。",
      "requires_api_key": true,
      "enable_mtls": true
    }
  • 组合模式 (Combined Mode - 默认): 此模式是默认设置,MCP 服务器启用所有本地和远程工具,需要有效的 Stakpak API Key。默认启用 mTLS。

    {
      "name": "StakpakCombinedMCP",
      "command": "stakpak",
      "args": ["mcp"],
      "description": "连接到 Stakpak Agent MCP 服务器,启用所有本地和远程工具。需要配置 STAKPAK_API_KEY 环境变量。默认启用 mTLS。",
      "requires_api_key": true,
      "enable_mtls": true
    }
  • 禁用 mTLS (不推荐用于生产环境): 如果出于特定原因需要禁用 mTLS,可以使用此配置。但请注意,这会降低通信安全性。

    {
      "name": "StakpakInsecureMCP",
      "command": "stakpak",
      "args": ["mcp", "--disable-mcp-mtls"],
      "description": "连接到 Stakpak Agent MCP 服务器,禁用 mTLS。不推荐用于生产环境。",
      "requires_api_key": true,
      "enable_mtls": false
    }
  • API Key 配置: 如果 MCP 服务器以远程或组合模式运行,您需要提供一个 Stakpak API Key。

    1. 访问 stakpak.dev 网站,登录并创建您的 API Key。
    2. 在启动 Stakpak Agent 之前,设置 'STAKPAK_API_KEY' 环境变量:
      export STAKPAK_API_KEY=<您的API密钥>
    3. (可选)您也可以将 API Key 保存到配置文件中:
      stakpak login --api-key $STAKPAK_API_KEY

基本使用方法

一旦 Stakpak Agent MCP 服务器通过上述 'command' 和 'args' 启动,兼容的 LLM 客户端(如基于 'modelcontextprotocol.io' 构建的客户端)即可通过 JSON-RPC 协议与其通信。客户端可以向服务器发送请求,调用其注册的工具(例如 'run_command'、'view'、'search_docs' 等),访问托管的资源,或者利用服务器定义的 Prompt 模板来定制与 LLM 的交互模式。服务器将接收这些请求并返回相应的 JSON-RPC 响应,或发送实时进度通知。

信息

分类

开发者工具