DeltaTask MCP Server
by brysontang
# 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