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:
- 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.
- 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. - 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.
- Personal Knowledge Store: Allows saving and retrieving notes by keyword and tags, linked directly with related tasks.
- Transparent Tool Inspector: Live audit log showing tool names, sanitized arguments, execution durations in milliseconds, and returned outputs.
- Destructive Action Safety: Enforces a safety boundary—actions like
delete_taskrequire 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.conversewithtoolConfig) 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
mcpSDK (v2.3) using modern Streamable HTTP transport mounted cleanly alongside FastAPI routes. - Backend & Persistence: Python 3.11+, FastAPI, SQLAlchemy with
aiosqlitefor 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
- Protocol Synchronization with MCP 2025-11-25: Migrating to the latest MCP v2 SDK (
MCPServerand Starlettestreamable_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. - 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.
- 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
- amazon-web-services
- boto3
- docker
- docker-compose
- fastapi
- pydantic
- pytest
- python
- react
- rest-api
- sqlalchemy
- tailwind
- typescript
- vite
Log in or sign up for Devpost to join the conversation.