Enter your email and we'll send you a one-time code. Identities
represent organizations (donor, recipient, coordinator) โ the agent
filters the tools each org can see.
How this works
This app runs in one of three modes depending on what's set in
config.js โ the badge in the header shows which one is
active:
Connected to AWS โ full agent path: sign in with Amazon Cognito (email one-time code โ JWT), then the app calls the AgentCore Runtime, which runs the Strands agent on Amazon Nova and answers from live tools.
Live backend data โ the app calls the deployed backend API directly (BACKEND_API_URL) and formats the real data itself. No Cognito, no agent โ handy for demos.
Demo mode โ no AWS configured; replies are mocked locally so you can explore the UI (sign in with any email + code 123456).
In Connected to AWS mode, a message follows this path:
You โโถ Cognito โ(JWT)โโถ AgentCore Runtime โโถ Strands agent + Amazon Nova
โ
AgentCore Gateway (MCP)
(OAuth2 token from AgentCore Identity)
โ
openApiSchema target "BackendTools"
โ
API Gateway โโถ Lambda โโถ community data
(surplus ยท catalog ยท needs ยท pantry ยท
volunteers ยท vehicles ยท guidelines)
(optional) Amazon Verified Permissions filters tools per request
The agent is grounded: it only states what a tool returned during
your conversation. Config values live in config.js
(Cognito, AgentCore runtime ARN, and/or BACKEND_API_URL).