概念验证
这是使用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