GitScrum / Docs

Tasks

Complete task management through the MCP Server. Create, update, filter, assign, and track tasks across your GitScrum projects using AI assistants.

Open Source — GitScrum MCP Server is open source under the MIT license. Available on npm and GitHub. Model Context Protocol server for GitScrum — Claude, GitHub Copilot, Cursor, and any MCP-compatible client full operational access to your project management stack.

The task tool is the most comprehensive tool in the GitScrum MCP Server. With 12 actions covering the entire task lifecycle, it handles everything from personal task lists and daily planners to advanced filtering, task duplication, and cross-project moves. Every operation your team performs on the Kanban board, your AI assistant can execute through natural language.

This single consolidated tool replaces what would otherwise be dozens of individual API endpoints. The AI assistant determines which action to call based on your natural language instruction, maps your intent to the correct parameters, and returns structured results you can act on immediately.


Actions Overview

ActionPurposeRequired Parameters
myFetch all tasks assigned to you across projectsNone
todayFetch tasks due or scheduled for todayNone
notificationsRetrieve task-related notifications and unread countNone
getGet full details of a specific taskuuid
createCreate a new task with all fields in one callcompanyslug, projectslug, title
updateModify any field on an existing taskuuid, companyslug, projectslug
completeMark a task as doneuuid
subtasksList all child tasks of a parent taskuuid
filterSearch tasks with advanced multi-field filteringcompanyslug, projectslug
by_codeLook up a task by its human-readable code (e.g. PROJ-123)taskcode, companyslug, project_slug
duplicateClone a task with all its propertiesuuid, companyslug, projectslug
moveTransfer a task to a different project or columnuuid, companyslug, projectslug, newprojectslug, newworkflowid

Personal Task Views

The my and today actions require no parameters. The MCP server identifies you through your authenticated session and returns tasks across all your projects.

my returns every task currently assigned to you, regardless of project or status. This is the equivalent of opening your personal task dashboard in the GitScrum web application. Results include task title, project name, status, priority, due date, and assignees.

today narrows the scope to tasks that are due today or explicitly scheduled for today. This is your daily planning view — the tasks that need attention right now.

notifications fetches your task-related notifications along with the unread count. This includes mentions, assignment changes, status updates, and comments on your tasks.

You:  "What's on my plate?"
AI:   Calls task action=my → returns your full task list

You:  "What do I need to finish today?"
AI:   Calls task action=today → returns today's tasks

You:  "Do I have any new notifications?"
AI:   Calls task action=notifications → returns notifications with unread count

Creating Tasks

The create action builds a new task in a single call. All optional fields — sprint, user story, column, type, effort, assignees, labels, dates, and estimates — can be set at creation time. There is no need for follow-up update calls.

Required Parameters

ParameterTypeDescription
company_slugstringWorkspace identifier (from the workspace tool)
project_slugstringProject identifier (from the project tool)
titlestringTask name or title text

Optional Parameters

ParameterTypeDescription
descriptionstringTask description in Markdown format
sprint_slugstringSprint identifier to add the task to
userstoryslugstringUser story identifier to link the task to
columnstringKanban column name (e.g. "In Progress", "Done"). The MCP server resolves this to the correct workflow_id automatically
workflow_idnumberKanban column ID. Use this if you already have the numeric ID from project action=workflows
type_idnumberTask type ID (get available types from project action=types)
effort_idnumberPriority/effort level ID (get available levels from project action=efforts)
usernamesarray of stringsUsernames to assign (get available members from project action=members)
label_idsarray of numbersLabel IDs to attach (get available labels from project action=labels)
due_datestringDeadline in YYYY-MM-DD format
start_datestringStart date in YYYY-MM-DD format
estimated_minutesnumberTime estimate in minutes (e.g. 120 for 2 hours)
is_bugbooleanMark the task as a bug
is_blockerbooleanMark the task as a blocker
parent_idstringParent task UUID to create this as a subtask

Smart Column Resolution

