SAP Cloud ALM MCP Server — BTP-hosted, XSUAA-secured
CALM MCP server defines 17 tools with complete input schemas and basic descriptions. Naming follows verb_noun convention (list, get, create, update, delete). However, descriptions are terse (avg ~80 chars, well below the 194-char baseline for A+ tools), lack context on WHEN to use each tool, and omit recovery guidance. Parameter descriptions are sparse, many params like 'status', 'priorityId', 'responsibleId' lack detail on valid values or constraints. Output schemas are not documented, forcing LLMs to infer response structure. Error handling is absent from tool definitions. Security considerations (permission gates, audit trails) are not visible. Composition is sound, tools are single-responsibility and chainable via ID returns. Overall: functional but below production baseline.
Query a Cloud ALM analytics endpoint. Provide the relative endpoint path (e.g. "kpis", "reports") and optional OData-style query params.
Get a single Cloud ALM document by id.
List Cloud ALM documents. Filter by type or status.
Create a new feature/requirement in a Cloud ALM project.
Delete a Cloud ALM feature by its id.
Get full details for a single Cloud ALM feature.
Output schemas not documented. LLMs cannot infer response structure, forcing them to guess which fields are returned and what types they are. This breaks downstream tool chaining and increases hallucination risk.
Parameter descriptions are minimal or absent. 'status', 'priorityId', 'statusCode', 'priorityCode', 'responsibleId' lack detail on valid values, constraints, or format. LLMs cannot determine what values are acceptable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
List Cloud ALM features (requirements) for a project. Filter by statusCode or priorityCode.
Update a Cloud ALM feature (PATCH).
List nodes in the Cloud ALM process hierarchy.
List Cloud ALM monitored business processes.
Get full details for a single Cloud ALM project by its id.
List Cloud ALM projects. Optionally filter by status. Returns id, name, status, type, and modifiedAt by default.
Create a new task in a Cloud ALM project.
Delete a Cloud ALM task by its id.
Get full details for a single Cloud ALM task.
List tasks in a Cloud ALM project. Filter by status or assigneeId. Returns id, title, status, assigneeId, dueDate.
Update fields on an existing Cloud ALM task (PATCH).
Tool descriptions are terse (avg ~80 chars vs 194-char baseline). They state WHAT but not WHEN to use or any prerequisites. E.g., 'calm_tasks_create' does not explain whether it requires a project to exist first or what happens on duplicate titles.
No error handling guidance in tool definitions. LLMs have no recovery path if a call fails. E.g., if 'calm_tasks_create' fails due to invalid projectId, the tool should suggest 'Call calm_projects_list to find a valid projectId.'
Destructive tools (calm_tasks_delete, calm_features_delete) lack confirmation or dry-run support. No pattern to prevent accidental deletion. LLMs should be able to preview what will be deleted before committing.