项目简介
KubeStellar A2A Agent 是一个基于 Model Context Protocol (MCP) 构建的服务器端应用,旨在通过标准化的方式向大型语言模型(LLM)客户端提供丰富的上下文信息和操作能力。它将复杂的Kubernetes多集群管理任务抽象为可供LLM调用的工具,从而实现智能化的集群运维、资源部署和故障排查。
主要功能点
- 多集群管理与分析: 深度搜索、拓扑分析、资源清单管理,覆盖KubeStellar架构中的WDS(工作负载描述空间)、ITS(库存与传输空间)和WEC(工作负载执行集群)。
- Helm Chart 部署集成: 支持跨集群Helm Chart的安装、升级、卸载,并能自动创建KubeStellar BindingPolicy以实现智能化的工作负载分发。
- Kubernetes 资源操作: 提供对Kubernetes集群(包括kubeconfig管理、命名空间工具、GVRC资源发现、多集群资源创建与日志聚合)的细粒度操作能力。
- 可插拔的LLM提供商支持: 虽然MCP服务器本身不托管LLM,但其内置的交互式AI Agent支持集成OpenAI和Google Gemini等主流LLM服务。
- 标准化上下文服务: 通过JSON-RPC协议提供上下文服务,包括资源管理、工具执行和会话管理,为LLM应用提供安全、可扩展的后端支持。
安装步骤
- 环境准备:
- 确保已安装 Python 3.8+。
- 确保已安装 'kubectl' 工具并配置好您的Kubernetes集群上下文。
- 推荐使用 'uv' 管理Python虚拟环境和依赖。
- 克隆仓库:
git clone https://github.com/kubestellar/a2a.git cd a2a - 创建并激活虚拟环境:
uv venv # 激活虚拟环境 (Linux/macOS) source .venv/bin/activate # 激活虚拟环境 (Windows PowerShell) .venv\Scripts\Activate.ps1 - 安装依赖:
uv pip install -e ".[dev]" - 配置LLM API Key (可选,用于交互式AI Agent):
如果您想使用内置的交互式AI Agent功能,需要配置API Key。
uv run kubestellar config set-key openai YOUR_OPENAI_API_KEY uv run kubestellar config set-key gemini YOUR_GEMINI_API_KEY # 设置默认提供商 uv run kubestellar config set-default gemini
服务器配置
该仓库提供了一个MCP服务器实现,可以集成到支持MCP协议的LLM客户端中(例如Claude Desktop)。您需要将以下配置添加到MCP客户端的配置中,以使其能够启动并连接到KubeStellar A2A MCP服务器。
{ "mcpServers": { "kubestellar": { "command": "uv", "args": ["run", "kubestellar-mcp"], "cwd": "/path/to/a2a" } } }
- 'kubestellar': 您为该MCP服务器实例定义的名称,LLM客户端将使用此名称来引用它。
- 'command': 启动MCP服务器的命令。这里使用 'uv' 命令来运行 Python 项目中定义的 'kubestellar-mcp' 入口点。
- 'args': 传递给 'command' 的参数列表。'run kubestellar-mcp' 指示 'uv' 运行名为 'kubestellar-mcp' 的脚本或模块,该模块包含MCP服务器的启动逻辑。
- 'cwd': MCP服务器进程的工作目录。请务必将其替换为您的 'a2a' 仓库在本地文件系统中的绝对路径。
基本使用方法
-
启动交互式AI Agent (可选):
uv run kubestellar agent # 或指定提供商 uv run kubestellar agent --provider openai这将启动一个命令行交互界面,您可以在其中与LLM交互,并让LLM调用A2A Agent提供的工具来管理Kubernetes。
-
通过MCP客户端连接: 按照上述“服务器配置”部分,将配置添加到您的MCP客户端。客户端启动后将自动连接并与KubeStellar A2A MCP服务器交互,LLM将能够通过MCP协议调用Agent提供的Kubernetes管理工具。
-
直接通过CLI调用工具: 您也可以直接通过CLI命令调用A2A Agent提供的任何工具函数,这对于自动化脚本或测试非常有用。
# 列出所有可用工具函数 uv run kubestellar list-functions # 查看特定工具函数的详细描述和参数Schema uv run kubestellar describe get_kubeconfig # 执行特定工具函数(例如获取kubeconfig摘要) uv run kubestellar execute get_kubeconfig --param kubeconfig_path=/path/to/your/kubeconfig --param detail_level=summary # 或使用JSON格式参数 uv run kubestellar execute get_kubeconfig --params '{"kubeconfig_path": "/path/to/your/kubeconfig", "detail_level": "summary"}'
信息
分类
开发者工具