You can specify columns by name instead of numeric ID. When you pass column: "In Progress", the MCP server fetches the project's workflow configuration, finds the matching column by name (case-insensitive), and resolves it to the correct workflow_id. If the column name doesn't match any existing column, the server returns an error with the list of available columns so the AI assistant can suggest alternatives.

Example Prompts

You:  "Create a task 'Fix login validation' in the backend project"
AI:   Calls task action=create with title, project_slug, company_slug

You:  "Create a bug 'Memory leak in dashboard' assigned to @sarah in the current sprint"
AI:   Calls task action=create with title, is_bug=true, usernames=["sarah"], sprint_slug

You:  "Add a subtask 'Write unit tests' under task [uuid]"
AI:   Calls task action=create with title, parent_id=[uuid]

You:  "Create a high-priority task 'Deploy hotfix' due tomorrow with 2-hour estimate"
AI:   Calls task action=create with title, effort_id, due_date, estimated_minutes=120

Updating Tasks

The update action modifies any field on an existing task. Only the fields you specify are changed — all other fields remain untouched.

Required Parameters

ParameterTypeDescription
uuidstringTask UUID (from any task listing or get response)
company_slugstringWorkspace identifier
project_slugstringProject identifier

Optional Parameters

All optional parameters from the create action are available in update, plus:

ParameterTypeDescription
is_archivedbooleanArchive or unarchive the task

The MCP server handles all necessary ID resolution during updates. If you pass sprintslug, the server resolves it to sprintid. If you pass column, the server resolves it to workflow_id. If you pass usernames, the server maps them to member IDs.

Example Prompts

You:  "Move task GS-123 to the Done column"
AI:   Fetches task by code → calls task action=update with column="Done"

You:  "Assign @john and @maria to the login task"
AI:   Calls task action=update with usernames=["john","maria"]

You:  "Change the deadline to next Friday"
AI:   Calls task action=update with due_date="2026-02-13"

You:  "Mark the deployment task as a blocker"
AI:   Calls task action=update with is_blocker=true

You:  "Archive all completed tasks from last sprint"
AI:   Filters completed tasks → calls update with is_archived=true for each

Completing Tasks

The complete action marks a task as done. This is a dedicated action rather than an update with status change because completing a task may trigger additional workflows — sprint metrics update, notifications fire, and activity logs record the completion event.

You:  "Complete task [uuid]"
AI:   Calls task action=complete with uuid

You:  "Mark the API migration task as done"
AI:   Finds the task by name or code → calls task action=complete

Filtering Tasks

The filter action provides advanced multi-field search across tasks within a project. Combine any number of filter criteria to narrow results precisely.

Required Parameters

ParameterTypeDescription
company_slugstringWorkspace identifier
project_slugstringProject identifier

Filter Parameters

ParameterTypeDescription
statusstringTask status: todo, in-progress, done
sprintstringSprint slug or title
user_storystringUser story slug or title
workflowstringKanban column title
typestringTask type title
effortstringPriority/effort level title
labelsstringComma-separated label titles
usersstringComma-separated usernames
unassignedbooleanOnly show unassigned tasks
is_blockerbooleanOnly show blocker tasks
is_archivedbooleanInclude archived tasks
created_atstringDate range YYYY-MM-DD=YYYY-MM-DD
closed_atstringDate range YYYY-MM-DD=YYYY-MM-DD
per_pagenumberResults per page (1-100, default 50)

The filter action handles title-to-ID resolution automatically. When you pass workflow: "In Progress", the server looks up the workflow column by name and filters by its numeric ID. The same applies to labels, types, efforts, sprints, and user stories — you pass human-readable names, the server resolves them.

Example Prompts

You:  "Filter tasks in progress assigned to @john"
AI:   Calls task action=filter with status="in-progress", users="john"

You:  "Show me all blockers in the current sprint"
AI:   Calls task action=filter with is_blocker=true, sprint=[current sprint slug]

