MCP Server para integração e gestão do Eclipse Hawkbit via LLM
The server provides 17 tools with explicit @McpTool annotations and parameter descriptions. However, critical gaps exist: (1) Tool names are inconsistent in style (queryActions uses camelCase, manageRollout uses mixed patterns). (2) Parameter descriptions often lack constraint details, offsets/limits mention defaults but not enforced ranges. (3) Output schemas are not documented in the tool definitions; LLMs cannot plan downstream operations without knowing return structure. (4) Error handling is minimal, validation errors are implicit (e.g., 'Action ID is required for GET_DETAILS' in ActionService) but not consistently propagated. (5) Several parameters like 'createBody', 'updateBody', 'filterBody' are typed as generic 'object' with no schema details. (6) Enum descriptions lack guidance on when to use each option. Tools like manageRollout, manageRolloutState, and manageTargetType follow multi-action patterns that work but are less discoverable than single-action tools. Overall definition quality is functional but falls short of production-grade standards, descriptions exist but are thin, schemas are partially present but underspecified, and error recovery paths are not documented.
Cancel action by id of a specific target. Cancels an active action, only active actions can be deleted.
Create new targets. Fill only mandatory fields.
Delete a specific target by its controller ID
Get action by id of a specific target
Get action history for a specific target by its controller ID
Handles the GET request of retrieving a list of assigned targets.
Retrieves the details of a single rollout group (deploy group) within a specific rollout.
Output schemas are completely undocumented. Tools return objects from the Hawkbit SDK (MgmtRolloutResponseBody, PagedList, etc.) but no schema is visible in tool definitions. LLMs cannot plan downstream tool calls or extract required fields (e.g., rollout_id for chaining).
Generic object parameters (createBody, updateBody, filterBody, assignmentBody) lack schema details. Typed as 'object' with only high-level descriptions. LLMs cannot know what fields to pass or what constraints apply.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 6 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 40 | - | v1 |
Retrieves a paged list of all targets assigned to a specific rollout group.
Retrieves a paged list of all rollout groups (deploy groups) assigned to a specific rollout.
Get all Rollouts
Get detailed information about a Target. Can include attributes, tags, and distribution sets in the same call.
Get all target filter queries with filtering and pagination.
Handles the GET request of retrieving all target types.
Get all targets
Get all Targets Tags
Manages the lifecycle of a Rollout (Get single, Create, Update, Delete).
Handles the lifecycle and state management of a Rollout. Use to start, pause, resume, approve, deny, or retry.
Manages target assignments for a Target Tag (Assign or Unassign targets).
Manages the lifecycle of a Target Filter Query (Get single, Create, Update, Delete).
Manages the Distribution Set Auto-Assignment for a Target Filter.
Manage metadata for a Target (CRUD operations).
Manages the lifecycle of Target Tags (Get, Create, Update, Delete).
Manages the lifecycle of Target Types (Create, Read, Update, Delete).
Manages the compatibility between Target Types and Distribution Set Types.
Retrieves information about Actions (Search/List or Get Single Details).
Multi-action tools (manageRollout, manageTargetFilter, manageTargetTag, etc.) combine GET, CREATE, UPDATE, DELETE into single tools with conditional required params. Enum action values are well-defined, but inter-parameter dependencies (e.g., 'createBody required for CREATE') are documented only in param descriptions, not enforced at schema level.
Pagination parameters (offset, limit) lack explicit min/max constraints in schema or description. Descriptions mention 'max: 50' but schema does not enforce bounds. LLMs could pass invalid values (negative offset, limit > 50) without validation feedback.
No error recovery guidance. ActionService throws IllegalArgumentException for missing actionId, but no tool-level error handling or recovery hints (e.g., 'If actionId is unknown, call queryActions(SEARCH) first'). Agents have no path forward on validation failures.
No confirmation/dry-run pattern for destructive operations. manageRollout with action=DELETE and confirm parameter suggests dry-run intent, but 'confirm' parameter is undocumented in descriptions and tool definitions do not show rollback or undo mechanisms.
Tool names inconsistently use verbs. Some follow get_* pattern (getRollouts, getTargetFilters), others use manage_* (manageRollout, manageTargetFilter). Query* (queryActions) uses non-standard naming. This inconsistency forces LLMs to reason about naming conventions rather than inferring intent directly from tool names.
Enum descriptions (e.g., queryType SEARCH vs GET_DETAILS, action START vs PAUSE vs APPROVE) lack context on when LLM should use each value. Description says 'The action to be executed' but does not explain START vs PAUSE vs TRIGGER_NEXT_GROUP trade-offs.