Dawn: My Personal AI Productivity System

Dawn: My Personal AI Productivity System

aillmengineeringBy Jackson Barnes

Dawn is my MCP server for project management built with a simple TypeScript/SQLite setup. It handles my projects, tasks, time tracking, and context.

Dawn is my MCP server for project management built with a simple TypeScript/SQLite setup. It handles my projects, tasks, time tracking, and context. It's designed to be simple, and focused on a set of core capabilities that saves me time working between different projects. I was tired of messing with all of the various different context systems like Cursor's Rules, Claude Code memory files, llms.txt, etc. and other overly complex multi-agent RAG solutions for tracking basic things like tasks, context, and time. So I decided to build something that works for me. Below I'll cover more information about what currently makes up Dawn and where I'm planning on taking it.

Project Management System ๐Ÿ› ๏ธ

Dawn's project system provides the organizational foundation that ties together tasks, artifacts, and time tracking into cohesive workspaces designed for technical workflows across any domain.

Current Features

  • Basic CRUD operations: create, update, delete, and list projects with names and descriptions
  • Project-scoped organization where all tasks, artifacts, and time entries belong to specific projects
  • Load comprehensive project overviews that automatically display associated tasks, artifacts, and time summaries
  • Cross-project search capabilities for finding tasks and artifacts across your entire workspace

Example Workflows

  • create-project to establish new workspaces for different technical initiatives, from web applications to hardware projects
  • load-project provides instant context switching - all relevant tasks, documentation, and progress in a single view (as shown in the Cursor screenshot above)

Potential Enhancements

  • Project templates that automatically create common artifact structures and initial tasks for different project types (web app, hardware project, research, etc.)
  • Project dependencies and relationships to track how different initiatives connect and influence each other
  • Archive/active status management to keep the workspace focused on current priorities while preserving historical project context

The project system keeps everything organized without being overly prescriptive - whether you're debugging authentication issues in a Next.js app or troubleshooting 3D printed robotic arm components, each project maintains its own context bubble that you can dive into instantly with any MCP client interface like Claude Desktop, Cursor, etc.

Below is a screenshot of Dawn loading one of my projects using the load-project tool inside of Cursor:

Task Management System โœ…

Dawn's task system provides a simple project-based task management with time tracking integration and is designed for simple technical workflows:

Current Features

  • Basic CRUD; create, update, delete, and search
  • Status tracking; todo, in-progress, done
  • Tasks belong to specific projects
  • Start/stop timers directly on tasks
  • Find tasks by keywords across all projects

Example Workflows

  • create-task for explicit task creation with project ID start-task for conversational workflow (creates + starts timer by name)
  • get-project-tasks shows tasks grouped by status Time reports link task work to actual hours spent

Potential Enhancements

  • Dynamically create or update Artifacts to new or existing tasks which could store conversation history, decisions, change logs, and other important context.
  • Handle task relationships, sub-task, and blocking.

Context Management System ๐Ÿ—‚๏ธ

Dawn's artifact system stores text-based content associated with projects in SQLite, (currently as monolithic content) but evolving toward a JSON patch or graph model to dynamically update parts of the document similar to how Claude Artifacts and OAI Canvas features work.

Current Features

  • Artifacts have title, content, project association, and optional type (like "overview", "log", etc. that each would have their own attributes for different actions within the system)
  • Basic CRUD operations: create, get, update, delete, list, and search across Artifacts
  • Special handling for project overview type artifacts (one per project)
  • The load-project tool automatically displays the overview artifact content, using it to seed new chats (pictured above in Cursor)

Example Workflows

  • Enable agentic systems like Cursor and Claude to dynamically load project context via MCP without relying on platform-specific context systems (Cursor Rules, CLAUDE.md, etc.). Example queries: "Load all artifacts for this project in your memory" or "Which artifacts contain troubleshooting information?"
  • Synthesize all project artifacts to write comprehensive blog posts, documentation, or reports
  • Convert artifacts to Markdown files for codebase docs, wikis, or knowledge bases
  • Maintain organized notes, research findings, and reference materials for ongoing project tasks

Potential Enhancements

Artifacts could be made up of two initial types of composable "Cell" context similar to concepts in Notion and Jupyter Notebooks that can be synced based on a set of parameters and can be interwoven together inside of a single Artifact:

Authored Cells; Are fuzzy, manually curated human or auto-generated AI knowledge (markdown, code, notes, etc.) updated via some sort of patch-artifact tool which would allow for surgical edits (update specific lines, replace text, add/remove blocks) instead of replacing entire artifacts (which is what I am doing now) while making sure to preserve formatting to prevent accidental changes etc.

