taskdog-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_tasksA | List all tasks with optional filtering. Args: include_archived: Include archived tasks (default: False) status: Filter by status (PENDING, IN_PROGRESS, COMPLETED, CANCELED) tags: Filter by tags (OR logic) sort_by: Sort field (id, name, priority, deadline, status, planned_start, estimated_duration, created_at, updated_at) reverse: Reverse sort order Returns: Dictionary with tasks list and metadata |
| get_taskA | Get detailed information about a specific task. Args: task_id: The ID of the task to retrieve Returns: Task details including notes |
| create_taskA | Create a new task. Args: name: Task name (required) priority: Task priority (higher = more important, default from config) deadline: Deadline in ISO format with time (e.g., '2025-12-11T18:00:00') estimated_duration: Estimated duration in hours (e.g., 0.5 = 30min, 1.5 = 1h30m) tags: List of tags for categorization is_fixed: Whether schedule is fixed (won't be moved by optimizer) planned_start: Planned start datetime in ISO format (e.g., '2025-12-11T09:00:00') planned_end: Planned end datetime in ISO format (e.g., '2025-12-11T17:00:00') Returns: Created task data with ID |
| update_taskC | Update an existing task. Args: task_id: ID of the task to update name: New task name priority: New priority deadline: New deadline in ISO format with time (e.g., '2025-12-11T18:00:00') estimated_duration: New estimated duration in hours (e.g., 0.5 = 30min, 1.5 = 1h30m) tags: New tags list (replaces existing) is_fixed: New fixed status planned_start: New planned start datetime in ISO format (e.g., '2025-12-11T09:00:00') planned_end: New planned end datetime in ISO format (e.g., '2025-12-11T17:00:00') Returns: Updated task data |
| delete_taskB | Delete a task. Args: task_id: ID of the task to delete hard: If True, permanently delete. If False, archive (soft delete). Returns: Confirmation message |
| restore_taskB | Restore an archived task. Args: task_id: ID of the task to restore Returns: Restored task data |
| start_taskA | Start working on a task. Changes status from PENDING to IN_PROGRESS and records start time. Args: task_id: ID of the task to start Returns: Updated task data with status change confirmation |
| complete_taskA | Mark a task as completed. Changes status to COMPLETED and records end time. Args: task_id: ID of the task to complete Returns: Updated task data with completion confirmation |
| pause_taskA | Pause a task (reset to PENDING). Changes status back to PENDING and clears timestamps. Args: task_id: ID of the task to pause Returns: Updated task data |
| cancel_taskA | Cancel a task. Changes status to CANCELED. Args: task_id: ID of the task to cancel Returns: Updated task data |
| reopen_taskA | Reopen a completed or canceled task. Changes status back to PENDING. Args: task_id: ID of the task to reopen Returns: Updated task data |
| fix_actual_timesA | Fix actual start/end timestamps for a task. Used to correct timestamps for historical accuracy. Past dates allowed. Args: task_id: ID of the task to fix actual_start: New actual start in ISO format (e.g., '2025-12-13T09:00:00') actual_end: New actual end in ISO format (e.g., '2025-12-13T17:00:00') actual_duration: Explicit duration in hours (e.g., 0.5 = 30min, 1.5 = 1h30m) clear_start: Clear actual_start timestamp clear_end: Clear actual_end timestamp clear_duration: Clear actual_duration (use calculated value) Returns: Updated task data with new timestamps |
| get_statisticsA | Get task statistics. Args: period: Time period for statistics (all, 7d, 30d) Returns: Statistics including counts by status, completion rates, etc. |
| get_tag_statisticsA | Get statistics for all tags. Returns: Tag statistics including task counts per tag |
| get_executable_tasksA | Get tasks that AI can potentially execute. Returns PENDING or IN_PROGRESS tasks sorted by priority. Use this to find tasks to work on. Args: tags: Filter by tags (e.g., ['coding', 'ai-executable']) limit: Maximum number of tasks to return Returns: List of executable tasks with details |
| decompose_taskA | Decompose a large task into smaller subtasks. This tool helps break down complex tasks into manageable subtasks. Subtasks can be linked with sequential dependencies and grouped by tag. Note: Taskdog does not have parent-child relationships. Instead, use dependencies + tags + notes to express relationships. Args: task_id: ID of the original task to decompose subtasks: List of subtask definitions, each with: - name: Subtask name (required) - estimated_duration: Hours to complete (required) - priority: Priority level (optional, inherits from original) - tags: Additional tags (optional) group_tag: Tag to add to all subtasks for grouping (e.g., 'feature-x') create_dependencies: If True, create sequential dependencies archive_original: If True, archive the original task after decomposition Returns: Decomposition result with created subtask IDs |
| add_dependencyA | Add a dependency between two tasks. The task will depend on the specified task (must be completed first). Args: task_id: ID of the task that will have the dependency depends_on_id: ID of the task it depends on Returns: Confirmation with updated task info |
| remove_dependencyA | Remove a dependency between two tasks. Args: task_id: ID of the task with the dependency depends_on_id: ID of the dependency to remove Returns: Confirmation with updated task info |
| set_task_tagsB | Set tags for a task (replaces existing tags). Args: task_id: ID of the task tags: New list of tags Returns: Updated task info with new tags |
| update_task_notesB | Update notes for a task. Args: task_id: ID of the task content: New notes content (markdown) Returns: Confirmation message |
| get_task_notesB | Get notes for a task. Args: task_id: ID of the task Returns: Task notes content |
| delete_tagA | Delete a tag from the system. Removes the tag and all its associations with tasks. Args: tag_name: Name of the tag to delete Returns: Confirmation with tag name and affected task count |
| list_audit_logsA | List audit logs with optional filtering. Args: task_id: Filter by task ID operation: Filter by operation type (e.g., 'create_task', 'complete_task') client_name: Filter by client name since: Filter logs after this datetime (ISO format, e.g., '2025-12-11T09:00:00') until: Filter logs before this datetime (ISO format, e.g., '2025-12-11T17:00:00'); a date-only value covers the whole day failed: If True, only show failed operations limit: Maximum number of logs to return Returns: Dictionary with logs list and metadata |
| get_audit_logA | Get detailed information about a specific audit log entry. Args: log_id: The ID of the audit log entry to retrieve Returns: Detailed audit log entry including old and new values |
| optimize_scheduleA | Auto-generate optimal task schedules. Schedules tasks with estimated_duration based on priority, deadlines, and dependencies. By default schedules on weekdays only and skips tasks that already have a planned_start (use force_override to override). Args: algorithm: Algorithm name. One of: greedy (front-load), balanced (even distribution), backward (JIT from deadline), priority_first (priority only), earliest_deadline (EDF), round_robin (parallel progress), dependency_aware (CPM), genetic (evolutionary), monte_carlo (random sampling). Use list_algorithms() to discover available algorithms. max_hours_per_day: Maximum work hours per day (e.g., 6.0 or 8.0) start_date: Optimization start date in ISO format (e.g., '2025-12-15' or '2025-12-15T09:00:00'). Defaults to server current time when omitted. task_ids: Specific task IDs to optimize. If omitted, all schedulable tasks are considered. force_override: If True, override existing schedules include_all_days: If True, schedule on weekends and holidays too Returns: Optimization result with successful_tasks, failed_tasks, daily_allocations, and summary metrics. |
| list_algorithmsA | List available schedule optimization algorithms. Returns metadata for each algorithm so callers can choose one appropriate for their workload. Returns:
Dict with |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 26 tools
Each tool targets a distinct resource and action combination. Lifecycle verbs like start_task, complete_task, pause_task, cancel_task, and reopen_task are clearly differentiated by their state transitions, and list_tasks vs get_executable_tasks are distinguished by the latter's focus on AI-executable work.
All tool names follow a consistent verb_noun snake_case pattern (e.g., list_tasks, create_task, delete_task, optimize_schedule). Retrieval tools use get_ for single items and list_ for collections, and state-changing verbs are consistent throughout.
With 26 tools, this exceeds the 25-tool threshold for 'too many.' While the domain is broad, several utilities like get_task_notes, set_task_tags, and the various statistics tools could potentially be consolidated.
The tool surface provides comprehensive task lifecycle management: create, read, update, delete/archive/restore, all status transitions, dependencies, tags, notes, audit logs, statistics, scheduling optimization, and decomposition. No obvious gaps exist for a task management system.