Skip to main content
Glama

List SAP Cloud ALM data

calm_list

Query any SAP Cloud ALM collection—tasks, projects, features, test cases, or landscape objects—using OData or REST filters. Select specific IDs, statuses, timeboxes, or assignees to retrieve only the records you need.

Instructions

List or query any SAP Cloud ALM collection (tasks, projects, features, documents, test cases, hierarchy nodes, cross-library objects, landscape objects, status events, code lists). Choose a "resource"; OData resources accept $filter/$select/$expand/$orderby/$top/$skip, REST resources accept contextual params. Defects: resource="tasks", task_type="CALMDEF". See calm_resources for the full catalog.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idsNoFetch specific tasks by id (resource:tasks); sent as a comma-separated list
topNoOData $top — maximum number of records
skipNoOData $skip — records to skip
tagsNoTag filters (resource:tasks)
limitNoREST page size (REST resources)
expandNoOData $expand — comma-separated navigation properties
fieldsNoComma-separated field projection applied by calmcp to the returned records (any resource). Use it to keep responses small, e.g. "displayId,title,status,assigneeName,timeboxId". Unlike $select this works for REST resources too. Unknown names are rejected
filterNoOData $filter, e.g. "status eq 'CIPDFCTOPEN'"
offsetNoREST page offset (REST resources)
selectNoOData $select — comma-separated field list
statusNoStatus code filter (e.g. CIPDFCTOPEN; or deployment plan status)
filtersNoFree-form REST filters for landscape_objects / bsm_events
orderbyNoOData $orderby, e.g. "priority desc" (OData resources / analytics only)
task_idNoTask id (required for task sub-resources)
team_idNoTeam id (required for team_roles/program_team_roles)
resourceYesWhich collection to list (see calm_resources for the catalog and required params)
task_typeNoTask type filter (resource:tasks). CALMDEF = Defect
program_idNoProgram id (required for program_teams)
project_idNoProject id (required for tasks/deliverables/etc.)
sub_statusNoSub-status code filter (resource:tasks)
timebox_idNoTimebox (sprint/phase) id filter (resource:tasks). Applied by calmcp after fetching, paging through the project automatically
assignee_idNoAssignee id filter (resource:tasks)
timebox_nameNoTimebox name filter, e.g. "Sprint 5" (resource:tasks). Resolved against the project's timeboxes; errors listing the known names when it does not match
last_changed_dateNoLast-changed date filter (resource:tasks). Prefix with an operator: gt:, eq: or lt:, e.g. "gt:2026-08-01"
solution_process_idNoSolution process id filter (resource:task_solution_process_assignments)
last_changed_timestampNoLast-changed timestamp filter (resource:tasks). Prefix with gt:, eq: or lt: and use ISO 8601, e.g. "gt:2026-08-01T00:00:00Z". Use this for incremental "what changed since" queries
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose that OData resources accept standard query parameters while REST resources do not, and that the 'fields' parameter works for any resource by applying a projection after fetching. However, it does not mention important behavioral aspects like pagination behavior beyond OData $top/$skip, or side effects (e.g., whether listing affects system state). The description adequately covers query mechanics but not broader behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at three short sentences. Every sentence adds unique value: the first states scope, the second distinguishes resource types, and the third gives a concrete use case. It is front-loaded with the essential information about what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 26 parameters, 1 required, complex OData vs REST distinction, and no output schema, the description provides a good high-level overview. It covers the key architectural choice (OData vs REST) and gives a defect-specific example. However, given the absence of an output schema and the complexity of the tool, a brief mention of what the returned records look like (e.g., typical fields per resource type) would improve completeness, though the reference to calm_resources partially compensates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning all 26 parameters already have descriptions in the JSON schema. The tool description itself does not add new semantic information about parameters—it only mentions the 'fields' parameter's advantage over $select and gives a usage example for parameters like 'timebox_name'. Since the schema already describes each parameter sufficiently, the description adds some value but does not significantly enhance understanding beyond what is in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that this tool lists or queries any SAP Cloud ALM collection, naming over a dozen specific resource types. It explicitly distinguishes its scope from siblings by referencing calm_resources for the full catalog. The verb 'list or query' is specific and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on when to use this tool by differentiating between OData resources (which accept $filter/$select etc.) and REST resources (which accept contextual params). It also gives a concrete example for listing defects (resource='tasks', task_type='CALMDEF'). However, it lacks explicit 'when not to use' guidance relative to siblings like calm_get or calm_analytics, which would improve the score further.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/consetto/calmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server