Example: Overview of the Content Management System in markdown.

Overview of the Content Management System, which also covers the secure media handling system:

## Security-First Image Management
The CMS implements a media authorization system that ensures only images from published posts are publicly accessible:

## Key Security Features
Linkage Table: post_images table maps every image to its parent post
Automatic Sync: Server actions automatically maintain image-to-post relationships

## Data Flow Process
Upload: Author uploads image โ†’ stored in Cloudflare R2
Access: Public request โ†’ JOIN query checks if image belongs to published post
Serve: Authorized requests stream from R2, unauthorized get 403

Source Cells: Are auto-refreshed or updated by some sort of event-driven process so they stay "synced" from configured sources like file systems, databases, APIs, sensor data, etc. This type of cell would be for context like directory trees, database schemas, and other types of configuration information think of it like less-fuzzy knowledge.

Example: Directory of an Next.js App Router Architecture.

src/app/
โ”œโ”€โ”€ (marketing)/              
โ”‚   โ”œโ”€โ”€ components/           
โ”‚   โ””โ”€โ”€ page.tsx              
โ”œโ”€โ”€ (cms)/                    
โ”œโ”€โ”€ posts/                    
โ”‚   โ”œโ”€โ”€ [type]/[slug]/        
โ”‚   โ””โ”€โ”€ page.tsx              
โ”œโ”€โ”€ api/                      
โ”‚   โ”œโ”€โ”€ auth/[...nextauth]/   
โ”‚   โ”œโ”€โ”€ media/[...objectKey]/ 
โ”‚   โ””โ”€โ”€ upload-image/        
โ”œโ”€โ”€ login/                    
โ”œโ”€โ”€ verify/                   
โ”œโ”€โ”€ layout.tsx                
โ””โ”€โ”€ globals.css               

The core idea of the artifacts system is to keep a living clone of the current project you are working on that is always in sync with whatever "sources" and "authored" knowledge you want to be tracked. I really wanted something that wasn't coding specific either and could work with any technical domain. For example I built the SO-ARM100 robotic arm using it to track physical things related to tracking the assembling process, 3D printing the parts, and other physical trouble shooting tasks.

Time Management System โฑ๏ธ

Lastly, Dawn includes built-in time tracking capabilities that integrate with the task and context management system, providing insights into how time is spent across different activities.

Current Features

  • Start and stop timers for specific tasks, with automatic task creation if the task doesn't exist yet
  • Start timers by task name (natural language) or by specific task ID for precision
  • Generate comprehensive time reports filtered by project, date range, or task status

Example Workflows

  • "Start tracking time for debugging authentication issues" - automatically creates the task if it doesn't exist and begins timing.
  • Generate reports to see total time spent on different projects or compare time allocation across tasks.

That's currently where Dawn stands. It has actually been useful for me and the code is pretty straight forward to manage to I'm always adding new features to it. Always looking for feedback, if you have any ideas on how to improve Dawn shoot me a message!

Appendix

Complete List of Dawn's Tool Registry:

Project Management

  • create-project - Create a new project with name and optional description
  • load-project - Get comprehensive project details including tasks and artifacts
  • delete-project - Delete a project by ID
  • update-project - Update a project's name and/or description
  • list-projects - List all available projects

Task Management

  • create-task - Create a new task within a project
  • update-task - Update a task's details (name, description, project, status)
  • delete-task - Delete a task by ID
  • get-project-tasks - Get all tasks for a specific project, grouped by status
  • search-tasks - Search for tasks by keyword across all projects

Time Tracking

  • start-task - Start tracking time for a task by name (creates task if it doesn't exist)
  • stop-task - Stop the current active task timer
  • start-timer - Start tracking time for a specific task by ID
  • stop-timer - Stop an active timer
  • get-time-report - Generate a time report for a date range

Artifact Management

  • create-artifact - Create a new artifact with title and content for a specific project
  • get-artifact - Retrieve an artifact by ID
  • update-artifact - Update an artifact's title and/or content
  • delete-artifact - Delete an artifact by ID
  • list-project-artifacts - List all artifacts for a specific project
  • list-artifacts - List all artifacts across all projects
  • search-artifacts - Search for artifacts by title or content across all projects

Proposed/Future Tools

  • patch-artifact - Apply precise, granular changes to specific blocks or lines within an artifact