利用云形成脚本和模板创建一个可扩展的服务器,并提供示例 A2A 和 MCP 服务。
对于每个云基础设施,脚本可以优化 VPC、NAT、缓存、可扩展数据库、可扩展计算、原生安全以及不同的AI模型提供商。
演示使用DIDs、JWT和标准HTTPS头的通用认证。
A2A 和 MCP 服务使用 Node.js 编写,采用 Javascript/Typescript,并已抽象存储以映射到云原生数据存储。
示例 A2A 代理包括:
演示网站使用 React 编写,并转换为静态网站,可以部署到边缘缓存服务中。
支持多种云提供商:
本地开发支持以下依赖项:
安装 Redis
在本地启动 Redis
redis-server
git clone git@github.com:agentic-profile/cloud-a2a-mcp-quickstart.git
cd cloud-a2a-mcp-quickstart
cd website
npm install
npm run dev
cd service
npm install
npm run dev
示例用法:
/website 和 /service 项目设计为通用且易于部署在云基础设施上。
目前提供了AWS CloudFormation 脚本,并且其他云提供商如 Google Cloud 和 Azure 应该也容易实现。
├── aws/ # AWS 部署脚本和 CloudFormation 模板
│ ├── agentic-foundation.yaml # 基础设施模板
│ ├── agentic-service.yaml # 服务部署模板
│ ├── agentic-website.yaml # 网站部署模板
│ ├── deploy-service.sh # 服务部署脚本
│ ├── deploy-website.sh # 网站部署脚本
│ └── ssh-nat-instance.sh # NAT 实例 SSH 脚本
├── service/ # A2A 和 MCP 后端服务(Node.js/TypeScript)
│ ├── src/
│ │ ├── index.ts # 主 Lambda 函数
│ │ ├── index.local.ts # 本地开发服务器
│ │ ├── router.ts # 包含所有端点的 Express 路由器
│ │ ├── a2a/ # A2A TaskHandler 实现
│ │ │ ├── hireme/ # HireMe 任务处理器
│ │ │ ├── venture/ # Venture 任务处理器
│ │ │ ├── vc/ # VC 任务处理器
│ │ │ ├── index.ts # A2A 主导出
│ │ │ └── utils.ts # A2A 工具和中间件
│ │ ├── mcp/ # MCP 协议实现
│ │ │ ├── location/ # 与位置相关的 MCP 方法
│ │ │ ├── match/ # 匹配 MCP 方法
│ │ │ └── utils.ts # MCP 工具
│ │ ├── json-rpc/ # JSON-RPC 协议处理
│ │ │ ├── auth.ts # 认证
│ │ │ ├── index.ts # JSON-RPC 主处理器
│ │ │ ├── types.ts # 类型定义
│ │ │ └── utils.ts # JSON-RPC 工具
│ │ ├── cache/ # Redis 缓存层
│ │ │ └── redis.ts # Redis 客户端和工具
│ │ ├── stores/ # 数据存储抽象
│ │ │ └── memory-store.ts # 内存存储实现
│ │ └── __tests__/ # 单元测试
│ ├── www/ # 登录页面的静态网页文件
│ │ ├── index.html # Web 接口 HTML
│ │ └── images/ # 静态图像和图标
│ ├── docs/ # 服务文档
│ ├── scripts/ # 辅助脚本
│ ├── examples/ # 使用示例
│ ├── dist/ # 编译后的 JavaScript 输出
│ ├── package.json
│ ├── tsconfig.json
│ └── jest.config.js
└── website/ # 前端 React 应用程序
├── src/
│ ├── App.tsx # 主 React 应用程序
│ ├── main.tsx # 应用程序入口点
│ ├── components/ # 可重用的 React 组件
│ ├── pages/ # 页面组件
│ │ ├── agents/ # 与代理相关的页面
│ │ └── mcp/ # 与 MCP 相关的页面
│ ├── stores/ # 状态管理(Zustand)
│ ├── assets/ # 静态资产(图像等)
│ └── data/ # 静态数据文件
├── public/ # 公共静态文件
├── package.json
├── tsconfig.json
├── vite.config.ts
├── tailwind.config.js
└── postcss.config.js
curl -X GET http://localhost:3000/status
# 工具列表
curl -X POST http://localhost:3000/mcp/location \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# 更新位置
curl -X POST http://localhost:3000/mcp/location \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":4,"method":"update","params":{"coords":{"latitude":35.6762,"longitude":139.6503}}}'
# 查询位置
curl -X POST http://localhost:3000/mcp/location \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":5,"method":"query"}'
# Venture 任务处理器
curl -X POST http://localhost:3000/a2a/venture \
-H 'Content-Type: application/json' \
-d '{"id":"1","method":"venture/create","params":{"name":"Test Venture","type":"startup"}}'