iflow-mcp_deltatask 0.1.1
Add your description here
Requires Python: >=3.8

# DeltaTask - Advanced Task Management System

A powerful, locally-hosted task management application with Obsidian integration and a Model Context Protocol (MCP) server.

## Features

- **Smart Task Management**: Create tasks with urgency levels and effort estimates
- **Prioritization Engine**: Automatically sorts tasks by urgency and effort
- **Task Decomposition**: Split larger tasks into manageable subtasks
- **Tagging System**: Organize tasks with custom tags
- **Local Storage**: All data stored locally in SQLite database
- **Obsidian Integration**: Bi-directional sync with Obsidian markdown files
- **MCP Server**: Full API access through Model Context Protocol

## Technical Details

### Data Model

- **Tasks**: Core task entity with properties:
  - Title and description
  - Urgency (1-5 scale, 5 being highest)
  - Effort (1-21 scale, following Fibonacci sequence)
  - Completion status
  - Parent-child relationships for subtasks
  - Tags for categorization

### Database Schema

The application uses SQLite with the following tables:

- `todos`: Stores all task items and their properties
- `tags`: Stores unique tag names
- `todo_tags`: Junction table for many-to-many relationship between tasks and tags

### Obsidian Integration

DeltaTask creates and maintains a structured Obsidian vault:

- Task files with frontmatter metadata
- Tag-based views for filtering tasks
- Statistics dashboard
- Bi-directional sync between Obsidian markdown and SQLite database

### MCP API Endpoints

The MCP server exposes the following operations:

- `get_task_by_id`: Get a specific task by ID
- `search_tasks`: Find tasks by title, description, or tags
- `create_task`: Create a new task
- `update_task`: Update a task's properties
- `delete_task`: Remove a task
- `sync_tasks`: Sync tasks from Obsidian markdown into SQLite
- `list_tasks`: List all tasks
- `get_statistics`: Retrieve metrics about tasks
- `create_subtasks`: Split a task into multiple subtasks
- `get_all_tags`: Get all unique tag names
- `get_subtasks`: Get subtasks for a given parent task
- `finish_task`: Mark a task as completed

## Getting Started

### Prerequisites

- Python 3.10+
- SQLite3
- Obsidian (optional, for markdown integration)

### Installation

1. Clone this repository
2. Set up the Python environment using `uv`:

   ```
   # Create and activate the virtual environment
   uv venv
   source .venv/bin/activate  # On Windows: .venv\Scripts\activate

   # Install dependencies
   uv pip install -r requirements.txt
   ```

### Running the MCP Server

The DeltaTask MCP server can be used with Claude for Desktop:

1. Configure Claude for Desktop:

   - Open or create `~/Library/Application Support/Claude/claude_desktop_config.json`
   - Add the DeltaTask server configuration:

   ```json
   {
     "mcpServers": {
       "deltatask": {
         "command": "uv",
         "args": [
           "--directory",
           "/ABSOLUTE/PATH/TO/DeltaTask",
           "run",
           "server.py"
         ]
       }
     }
   }
   ```

   - Restart Claude for Desktop

If you run into issues or want more details, check out the [Docs for the MCP](https://modelcontextprotocol.io/quickstart/server).

For instance from the docs:

You may need to put the full path to the `uv` executable in the `command` field. You can get this by running `which uv` on MacOS/Linux or `where uv` on Windows.

2. Use the DeltaTask tools in Claude for Desktop by clicking the hammer icon

## Model Context Protocol (MCP)

This application implements a Model Context Protocol approach for task management:

1. **Structured Data Model**: Clearly defined schema for tasks with relationships
2. **Priority Calculation**: Intelligent sorting based on multiple factors
3. **Hierarchical Organization**: Parent-child relationships for task decomposition
4. **Tagging System**: Flexible categorization for better context
5. **Statistics and Insights**: Data aggregation for understanding task patterns
6. **Obsidian Integration**: Markdown-based visualization and editing

## License

MIT License