关于 aws-mcp-lambda-server
这是一个运行于 AWS Lambda 的 MCP 服务实现,包含 AWS CDK 基础设施和天气工具示例,面向在 AWS 部署 MCP 服务的开发者,并支持 Claude Desktop 客户端。
主要功能
- 01运行于 AWS Lambda
- 02按城市获取天气
- 03基于 Hono.js 的 REST API
- 04AWS Cognito OAuth 2.0 认证
- 05使用 AWS CDK 部署基础设施
适用场景
- 01通过 AWS Lambda 提供 MCP 工具
- 02查询城市天气信息
- 03部署需认证的 MCP 端点
MCP 相关
该服务向 MCP 客户端提供工具,包括按城市查询天气,并可连接 Claude Desktop。它支持通过 AWS Cognito 进行 OAuth 2.0 认证。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
AWS MCP Lambda 服务
这是一个运行在 AWS Lambda 上的 Model Context Protocol(MCP)服务实现。本项目可在 AWS 无服务器环境中运行 MCP 服务,并与 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 Gateway:HTTP 端点
开发与运维
- TypeScript:类型安全的开发
- ESLint:代码质量管理
- Vitest:测试框架
- GitHub Actions: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-server
2. 安装依赖
pnpm install
3. 构建项目
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<{
content: { type: 'text', text: string }[]
}> {
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,
);
与 Claude Desktop 集成
配置文件位置
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%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:在拉取请求时自动构建和测试
- CD:合并到 main 分支时自动部署
- 安全:CodeQL 分析
- 依赖项:Dependabot 自动更新
许可证
MIT License
作者
Kenji Saito
贡献
- Fork 此仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add some amazing feature') - 将分支推送到远程仓库(
git push origin feature/amazing-feature) - 创建拉取请求
参考资料
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。