MCP vs Manual vs A2A Nginx Installation
roy3drucker
README
MCP vs 手动 vs A2A Nginx 安装
简介
本项目模拟了三种不同的服务器(例如,Nginx)设置方法:
- 传统的手动安装(模拟,并非实际系统设置)。
- 使用 Anthropic 的 MCP (模型上下文协议) 进行的自动化安装,该协议实际上已连接并在本项目中工作(连接步骤将在本文档后面解释)。
- 使用 Google 的 A2A (Agent2Agent 协议) 进行的模拟协作代理设置。
目标是演示近期的 DevOps 工程师如何利用 MCP,尤其是 A2A,来简化他们的工作流程,减少时间和精力,提高效率,并自动化跨工具和环境的复杂基础设施任务。
什么是 MCP?
Anthropic 的模型上下文协议 (MCP) 是一种开放协议,它标准化了 AI 应用程序连接到工具和数据源的方式。它使大型语言模型能够理解可用的工具,安全地访问它们,并决定如何使用它们,而无需为每种情况进行硬编码。 MCP 将复杂的操作简化为高级意图。
什么是 A2A?
A2A (Agent2Agent 协议) 是 Google 几天前推出的一个新的开放协议。它使 AI 代理能够发现彼此,跨不同系统进行通信和协作——即使这些代理是由不同的供应商构建的。 A2A 使开发人员能够构建可以协调任务的代理生态系统,从而创建智能、动态的工作流程。
MCP 的真实示例:
可以把它想象成一个连接所有设备的厨房工具。您无需每次做饭时都拿出不同的设备并连接它们,而是拥有一个连接所有设备并简化您工作的系统。 MCP 代理的工作方式类似——它连接数据源,使设置服务器等任务更快更容易,而无需手动集成每个数据源。
A2A 的真实示例:
个人示例:通过代理自动化日常事务
想象一下,您有几个个人 AI 代理:
- 电子邮件代理
- 购物代理
- 日历代理
没有 A2A:
每个代理单独工作。您必须手动发送电子邮件、预订约会和购物。
有 A2A:
您说:“我需要在明天之前购买新的耳机,而且我只有在下午 5-6 点之间有空。”
- 电子邮件代理检查您的收件箱。
- 日历代理验证您的可用性。
- 购物代理找到匹配的交易。
- 他们相互协调并完成任务。您会收到包含送货信息和日历条目的更新。
先决条件
在开始之前,请确保您拥有以下内容:
- 已安装 Python 3.x
- 已安装 Docker(用于运行 MCP 代理)
- 已安装 Visual Studio Code (VSCode)
- 在 VSCode 中安装了 Copilot 插件(用于与 MCP 代理交互)
分步说明
步骤 2:使用 MCP 代理自动化安装
- 在 VSCode 中安装 Copilot 插件。
- 在 VSCode 中打开 JSON 文件。单击“开始”以打开 Copilot 聊天窗口。
- 在 Copilot 窗口中将模式设置为“代理”。
注意: 要使用 MCP 配置,您需要一个 GitHub 个人访问令牌。转到您的 GitHub 帐户 → 设置 → 开发者设置 → 个人访问令牌,并生成一个具有适当权限的令牌。生成后,将令牌粘贴到 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 的开放协议,它使代理能够通信、交换信息并协作完成复杂的任务——即使跨越不同的供应商。
✅ 优点
- 代理相互协作
- 启用复杂的多代理工作流程
- 可以同时使用不同的工具
- 实时扩展、监控和定制
⚠️ 缺点
- 需要高级的初始设置
- 仍然是一个非常新的(不断发展的)接口
🧪 真实世界的 DevOps A2A 示例:部署和云维护
想象一下,您是一名 DevOps 工程师,负责管理跨 AWS、GCP 和内部系统的应用程序。
- 一个代理管理 Terraform 基础设施。
- 另一个使用 Jenkins 触发 CI/CD。
- 第三个使用 Prometheus 监控性能。
- 第四个通过 Slack 发送更新。
没有 A2A:
您手动集成每个步骤,处理不匹配问题,并手动处理每个连接。
有 A2A:
- Jenkins 代理运行构建。
- 向 Terraform 代理发送“任务”以进行部署。
- 如果发生错误,监控代理会向 Slack 代理发出警报。
现在,所有代理都可以通信和同步——即使是使用不同的工具构建的。
🎯 优势:
对您而言: 智能自动化您的数字任务。 对于 DevOps 而言: 模块化的基于代理的系统,无需额外的集成即可相互通信。 更高的效率,更少的浪费时间,可扩展且透明的基础设施。
📁 项目结构
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
推荐服务器
Crypto Price & Market Analysis MCP Server
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。
MCP PubMed Search
用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。
mixpanel
连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

Nefino MCP Server
为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。
Vectorize
将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。
Mathematica Documentation MCP server
一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。
kb-mcp-server
一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。
Research MCP Server
这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

Cryo MCP Server
一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。