AWS MCP Lambda服务器
AWS Lambda在上面运行Model Context Protocol (MCP) 服务器实施。此项目包括:MCP打开服务器AWS在无服务器环境中运行Claude Desktop等的MCP允许与客户端协作。
项目配置
aws-mcp-lambda-server/
├── platform/ # AWS CDKインフラストラクチャとLambda関数
│ ├── bin/ # CDKアプリケーションエントリーポイント
│ ├── lib/ # CDKスタック定義
│ ├── lambda/ # Lambda関数のソースコード
│ │ ├── mcp-server/ # MCPサーバー実装
│ │ │ ├── tools/ # MCPツール(WeatherTool等)
│ │ │ ├── index.ts # Lambda関数エントリーポイント
│ │ │ ├── mcp-server.ts # MCPサーバー設定
│ │ │ └── server.ts # 開発用サーバー
│ │ ├── authorize.ts # OAuth認証処理
│ │ ├── token.ts # トークン管理
│ │ ├── revoke.ts # トークン無効化
│ │ ├── clients.ts # クライアント管理
│ │ └── utils.ts # ユーティリティ関数
│ └── package.json
├── example/ # サンプルクライアントアプリケーション
│ └── client/ # Next.jsベースのWebクライアント
│ ├── src/ # クライアントソースコード
│ └── package.json
├── .github/workflows/ # GitHub Actions CI/CD設定
│ ├── ci.yml # ビルド・テスト
│ ├── deploy.yml # AWS デプロイ
│ ├── codeql-analysis.yml # セキュリティ分析
│ └── auto-merge.yml # 自動マージ
└── package.json # ルートパッケージ設定主要功能
MCP服务器功能
- 天气预报工具:获取指定城市的天气信息
- HTTP API: Hono.js基本RESTful API
- 认证:AWS Cognito OAuth 2.0認証
- 无服务器: AWS Lambda上操作
基础架构
- AWS CDK:基础设施即代码
- AWS Lambda:无服务器运行环境
- AWS Cognito:用户认证授权
- AWS DynamoDB:数据存储
- AWS API网关: HTTP端点
开発・运用
- TypeScript:型安全开发
- ESLint:代码质量控制
- 速度:测试框架
- GitHub操作: CI/CD 管道
前提条件
- Node.js 22.x
- pnpm 10.14.0+
- AWS CLI已配置
- AWS-CDK-CLI
安装,安装
1.克隆存储库
git clone https://github.com/poad/aws-mcp-lambda-server.git
cd aws-mcp-lambda-server2.安装相关性
pnpm install3.构建项目
pnpm run build部署
AWS部署到环境
cd platform
npx cdk deploy --all配置选项
CDK可以在上下文中设置:
# プロジェクト名の設定
npx cdk deploy -c project-name=my-mcp-server
# 認証の有効化
npx cdk deploy -c use-auth=true
# ドメインの設定
npx cdk deploy -c domain=my-domain开発
启动本地开发服务器
cd platform
pnpm run dev运行测试
pnpm run test装饰
pnpm run lint
pnpm run lint-fix # 自動修正MCP添加工具
新建MCP要添加工具:
platform/lambda/mcp-server/tools/创建新的工具文件platform/lambda/mcp-server/mcp-server.ts注册工具
例:
// tools/MyTool.ts
interface MyToolInput {
message: string;
}
async function handler(args: MyToolInput): Promise {
return {
content: [
{
type: 'text',
text: `処理結果: ${args.message}`,
},
],
};
}
export default handler;// mcp-server.ts
import myTool from './tools/MyTool.js';
server.tool(
'my_tool',
'カスタムツールの説明',
{ message: z.string().describe('メッセージ') },
myTool,
);克劳德桌面との連携
配置文件位置
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%/Claude/claude_desktop_config.json
设定例
{
"mcpServers": {
"aws-mcp-lambda-server": {
"command": "node",
"args": ["/path/to/aws-mcp-lambda-server/platform/lambda/mcp-server/dist/index.js"]
}
}
}示例客户端
example/client/ 在…之上Next.js基本Web包含客户端。
启动客户端
cd example/client
pnpm install
pnpm run dev认证设定
AWS Cognito使用OAuth 2.0支持认证。
验证流程
- 客户机Cognito重定向至认证端点
- 用户登录
- 获取认证代码并交换访问令牌
- MCP服务器API访问时使用标记
CI/CD
GitHub Actions使用自动化:
- CI公司:拉式请求自动构建测试
- 光盘: main合并到分支时自动部署
- 安全性: CodeQL分析
- 依存关系: Dependabot自动更新
许可证
MIT许可证
作者
齐藤健二
分发
- 分叉此存储库
- 创建特征分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 创建拉式请求
