DeltaTask MCP Server
# 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
TDQS
Scored across 12 tools
Every tool has a clearly distinct purpose with no ambiguity. For example, create_task and create_subtasks handle different operations, while list_tasks and search_tasks offer complementary but non-overlapping ways to retrieve tasks. The descriptions clearly differentiate each tool's function.
All tool names follow a consistent verb_noun pattern using snake_case, such as create_task, delete_task, and get_subtasks. This predictability makes it easy for an agent to understand and select the appropriate tool without confusion.
With 12 tools, the server is well-scoped for task management, covering CRUD operations, subtasks, tags, statistics, and syncing. Each tool earns its place by addressing a specific need in the domain without being excessive or insufficient.
The tool surface provides complete CRUD and lifecycle coverage for task management, including creation, retrieval, updating, deletion, completion, subtasks, tags, search, statistics, and syncing. There are no obvious gaps that would hinder an agent's workflow.