Inspiration

Most modern AI chatbots can explain how to do something, but they leave the user to perform all the manual work. When you ask:

  • "What should I work on today?" — they give generic, ungrounded advice rather than checking your actual backlog.
  • "Add a task to prepare for my DSA interview tonight." — they generate instructions on how to make a task instead of actually creating one.
  • "Run this action." — they operate in a black box where you cannot inspect which tool was selected, what arguments were passed, or whether it succeeded.

We built AURA (Autonomous Utility & Reasoning Agent) to bridge the gap from asking to doing. Our core architectural philosophy separates intelligence from execution: the AI model reasons about user intent and parameterizes actions, while deterministic tools perform validated operations against persistent storage.

What it does

AURA is a full-stack personal AI action assistant built for the Alexa+ track and the AWS Builder mini-challenge:

  1. Natural-Language Action Agent: Translates complex instructions into real multi-step tool calls. For example, saying "I have a DSA test tomorrow. Create three study tasks for tonight and show me the most important one" creates three structured tasks in SQLite, assigns priorities and deadlines, and highlights the highest-urgency item.
  2. Real Model Context Protocol (MCP) Server: Implements a self-hosted MCP server using the official 2025-11-25 specification over Streamable HTTP transport (/mcp), exposing 10 verified tools that any MCP-compatible client (e.g. Cursor, Claude Desktop, or custom agents) can discover and invoke.
  3. Smart Task Manager & Algorithmic Daily Planner: Automatically evaluates deadlines, priorities, task durations, and reserved break windows to build realistic daily schedules, complete with prioritization rationales and capacity conflict alerts.
  4. Personal Knowledge Store: Allows saving and retrieving notes by keyword and tags, linked directly with related tasks.
  5. Transparent Tool Inspector: Live audit log showing tool names, sanitized arguments, execution durations in milliseconds, and returned outputs.
  6. Destructive Action Safety: Enforces a safety boundary—actions like delete_task require explicit client confirmation before execution.

How we built it

We designed a unified architecture where the web dashboard, conversational agent, and MCP server all operate on the exact same database and service layer:

  • AI Reasoning & AWS Builder Integration: Powered by Amazon Bedrock Converse API (bedrock-runtime.converse with toolConfig) supporting Claude 3.5 Sonnet and Amazon Nova. To support seamless offline testing, we also engineered a deterministic local mock mode that transparently executes the identical tool flows without requiring cloud credentials.
  • MCP Server: Implemented with the official Python mcp SDK (v2.3) using modern Streamable HTTP transport mounted cleanly alongside FastAPI routes.
  • Backend & Persistence: Python 3.11+, FastAPI, SQLAlchemy with aiosqlite for asynchronous persistent SQLite storage, and Pydantic v2 schemas.
  • Frontend: A responsive, dark-first dashboard built with React 19, TypeScript, Vite, Tailwind CSS v4, and Lucide icons.
  • Quality & Containerization: 11 automated Pytest unit and integration tests covering CRUD, planner algorithms, prompt-injection guardrails, and MCP capability negotiation, fully containerized via Docker and Docker Compose.

Challenges we ran into

  1. Protocol Synchronization with MCP 2025-11-25: Migrating to the latest MCP v2 SDK (MCPServer and Starlette streamable_http_app) required understanding the new Streamable HTTP session lifecycle rather than legacy Server-Sent Events (SSE). We ensured capability negotiation and tool schemas matched the exact hackathon specification.
  2. Grounding Without Hallucination: LLMs frequently claim an action was performed before actually executing it. We enforced a strict bounded tool-calling loop where the assistant can only report success after receiving structured verification payloads from our backend services.
  3. Safe Destructive Operations: Developing an asynchronous confirmation interception system that pauses the tool loop when a user requests a deletion, issues a signed confirmation token to the UI, and only executes once confirmed.

Accomplishments that we're proud of

  • 100% Shared Single Source of Truth: The MCP server and the React Web Dashboard access the exact same records. If you add a task through chat or an external MCP client, it instantly reflects across the dashboard.
  • Complete Test Coverage: Achieved 100% pass rate across 11 automated test suites covering task lifecycles, planner conflict detection, destructive confirmations, and MCP discovery in under 2 seconds.
  • Production-Ready UX: Crafted a responsive dark-mode interface with inline tool execution drawer cards, clear status badges, and zero placeholder buttons.

What we learned

  • The power of the Amazon Bedrock Converse API (toolConfig): Standardizing function schemas across diverse frontier models eliminates fragile prompt engineering.
  • The transformative potential of the Model Context Protocol: Decoupling the assistant’s capabilities from its user interface allows any MCP client to interact with AURA’s tools effortlessly.

What's next for AURA

  • Proactive Cron Automations: Scheduled background jobs that automatically review overdue tasks every morning and propose updated daily plans.
  • Third-Party Calendar Connectors: Bi-directional calendar sync (e.g., Google Calendar, Outlook) via external MCP servers.
  • Multi-Agent Collaboration: Enabling subagents to execute long-running research tasks and file synthesis autonomously in the background.

Built With

Share this project:

Updates

Submission history