使用说明
概念验证
这是使用AI代理的服务的POC,其中有一个模型上下文协议(MCP)服务器和一个将与MCP服务器和外部服务交互的MCP客户端。
使用的技术
- [x] Node.js
- [x] TypeScript
- [x] AWS-SAM
- [x] AWS Lambda
- [x] AWS API网关
- [x] 谷歌双子座
- [x] 克劳德桌面
如何在本地运行它
由于MCP客户端除了与MCP服务器交互外没有实际用途,我们可以使用Claude Desktop作为客户端。
-
添加您的
GeminiApiKey到samconfig.toml项目根目录中的文件。 -
在AWS中部署MCP服务器(转到 入门指南 本自述部分)
-
安装 克劳德桌面
-
在你的
claude_desktop_config.json文件,添加以下配置:{ "mcpServers": { "mcp-server": { "command": "npx", "args": [ "-y", "mcp-remote", "https://12345.execute-api.us-east-2.amazonaws.com/Prod/mcp", // your mcp server api url "--transport", "http-only", "--header", "x-api-key:abcd1234" // your api key ] } } }
建筑
该项目采用六边形架构(端口和适配器),结构如下:
src/
├── domain/ # Core business logic
│ ├── entities/ # Domain entities (WebhookEvent)
│ ├── ports/ # Interface definitions (WebhookRepository, Logger)
│ └── use-cases/ # Business use cases (ProcessWebhookUseCase)
├── infrastructure/ # Infrastructure implementations
│ └── adapters/ # Adapters for external services (CloudWatchLogger, InMemoryWebhookRepository)
└── handlers/ # Lambda function handlers
└── webhook.ts # SQS handler
先决条件
- Node.js 22.x
- AWS-SAM-CLI
- AWS CLI配置了适当的凭据
- Docker(用于本地测试)
入门指南
-
安装依赖项:
npm install -
使用SAM构建项目:
npm run sam:build -
运行测试以确保一切正常:
npm test -
要进行完整的集成测试,请部署到AWS:
npm run sam:deploy
发展
本地开发
你可以在当地测试什么
-
Lambda函数测试:
npm run sam:build sam local invoke WebhookProcessorFunction -e test-event.json -
单元测试:
npm test npm run test:coverage -
类型检查:
npm run type-check -
掉毛:
npm run lint npm run lint:fix
需要部署AWS的内容
- 全面集成测试:API网关→ SQS → Lambda流量
- Webhook端点测试:The
/webhook端点功能 - SQS集成:队列处理和DLQ行为
要测试整个流程,请部署到AWS:
npm run sam:deploy
然后使用对已部署的API网关端点的真实webhook请求进行测试。
测试
- 运行单元测试:
npm test