Skip to content

feat: MCP tools expansion (scheduling, projects, stats, favorites, labels) - EXO-88313 - #626

Merged
Jihed525 merged 2 commits into
developfrom
backport/EXO-88313-mcp-tools
Jul 20, 2026
Merged

Jihed525 merged 2 commits into
developfrom
backport/EXO-88313-mcp-tools

Conversation

@Jihed525

Copy link
Copy Markdown
Contributor

What

Backport of #618 onto develop.

Expands the Task add-on's MCP tool surface so EVA can act on tasks and projects, not just read them: 18 new tools (io.meeds.task.mcp.TaskMcpTool + services/src/main/resources/ai-tool-definitions.json) plus a follow-up 3 label-management tools, taking the catalog from 23 → 44. Backend-only.

Scheduling & lifecycle: set_task_dates, complete_task/reopen_task, set_task_priority, list_unscheduled_tasks (read)
Project management: update_project, add_project_member/remove_project_member, set_project_manager/remove_project_manager, create_project_status/rename_project_status
Reporting: get_project_statistics (read, new ProjectStatisticsModel)
Favorites: favorite_project/unfavorite_project, favorite_task/unfavorite_task
Comments: delete_task_comment
Labels: list_task_labels (read), update_project_label, delete_project_label

Each tool runs as the calling user (platform ACLs apply); write tools are flagged require_approval.

Backport notes

Cherry-picked the two commits from #618 cleanly on top of the current develop (no conflicts).

Test

  • mvn -pl services -am -Dcheckstyle.skip=true -DskipTests install → BUILD SUCCESS
  • mvn -pl services -Dcheckstyle.skip=true -Dtest=TaskMcpToolTest test → 53 tests, 0 failures/errors

🤖 Generated with Claude Code

Benjamin and others added 2 commits July 20, 2026 14:22
…ts, favorites)

Extends io.meeds.task.mcp.TaskMcpTool (+ ai-tool-definitions.json) with tools the
AI/EVA assistant was missing. All writes are require_approval=true, all reuse the
existing services + ACL checks (edit/access/view permission helpers).

Scheduling & lifecycle:
- set_task_dates (reschedule an existing task; create already took dates, this sets
  them on an existing one), complete_task / reopen_task (the `completed` flag, which
  is distinct from the status column), set_task_priority, list_unscheduled_tasks
  (uncompleted tasks with neither a start nor a due date — the Plan-view bucket).

Project management:
- update_project (name/description/colour), add_project_member /
  remove_project_member (participators), set_project_manager /
  remove_project_manager, create_project_status / rename_project_status.

Reporting & favorites & comments:
- get_project_statistics (uncompleted task counts per status + total; new
  ProjectStatisticsModel), favorite_project / unfavorite_project / favorite_task /
  unfavorite_task (via the social FavoriteService, now injected), delete_task_comment.

Note: task-comment editing is intentionally omitted — CommentService exposes only
addComment/removeComment, no update.

41 tools total. 12 new unit tests in TaskMcpToolTest (49 passing). Services build
green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
(cherry picked from commit 3345670)
…t label)

Adds list_task_labels (read), update_project_label (rename) and
delete_project_label to complete label management; catalog 41 -> 44.
Reuses LabelService + project-edit ACL via a new getEditableLabel helper.
+4 unit tests (53 passing).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
(cherry picked from commit 0e2817e)
@Jihed525
Jihed525 requested a review from ahamdi July 20, 2026 13:23
@sonarqubecloud

Copy link
Copy Markdown

@Jihed525
Jihed525 merged commit 5744c28 into develop Jul 20, 2026
11 checks passed
@Jihed525
Jihed525 deleted the backport/EXO-88313-mcp-tools branch July 20, 2026 16:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants