Inspiration
The idea for Den came from a simple question:
What happens when an older parent is living independently, but the family cannot always be there in person?
A missed medication, an unusual change in routine, a safety concern at home, or a caregiver who is unavailable can quickly turn into a coordination problem.
I wanted to build something that could bring those pieces together, help the family understand what is happening, and coordinate the next step without taking control away from them.
That became Den.
What it does
Den doesn't just monitor — it coordinates the family's response when something needs attention.
Den is a voice-first care coordination system for families supporting an older adult living independently.
For the Alexa+ track, Den runs a self-hosted MCP server implementing MCP 2025-11-25 over Streamable HTTP on Amazon Bedrock AgentCore, with the Alexa+ voice experience demonstrated through a web application.
A caregiver can use voice or text to:
- Ask for a morning update
- Report a new care concern
- Check the status of an incident
- Approve an action
- Review medication, home, caregiver, and schedule information
Behind the scenes, Den coordinates 6 agent roles:
- Den Supervisor
- Triage Agent
- Medication Agent
- Home Safety Agent
- Care Coordinator Agent
- Logistics & Routine Agent
Together, they use 28 private tools for medication status, home safety, caregiver availability, routines, appointments, follow-ups, and other care tasks.
Den also exposes 4 public MCP tools:
coordinate_care_requestget_household_briefingconfirm_actionget_incident_status
One thing I wanted to be very careful about was safety.
Den does not:
- Diagnose medical conditions
- Give medication dosing advice
- Call emergency services
- Make purchases
- Book rides automatically
- Contact caregivers without approval
Safety rules and approvals are enforced by deterministic Python logic.
Caregiver communication and simulated device actions require explicit confirmation, while refill, ride, and supply requests remain drafts.
The current demo uses only synthetic household data and simulated home-device signals.
How I built it
For the Alexa+ track, Den runs a self-hosted MCP server on Amazon Bedrock AgentCore implementing MCP 2025-11-25 over Streamable HTTP. The web application provides the simulated Alexa+ voice experience used to demonstrate it.
The public simulator is a Python + Starlette web application running on AWS App Runner.
The browser supports both:
- Voice input
- Typed input
For voice:
- Amazon Transcribe converts recorded speech to text
- Amazon Polly generates Den's spoken response
App Runner calls an IAM-authenticated, self-hosted MCP server running on Amazon Bedrock AgentCore.
The MCP server uses MCP 2025-11-25 Streamable HTTP and exposes four public tools:
coordinate_care_requestget_household_briefingconfirm_actionget_incident_status
Inside AgentCore:
- Strands Agents are used for advisory planning
- Claude Sonnet 4.6 is used for structured signal extraction and planning support
- The Den Supervisor controls routing, persistence, action handling, and conversation continuation
The five specialist agents own the 28 private tools.
State is persisted in three DynamoDB tables covering:
- Household profiles
- Care events
- Incident, action, and approval state
Approved caregiver alerts are published through Amazon SNS, and AWS Lambda records the delivery in a synthetic demo inbox.
Follow-up checks are scheduled using Amazon EventBridge Scheduler and processed by AWS Lambda.
CloudWatch Logs stores privacy-safe execution progress, which is streamed back to the browser so the user can see which agents and tools are actually running.
Challenges I ran into
One of the hardest parts was making the system feel like one continuous conversation while still keeping the backend deterministic and safe.
For example, a simple response like:
Yes
has to approve the correct pending action without accidentally restarting triage or approving the wrong thing.
I also ran into issues with:
- Stale state
- Follow-up timers
- Approval cards
- Simulated device state
- Voice timing
- Progress synchronization
At one point, a scheduled follow-up could appear at the same time as a smart-plug approval, which made the UI confusing even though both backend operations were technically working.
Another major challenge was latency.
Some turns originally took more than a minute.
I instrumented the full request path and found that part of the delay came from waiting for CloudWatch progress events even after the authoritative result had already returned.
After changing the progress-settling behavior:
- Device requests dropped from more than 30 seconds to only a few seconds
- Confirmation turns became much faster
- The execution trace still remained accurate
Deploying AgentCore also had its own learning curve, especially around:
- IAM permissions
- Runtime endpoints
- MCP invocation
- AWS SSO
- Keeping AWS credentials completely out of the browser
Accomplishments that I'm proud of
The part I am most proud of is that Den is not just a chatbot demo.
The final workflow is stateful across multiple turns and coordinates:
- 6 agent roles
- 28 private tools
- 4 public MCP tools
The demo can:
- Start with a morning briefing
- Create a care incident
- Collect safety information
- Request caregiver approval
- Schedule a follow-up
- Prepare daily-care drafts
- Control a simulated home device with approval
- Record a caregiver resolution
- Retrieve the final persisted incident state
The final execution reaches:
- 6 / 6 agent roles
- 28 / 28 private tools
- 4 / 4 public MCP tools
I also kept important actions human-controlled throughout the workflow.
What I learned
The biggest lesson was that agentic systems need more than a good model.
The difficult parts were:
- State management
- Tool ownership
- Approvals
- Retries
- Idempotency
- Progress reporting
- Deciding which decisions should never depend on the model
I used Claude and Strands where reasoning and structured interpretation were useful.
But I kept these deterministic:
- Red-flag handling
- Safety rules
- Approval enforcement
- State mutation
- External action execution
I also learned how important observability is in multi-agent systems.
Showing real execution progress made it much easier to:
- Understand what was happening
- Debug problems
- Verify agent behavior
- Prove that tools were actually being exercised
What's next for Den
The current project is intentionally a synthetic hackathon demo.
The next step would be replacing simulated integrations with properly authorized real-world integrations for:
- Caregivers
- Home devices
- Calendars
- Pharmacies
- Transportation
I would also like to improve:
- Streaming voice latency
- Identity and consent controls
- Household configuration
- Caregiver permissions
- Long-term follow-up workflows
The long-term goal is not to make Den autonomous.
The goal is to help families stay informed, coordinate the right help, and remain in control when they cannot always be physically present.
Built With
- amazon-app-runner
- amazon-bedrock
- amazon-bedrock-agentcore
- amazon-cloudfront-cdn
- amazon-dynamodb
- amazon-eventbridge
- amazon-lambda
- amazon-polly
- amazon-sns
- amazon-transcribe
- amazon-web-services
- claude-sonnet-4.6
- docker
- html
- javascript
- mcp
- python
- starlette
- strands-agents
Log in or sign up for Devpost to join the conversation.