Token导航 LogoToken导航TokenDH.com
Strands On Lambda With Auth0 logo
AI代理stdio官方级别未说明来源级核验

Strands On Lambda With Auth0

MCP Server

基于AWS Lambda和Auth0认证的AI旅行代理服务,提供用户感知的旅行预订和管理功能。

工具数

4

提示词数

0

GitHub Stars

0

资源数

0
PythonClaudeAI代理Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

aal80

提供方

aal80

最后核验

2026/5/17 20:23

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 -m venv .venv # Create virtual environment

详细介绍

AWS Lambda上带有MCP服务器的AI代理,具有Auth0身份验证

此仓库包含在上运行的用户感知AI代理和MCP服务器的示例实现 AWS Lambda该示例为虚构的公司AcmeCorp实现了一个基于人工智能的旅行社。 身份验证0 用于用户身份验证和访问控制。

![](./img/travel-agent-demo.gif)

请参阅下面的两个工件,以更好地理解预期的代理行为。

(跳到 运行项目)

![](./img/arch.png)

框架和服务

验证和授权

  • 身份验证0 用于用户身份验证和授权。
  • 在...期间 terraform apply/cdk deploy 将在Auth0中创建两个用户- AliceBob.使用 alice@example.combob@example.com 登录,如下所述。密码设置为 Passw0rd@.
  • AI代理和预订MCP域都需要JWT(承载令牌)授权,由API网关Lambda授权者强制执行。
  • AI代理需要Auth0发出的JWT。本JWT的主题是用户。验证是在代理授权器中使用Auth0提供程序JWK完成的。
  • 预订MCP期望由Strands Agent生成JWT。本JWT的主题是代理人 user_id 这是一个额外的要求。此令牌由共享密钥签名。验证是在MCP授权器中使用共享密钥完成的。
  • 明确声明——在任何时候,用户的身份都不会从LLM的响应中推断出来。它总是使用JWT传播。

用户意识和会话管理

  • AI Agent和MCP Server都是完全无状态的,它们不维护任何内部状态。
  • AI代理和MCP服务器都知道当前用户,并在用户授权上下文中处理请求。
  • AI Agent将其状态外部化到DynamoDB,使用 user_id 作为主键。
  • 在每个状态属于当前用户的请求上创建新的Strands Agent实例。
  • 连接到AI代理的MCP客户端是按用户创建的,持有用户特定的JWT与MCP服务器通信。
  • MCP服务器将授权用户上下文传播到所有工具中,使MCP工具用户感知。

工具

在代理中实施

  • 【代理人】 get-user-location 将用户的IP地址解析为用户位置。
  • 【代理人】 get-todays-date 该工具返回今天的日期。

在MCP服务器中实现

  • \[MCP\] get-travel-policies 返回AcmeCorp公司差旅政策。
  • \[MCP\] get-available-cars 返回可出租汽车的列表和类别。
  • \[MCP\] book-car 预订汽车租赁。
  • \[MCP\] book-hotel 预订酒店。

运行项目

该项目默认使用arm64架构,以提高成本效益。如果要将IaC文件更改为x86,请更新它。

前提条件

  • AWS CLI、Git、Docker
  • 地形或CDK
  • 已安装Node.js
  • 访问 us.anthropic.claude-3-5-haiku-20241022-v1:0 在……里面 us-east-1。或更新 代理配置 使用不同的模型/区域。
  • Auth0帐户

克隆项目

git clone https://github.com/aal80/strands-on-lambda-with-auth0

安装依赖项

(cd lambdas/agent-authorizer && npm install)
(cd lambdas/mcp-authorizer && npm install)
(cd lambdas/bookings-mcp && npm install)

使用Terraform部署到AWS

使用环境变量设置Auth0配置:

export TF_VAR_auth0_domain=your-auth0-domain
export TF_VAR_auth0_management_client_id=your-auth0-management-client-id
export TF_VAR_auth0_management_client_secret=your-auth0-management-client-secret

地形:

cd terraform 
terraform init
terraform plan
terraform apply

始终确保仔细审查所需的IAM权限!

运行部署后脚本

地形:

# Make sure you're in the {project_root}/terraform directory
chmod +x prep-web.sh
./prep-web.sh
cd ..

运行此脚本将 {project_root}/web/.env 包含运行Web UI所需配置的文件。

运行Web UI

cd web
python3 -m venv .venv             # Create virtual environment
source .venv/bin/activate         # Active virtual environment
pip install -r requirements.txt   # Install dependencies
python app.py                     # Start Web UI app

打开 http://localhost:8000/chat/ 在您的浏览器中

登录

您将被重定向到Auth0提供的登录屏幕。

![](./img/login-ui.png)

  • 电子邮件: alice@example.combob@example.com
  • 密码: Passw0rd@

登录后,开始向您的AI Agent询问有关公司旅行预订的问题,例如

  • 我可以租什么车?
  • 给我订一次巴黎之旅
  • 我需要从下周一开始去达拉斯三天,我还需要一辆车
  • 我可以租一辆奔驰吗?

![](./img/web-ui.png)

清理

地形:

terraform destroy

目录标签

目录标签

PythonClaudeAI代理HCL本地部署旅行预订AWSLambdaAuth0认证用户感知

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP