返回市场
代理配置mcpjslambda

代理配置mcpjslambda

作者:agentic-profile2 星标更新:2025-11-24

项目介绍

Cloud A2A 和 MCP 快速入门

利用云形成脚本和模板创建一个可扩展的服务器,并提供示例 A2A 和 MCP 服务。

特性

对于每个云基础设施,脚本可以优化 VPC、NAT、缓存、可扩展数据库、可扩展计算、原生安全以及不同的AI模型提供商。

演示使用DIDs、JWT和标准HTTPS头的通用认证

A2A 和 MCP 服务使用 Node.js 编写,采用 Javascript/Typescript,并已抽象存储以映射到云原生数据存储。

示例 A2A 代理包括:

  • Venture:一个了解初创公司并帮助其找到合适的技术供应商、资本伙伴、团队成员和联合创始人的代理。
  • Business Match:一个了解所有初创公司及其潜在合作人员并建议连接的 MCP。
  • Volunteer:一个了解志愿者并帮助他们找到志愿服务机会的代理。
  • Charity:一个了解慈善机构并帮助他们找到志愿者的代理。
  • Reputation:一个了解个人和企业声誉的 MCP。
  • Volunteer Match:一个了解志愿者和慈善机构并建议匹配的 MCP。

演示网站使用 React 编写,并转换为静态网站,可以部署到边缘缓存服务中。

云提供商

支持多种云提供商:

开发

本地开发支持以下依赖项:

  • git
  • Node.js 22+
  • Redis

快速入门

  1. 确保已安装并运行 Redis
  • 安装 Redis

  • 在本地启动 Redis

    redis-server
    
  1. 克隆仓库并切换目录
git clone git@github.com:agentic-profile/cloud-a2a-mcp-quickstart.git
cd cloud-a2a-mcp-quickstart
  1. 在本地启动网站服务
cd website
npm install
npm run dev
  1. 在本地启动 A2A 和 MCP 服务器
cd service
npm install
npm run dev
  1. 使用浏览器打开网站,访问 http://localhost:5173

示例用法:

  • 创建一个 Agentic Profile 以便您的代理能够进行身份验证
    • 点击“设置”,然后在“数字身份”行上点击“管理”
    • 输入您的姓名,然后点击“创建数字身份”
  • 点击导航栏中的 MCP
    • 在位置下点击“测试”按钮
    • 点击“更新位置”

云部署

/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 命令

健康检查

curl -X GET http://localhost:3000/status

MCP 位置服务

# 工具列表
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"}'

A2A 端点

# 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"}}'