Inspiration

Modern life is fragmented across tasks, calendars, reminders, and productivity tools. Even when people have all the information they need, they still have to manually connect the pieces and decide what to do next. I wanted to build an assistant that goes beyond answering questions and demonstrates how an AI-powered agent can coordinate tools to help people get things done.

What it does

LifeOps is an ambient productivity assistant that turns natural-language requests into coordinated workflows across tasks, calendar events, and reminders.

Users can ask questions such as “Plan my afternoon” or “What can I finish before my next meeting?” LifeOps retrieves relevant information, analyzes available time, generates an actionable plan, and explains which tasks fit and which may need to wait.

The dashboard includes an Activity pane that shows the tools called during a request, making the orchestration visible without exposing private model reasoning. The application also supports reminder creation and task completion through protected write operations. The public demo keeps writes disabled by default.

How we built it

LifeOps combines a React and Vite web dashboard with an Express backend-for-frontend and a separate Model Context Protocol (MCP) server. The MCP server uses Streamable HTTP and protocol version 2025-11-25, exposing seven tools for retrieving tasks and schedules, generating daily plans, analyzing productivity, summarizing the day, creating reminders, and completing tasks.

A deterministic planning engine handles scheduling and time calculations in application code. Amazon Bedrock integration is implemented as an optional way to enrich the plan summary, with a deterministic fallback when AI enrichment is unavailable. The current public deployment uses SQLite and runs in deterministic mode.

The application is deployed on Render. The public web backend communicates with the private MCP service, which owns the database. This separation keeps the browser away from the database and allows the same MCP tool interface to serve as a foundation for future assistant integrations.

Challenges we faced

One of the main challenges was making the assistant useful without relying on a language model to invent task details or time calculations. We addressed this by keeping scheduling logic deterministic and using AI only for optional language enrichment.

Another challenge was making multi-tool orchestration understandable. The Activity pane exposes tool names, outcomes, and timing so users can see what the system actually did.

We also prioritized safe write behavior. The public deployment rejects unauthorized write requests instead of silently modifying data, and agent-driven writes remain disabled by default.

What we learned

We learned that a useful agent is not just a chatbot connected to tools. It needs reliable application logic, clear tool contracts, observable execution, sensible fallbacks, and security boundaries. MCP provides a standard way to expose capabilities, while deterministic planning makes the results more predictable.

What's next

Our next steps include completing a live Alexa+ integration, testing a real Amazon Bedrock invocation in the deployed environment, and evaluating managed AWS services such as DynamoDB and AgentCore Runtime. These remain future integration and deployment steps rather than capabilities we claim are already live.

LifeOps demonstrates our central idea: one natural-language request can coordinate multiple tools into a transparent, actionable workflow.

Built With

Share this project:

Updates

Submission history