Skip to content

feat: Processes MCP tools (list/submit/track/cancel requests + pending approvals) + Spring bridge - EXO-88467 - #486

Merged
Jihed525 merged 1 commit into
feature/ai-contributionfrom
feat/processes-mcp-tools-EXO-88467
Jul 15, 2026
Merged

feat: Processes MCP tools (list/submit/track/cancel requests + pending approvals) + Spring bridge - EXO-88467#486
Jihed525 merged 1 commit into
feature/ai-contributionfrom
feat/processes-mcp-tools-EXO-88467

Conversation

@bmestrallet

Copy link
Copy Markdown

What

Exposes the eXo Processes center (workflow requests) as 6 MCP tools for EVA, in the open processes add-on.

  • list_processes — discover available request types (WorkFlows)
  • get_my_requests / get_request_details — track your requests + status
  • submit_work_request — create a request (title/description/attachments; require_approval)
  • cancel_work_request — cancel (status=Canceled + completed; require_approval)
  • get_pending_approvals — requests awaiting me as a process-project manager (derived via the Task engine)

Grounded in the code: a WorkFlow is a Task/Kanban project and a request is a task, so approval actions reuse the existing Task MCP tools (update_task_status → Validated/Refused, add_task_comment) rather than duplicating them.

Spring bridge

The processes add-on was kernel-only, so a ProcessesApplication Spring bridge (@SpringBootApplication extends PortalApplicationContextInitializer, with the DB-autoconfig excludes) was added in the webapp module so the @Service ... McpToolPlugin bean is discovered by mcp-server. Deploy needs both the services jar and the webapp WAR.

Verification

Built + unit-tested; verified live through EVA (list_processes returns the configured process types). A runtime null-Boolean NPE in the filter (caught live) is fixed + regression-tested.

Dependency / CI

Consumes mcp-server-tools (McpToolPlugin) at the *-ai-contribution line — CI red until that version is published.

Board: EXO-88467.

🤖 Generated with Claude Code

…nding approvals) - EXO-88467

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@bmestrallet
bmestrallet requested a review from ahamdi July 8, 2026 18:26
@Jihed525
Jihed525 merged commit 1c2ac4a into feature/ai-contribution Jul 15, 2026
5 checks passed
@Jihed525
Jihed525 deleted the feat/processes-mcp-tools-EXO-88467 branch July 15, 2026 14:37
Jihed525 added a commit that referenced this pull request Jul 21, 2026
The CI coverage gate (-Pcoverage, min 0.58 instruction ratio) failed on
feature/ai-contribution: ProcessesMcpTool (added by #486) was at 20.7%
coverage since ProcessesMcpToolTest only guarded listProcesses/
getPendingApprovals against a null-unbox NPE, leaving getMyRequests,
getRequestDetails, submitWorkRequest, cancelWorkRequest and the
task-mapping path of getPendingApprovals untested. That dragged the
processes-services bundle to 55%, under develop's already-thin 58.1%
margin.

Added tests for the remaining methods (validation errors, not-found,
happy path, the cancel-is-idempotent branch, and the pending-approvals
task-to-model mapping), bringing ProcessesMcpTool to 92.9% and the
bundle to 60.4%. Verified with mvn -Pcoverage clean install on the
processes-services module and the full reactor.
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