关于 MCP vs Manual vs A2A Nginx Installation
这是一个 Python 项目,对比模拟的手动 Nginx 安装、基于 MCP 的安装和模拟的 A2A Agent 工作流,面向学习基础设施自动化的 DevOps 工程师。
主要功能
- 01对比三种 Nginx 安装方式
- 02运行基于 MCP 的安装工作流
- 03模拟 A2A Agent 协作
- 04提供 Python 脚本和 MCP 配置
适用场景
- 01了解基于 MCP 的基础设施自动化
- 02比较手动与 Agent 驱动的安装流程
MCP 相关
项目通过 MCP 实现自动化 Nginx 安装工作流,也展示模拟的 A2A 协作流程。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP、手动和 A2A Nginx 安装
简介
本项目模拟了设置服务器(例如 Nginx)的三种不同方式:
- 传统的手动安装(模拟操作,不会实际配置系统)。
- 使用 Anthropic 的 MCP(Model Context Protocol)自动安装,本项目中已实际连接并正常运行(连接步骤将在本文后面说明)。
- 使用 Google 的 A2A(Agent2Agent Protocol)模拟协作式 Agent 设置。
本项目旨在展示,在不久的将来,DevOps 工程师如何利用 MCP,尤其是 A2A,来简化工作流、减少时间和精力、提高效率,并跨工具和环境自动执行复杂的基础设施任务。
什么是 MCP?
Anthropic 推出的 Model Context Protocol(MCP)是一种开放协议,用于标准化 AI 应用连接工具和数据源的方式。它让大模型能够理解可用工具、安全地访问这些工具,并决定如何使用它们,而无需针对每种情况进行硬编码。MCP 将复杂操作简化为高层意图。
什么是 A2A?
A2A(Agent2Agent Protocol)是 Google 几天前推出的一种新型开放协议。它使 AI Agent 能够相互发现、通信并跨不同系统协作,即使这些 Agent 由不同供应商构建也是如此。A2A 使开发者能够构建 Agent 生态系统,让 Agent 协同完成任务,从而创建智能、动态的工作流。
MCP 的实际示例:
可以把它想象成一种能连接所有厨房设备的工具。你不必每次做饭时都取出不同设备并逐一连接,而是使用一个系统连接所有设备,让工作更简单。MCP Agent 的工作方式也类似——它连接数据源,让设置服务器等任务更快、更轻松,而无需手动逐一集成。
A2A 的实际示例:
个人示例:通过 Agent 自动处理日常事务
想象一下,你有几个个人 AI Agent:
- 邮件 Agent
- 购物 Agent
- 日历 Agent
没有 A2A:
每个 Agent 都独立工作。你必须手动发送邮件、预约和购物。
使用 A2A:
你说:“我需要在明天之前买一副新耳机,而且我只有下午 5–6 点有空。”
- 邮件 Agent 检查你的收件箱。
- 日历 Agent 确认你的空闲时间。
- 购物 Agent 查找符合条件的优惠。
- 它们相互协调并完成任务。你会收到一条更新,其中包含配送信息和日历日程。
前提条件
开始之前,请确保你已准备好以下内容:
- 已安装 Python 3.x
- 已安装 Docker(用于运行 MCP Agent)
- 已安装 Visual Studio Code(VSCode)
- 已在 VSCode 中安装 Copilot 插件(用于与 MCP Agent 交互)
分步说明
步骤 2:使用 MCP Agent 自动安装
- 在 VSCode 中安装 Copilot 插件。
- 在 VSCode 中打开 JSON 文件。点击“Start”以打开 Copilot 聊天窗口。
- 在 Copilot 窗口中将 Mode 设置为“Agent”。
**注意:**要使用 MCP 配置,你需要 GitHub Personal Access Token。前往你的 GitHub 账户 → Settings → Developer settings → Personal access tokens,并生成具有适当权限的令牌。生成后,在 Copilot 输入框提示输入 github_token 时粘贴该令牌。
使用以下 JSON 代码
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "github_token",
"description": "GitHub Personal Access Token",
"password": true
}
],
"servers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
}
}
}
}
}
A2A 协议概述
A2A 是 Google 推出的开放协议,可让 Agent 进行通信、交换信息并协作处理复杂任务,甚至支持跨供应商协作。
✅ 优势
- Agent 之间可以相互协作
- 支持复杂的多 Agent 工作流
- 可以同时使用不同工具
- 支持实时扩展、监控和自定义
⚠️ 劣势
- 初始设置较为复杂
- 仍是一种非常新的(不断发展的)接口
🧪 真实 DevOps A2A 示例:部署与云维护
设想你是一名 DevOps 工程师,负责管理 AWS、GCP 和内部系统中的应用。
- 一个 Agent 管理 Terraform 基础设施。
- 另一个通过 Jenkins 触发 CI/CD。
- 第三个通过 Prometheus 监控性能。
- 第四个通过 Slack 发送更新。
不使用 A2A 时:
你需要手动整合每个步骤、处理不匹配问题,并手动管理每个连接。
使用 A2A 时:
- Jenkins Agent 运行构建。
- 向 Terraform Agent 发送一个“任务”以进行部署。
- 如果发生错误,Monitoring Agent 会提醒 Slack Agent。
现在,所有 Agent 都能相互通信并保持同步,即使它们使用不同的工具构建也是如此。
🎯 优势:
对你而言: 智能自动化处理数字化任务。
对 DevOps 而言: 模块化的 Agent 系统无需额外集成即可彼此通信。
提升效率,减少时间浪费,让基础设施具备可扩展性且透明。
📁 项目结构
MCP-MANUAL-A2A-nginx-install/
├── install_nginx.sh
├── mcp_config.json
├── mcp_nginx_install.py
├── nginx_install.py
├── a2a_simulation.py
├── requirements.txt
└── README.md
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。