Inspiration

"Has anyone fed the cat?" gets asked in every home with pets, every day, and the answer is usually a guess. So pets get fed twice, or they miss dinner, or they miss the medication that actually matters. The person who did the task has their hands full (a food bowl, a leash, a pill pocket), so opening an app to log it is the last thing they do. Saying it out loud is the one thing they can always do, which makes this a natural job for Alexa+.

What it does

PetCheck is a shared pet care log for the whole household, driven by voice:

  • "I fed Mochi" logs the task for everyone, with who did it and when.
  • Duplicates are caught. If Emma says "I fed Mochi" ten minutes after Dad, PetCheck answers: "Dad already fed Mochi at 5:40 PM. Do you want me to log it again?" No double dinners.
  • Nothing gets missed. Every five minutes a scheduled check compares the routine with the log. After 30 minutes the household gets a reminder; after an hour the owner gets an email, wherever they are.
  • Questions get answers: "Has anyone walked Biscuit?", "What's left for Mochi today?", "How was Mochi's week?" (meals, missed tasks, family notes and the next vet visit).
  • It never plays vet. It records and reminds; anything about symptoms, doses or food safety gets "please check with your vet."
  • A live household page shows today's timeline, each pet's 7-day history and streak, open alerts, one-tap logging and who helped most this week.

How we built it

PetCheck is an MCP server (spec 2025-11-25, Streamable HTTP) written in TypeScript with the official MCP SDK. It exposes six tools: add_pet, log_care, get_status, add_note, add_vet_visit and weekly_summary.

  • AWS Lambda runs the server statelessly behind an HTTPS Function URL, using the SDK's web-standard transport.
  • Amazon DynamoDB stores each household in a single-table design. Records are only ever added, so updates from several family members can't conflict.
  • Amazon EventBridge Scheduler runs the missed-task check every five minutes, and Amazon SNS emails the owner.
  • OAuth 2.1 (authorization code with PKCE, plus client credentials) is built in for Alexa+ account linking.
  • The simulated Alexa+ is a real MCP client: it calls the same live server over HTTPS, and the demo shows every MCP request on screen. Its language understanding is pluggable: Amazon Bedrock (Nova Lite) or Claude via the Anthropic API, with a built-in rules engine as an automatic fallback.
  • Amazon Polly narrated the demo video.
  • One command (npm run deploy) creates or updates everything, and eight test suites cover the care logic, alerts, storage, OAuth, the Lambda handler, the assistant, the Claude engine and the rules engine.

Challenges we ran into

  • The Alexa+ MCP toolkit is in private preview. Setup failed with AccessDenied, and Amazon confirmed it isn't available to participants yet. So the demo uses a simulated Alexa+ that calls the same deployed server, and everything else needed for real Alexa+ is ready.
  • Amazon Bedrock is still blocked on our new account ("verify you are a corporate customer"). We filed a support case and kept the project moving with the rules engine and a Claude engine; PetCheck switches to Bedrock automatically once access is approved.
  • The MCP SDK's Node transport failed behind serverless-http on Lambda. Switching to the web-standard transport fixed it.
  • Matching a log to the right task is subtle. A feeding at 5:30 PM should count as the 6 PM dinner, not a very late breakfast. We settled on "the nearest open task that's already due or due within the hour."

Accomplishments that we're proud of

  • It's fully deployed and works end to end: real alert emails arrive, and the household page updates live.
  • The duplicate check and missed-task alerts solve the actual everyday problem, not just the logging.
  • The safety rule holds: PetCheck never gives medical advice.
  • It's tested, documented, MIT licensed, and deploys with one command.
  • We kept a detailed friction log of 8 real problems, each with the exact error and a concrete suggested fix.

What we learned

  • Stateless Streamable HTTP is a great fit for serverless: no sessions, every request stands alone.
  • Voice logging only works if it's forgiving. Everyday wording ("I replaced the sand for my cat"), fuzzy pet names and short spoken answers matter as much as the data model.
  • Building fallbacks early (a rules engine, a second model provider) kept the project moving while account access was pending.

What's next for PetCheck

  • Connect to real Alexa+ as soon as toolkit access opens, and use Bedrock once it's approved.
  • Multiple households, each linked through its own Alexa account.
  • An emailed weekly summary with a table of each pet's week, ready to bring to the vet.
  • "You'll run out of Mochi's food in about 5 days. Reorder?", based on how much each pet actually eats.
  • Visit reports for pet sitters and medication-adherence reports for vet clinics.

Built With

Share this project:

Updates

Submission history