Inspiration

Pet parents often leave care instructions in scattered WhatsApp messages, notes, and last-minute conversations. Caregivers may miss small but important details like allergies, medication timing, behavior triggers, or emergency contacts. I wanted to build an agentic handover system that makes dog care safer, more trackable, and easier to follow when an owner is away.

What It Does

Pet Guardian turns natural-language owner instructions into a structured dog care plan. It creates caregiver checklists, highlights critical warnings, generates shareable caregiver links, records verified check-ins, summarizes the day for the owner, and prepares emergency-ready summaries for a vet.

It also includes a lost-dog mode that turns the dog profile and last-seen details into immediate search actions, WhatsApp alert text, poster text, and an owner script.

How I Built It

The project is intentionally not a simple web app calling Gemini directly.

The architecture has two services:

  • Next.js web app: mobile-first UI for owners and caregivers.
  • Google ADK / Agent service: FastAPI service that hosts the Pet Guardian agent brain.
  • Gemini: reasoning layer for care-plan generation, daily summaries, emergency summaries, and lost-dog action plans.
  • MongoDB Atlas: persistent care memory for dogs, care plans, tasks, check-ins, emergency logs, and agent runs.
  • MongoDB MCP Server: partner MCP integration used by the agent to retrieve care memory before summaries and emergency workflows.

The agent uses MongoDB MCP as its care-memory retrieval superpower. For example, daily summaries and emergency summaries retrieve the care plan, dog profile, tasks, and check-ins through MCP first, then use Gemini to generate structured outputs. Transactional writes such as creating plans and recording check-ins use MongoDB Atlas directly for reliability.

Challenges I Faced

One major challenge was making the MCP integration meaningful instead of decorative. At first, MongoDB Atlas was used directly for reads and writes. I upgraded the workflow so summaries and emergency context retrieval go through MongoDB MCP first, with direct MongoDB fallback only for resilience.

Another challenge was deployment. The app has two services, and the agent container needs both Python for FastAPI/ADK and Node.js for the MongoDB MCP server. I solved this with a multi-stage Dockerfile that brings Node 22 into the Python agent image.

I also had to handle real-world deployment issues like Atlas network access, Cloud Run environment variables, Secret Manager, and Docker build context problems caused by local node_modules and .next folders.

What I Learned

I learned how to design an agent as a real service instead of embedding all AI logic inside the frontend. I also learned how MCP can become part of an actual product workflow: not just as a tool listing, but as the path the agent uses to retrieve trusted external memory.

I also learned more about the practical boundaries between:

  • agent reasoning,
  • persistent memory,
  • transactional writes,
  • partner MCP integrations,
  • and user-facing product workflows.

What Makes It Agentic

Pet Guardian is agentic because it does more than answer a prompt. It plans care tasks, stores structured memory, retrieves current care state, reasons over check-ins, produces summaries, logs its runs, and supports emergency workflows with context-aware outputs.

The agent can answer questions like:

  • What care tasks are still pending?
  • What did the caregiver verify today?
  • What information should the owner send to a vet?
  • What should the owner do immediately if the dog is lost?

What's Next

Next steps would include durable media storage with Google Cloud Storage, caregiver notifications, owner/caregiver authentication, calendar reminders, and multi-pet support. I would also add stronger production security around Atlas network access and replace demo reset behavior with authenticated admin controls.

Built With

  • docker
  • fastapi
  • gemini
  • google-adk
  • google-cloud-build
  • google-cloud-run
  • google-secret-manager
  • lucide
  • mongodb-atlas
  • mongodb-mcp-server
  • next.js
  • python
  • react
  • tailwind-css
  • typescript
  • vertex-ai
Share this project:

Updates