You:  "Find unassigned bugs created this week"
AI:   Calls task action=filter with unassigned=true, type="Bug", created_at="2026-02-02=2026-02-06"

You:  "List all high-priority tasks labeled 'frontend'"
AI:   Calls task action=filter with effort="High", labels="frontend"

You:  "Show tasks closed last month"
AI:   Calls task action=filter with closed_at="2026-01-01=2026-01-31"

Looking Up Tasks by Code

Every task in GitScrum has a human-readable code like PROJ-123. The by_code action retrieves a task using this code instead of the UUID. This is particularly useful in conversations where team members reference tasks by their short code.

You:  "Find task PROJ-456"
AI:   Calls task action=by_code with task_code="PROJ-456"

You:  "What's the status of AUTH-89?"
AI:   Calls task action=by_code → returns full task details including status

Duplicating Tasks

The duplicate action clones a task with all its properties — title, description, labels, type, effort, and column placement. This is useful for creating similar tasks without re-entering all fields, or for setting up recurring work items.

You:  "Duplicate task [uuid]"
AI:   Calls task action=duplicate → returns the new cloned task

You:  "Clone the weekly report task for next week"
AI:   Finds the task → calls task action=duplicate

Moving Tasks

The move action transfers a task to a different project and/or workflow column. This requires the target project slug and the target workflow column ID, because different projects may have different workflow configurations.

ParameterTypeDescription
uuidstringTask UUID to move
company_slugstringCurrent workspace identifier
project_slugstringCurrent project identifier
newprojectslugstringTarget project identifier
newworkflowidnumberTarget column ID in the destination project
You:  "Move task GS-123 to the Frontend project"
AI:   Resolves project slug + workflow → calls task action=move

You:  "Transfer the API task to the Done column in the Backend project"
AI:   Calls task action=move with new_project_slug and new_workflow_id

Subtasks

The subtasks action lists all child tasks of a given parent task. Combined with the create action's parent_id parameter, you can build complete task hierarchies through natural language.

You:  "Show subtasks of the migration task"
AI:   Calls task action=subtasks → returns child task list

You:  "Break down the deployment task into: test staging, update configs, run migration"
AI:   Calls task action=create three times with parent_id set to the deployment task UUID

For teams adopting MCP-driven task management, this workflow maximizes efficiency:

1. Discover project context

Before creating tasks, fetch the project metadata your AI assistant needs for subsequent operations.

You:  "Show me the workflows, types, and efforts for the Backend project"
AI:   Calls project action=workflows, types, efforts → caches IDs for task operations

2. Create tasks with full context

Use the cached metadata to create fully-configured tasks in a single call.

You:  "Create a high-priority bug 'Login timeout on mobile' in the Backend project,
       assign to @sarah, add to the current sprint, label it 'mobile' and 'auth'"
AI:   Single create call with all fields populated

3. Track daily work

Use personal views to stay on top of your workload.

You:  "What's on my plate today?"
AI:   Calls task action=today → shows your daily task list

4. Filter and review

Use advanced filtering for sprint reviews, team standups, or progress tracking.

You:  "Show all in-progress tasks for this sprint"
AI:   Calls task action=filter with status and sprint

5. Complete and iterate

Mark tasks as done and check sprint progress.

You:  "Complete the login timeout fix"
AI:   Calls task action=complete → updates sprint metrics

Context Auto-Resolution

The task tool supports automatic context resolution. If the AI assistant already knows your workspace and project from a previous call in the same conversation, it can carry that context forward. This means you don't need to repeat "in the Backend project" for every task operation — the AI assistant remembers the project context from earlier in the conversation.

When a task is created, updated, or retrieved, the MCP server returns context metadata (companyslug, projectslug, task_uuid) that the AI assistant uses for follow-up operations.


Next Steps

  • Sprints: Plan and track sprints that contain your tasks.
  • Projects: Manage project settings, workflows, and team members.
  • Time Tracking: Start timers and log time against tasks.
  • Quick Start: Set up the MCP server if you haven't already.