Skip to main content
Glama
rubrikinc

Rubrik MCP

Official
by rubrikinc

rsc_get_workloads

Read-only

Retrieve and filter workloads across clusters by object type, SLA domain, protection and compliance states, and backup activity to assess coverage and risk.

Instructions

List workloads with protection, compliance, usage, and backup status.

Each result includes:

  • Identity: fid, name, objectType

  • SLA: slaDomain (assigned SLA), protectionStatus (Protected/NoSla/DoNotProtect)

  • Compliance: complianceStatus (IN_COMPLIANCE, OUT_OF_COMPLIANCE, etc.)

  • Backup history: lastSnapshot, localSnapshots, missedSnapshots, totalSnapshots

  • Usage: physicalBytes, logicalBytes

  • Location: location (e.g. vCenter, host, or instance the workload lives on), cluster (Rubrik cluster managing the workload)

Args: object_type: Filter by workload type, e.g. "NutanixVirtualMachine", "VmwareVirtualMachine", "AzureNativeVm", "AwsNativeEc2Instance". Cannot be combined with excluded_object_types. protection_status: One of "Protected", "NoSla", "DoNotProtect". Omit to return all statuses. search_term: Filter by name substring. compliance_status: Filter by compliance state. One of: "IN_COMPLIANCE" — protected, active, no missed snapshots. "OUT_OF_COMPLIANCE" — protected, active, one or more missed snapshots. "UNPROTECTED" — no effective SLA assigned. "NOT_APPLICABLE" — protected but relic or archived; compliance not evaluated. "NOT_AVAILABLE" — protected and active but compliance could not be computed (SLA engine error or unmet precondition). "EMPTY" — report sync has not yet produced a value for this object; data is absent, not wrong. Indicates the cluster's report sync is lagging. Note: "NULL" also exists in the underlying store but is excluded from this filter — it indicates a workload with no compliance status object at all (distinct from EMPTY) and is not used in practice by the ETL pipeline. sla_time_range: Compliance window to evaluate. Defaults to the entire protection lifetime of each workload, which often overstates violations. Prefer a shorter window for actionable results. One of: "LAST_SNAPSHOT", "LAST_2_SNAPSHOTS", "LAST_3_SNAPSHOTS", "LAST_24_HOURS", "PAST_7_DAYS", "PAST_30_DAYS", "PAST_90_DAYS", "PAST_365_DAYS", "SINCE_PROTECTION". sla_id: Filter to workloads assigned to a specific SLA Domain ID. Use this to answer "list all VMs in SLA X" — pass the SLA's UUID. Matches on effective SLA (inherited or directly assigned). cluster_id: Filter to workloads managed by a specific Rubrik cluster UUID. object_fids: Filter to specific workload FIDs (list of UUIDs). Use to fetch details for a known set of workloads in a single call. object_state: Filter by lifecycle state. One of: "ACTIVE", "ARCHIVED", "RELIC", "NOT_SPECIFIED". Use "RELIC" to find decommissioned workloads that still have snapshots. org_id: Filter to workloads belonging to a specific organization UUID. is_local: True to return only local workloads; False for remote/replicated only. Omit to return both. excluded_object_types: List of workload types to exclude. Cannot be combined with object_type. sort_by: Field to sort by, e.g. "MissedSnapshots", "Name", "LastSnapshot", "ComplianceStatus", "SlaDomainName". sort_order: "ASC" or "DESC". limit: Maximum number of results to return. Omit for all results (bounded by the server-side record cap).

Returns: A dict with: - count: the true total matching the filter (the connection's count). - returned: how many workloads are in this response. - truncated: True when returned < count (more exist than returned, because of limit or the record cap). Report count for "how many" questions, not len(workloads). - workloads: the list of workload records.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
org_idNo
sla_idNo
sort_byNo
is_localNo
cluster_idNo
sort_orderNo
object_fidsNo
object_typeNo
search_termNo
object_stateNo
sla_time_rangeNo
compliance_statusNo
protection_statusNo
excluded_object_typesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare a safe read, and the description goes well beyond that: it discloses the default sla_time_range behavior (entire protection lifetime, which "often overstates violations"), the server-side record cap when limit is omitted, and the exact semantics of count vs returned vs truncated. It also explains the subtle EMPTY vs NULL compliance distinction to prevent misinterpretation.

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

Conciseness4/5

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

Well front-loaded and segmented into purpose / per-result fields / Args / Returns, so an agent can scan it. It is long, and the extended NULL-vs-EMPTY digression and repeated enum explanations push slightly past what is strictly needed, but for a 15-param tool it is appropriately sized.

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

Completeness5/5

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

With no output schema and 15 undocumented params, the description must supply both filter semantics and return-shape semantics, and it does: it documents the response dict keys and warns to report count rather than len(workloads). Nothing an agent needs to call or interpret this tool is missing.

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

Parameters5/5

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

Schema description coverage is 0% across 15 params, so the description carries the full burden and does: it lists enum values for protection_status, sla_time_range, object_state, sort_order, defines each compliance_status state, and states the mutual exclusion between object_type and excluded_object_types. This is far richer than the bare 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?

Opens with a specific verb+resource ("List workloads") and then enumerates exactly what each record contains (identity, SLA, compliance, backup history, usage, location). No sibling tool (clusters, SLA domains, events) covers workloads, so an agent can place this unambiguously.

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?

Provides concrete when-to-use context for several params: sla_id is for "list all VMs in SLA X", object_fids is for fetching a known set in one call, object_state RELIC finds decommissioned workloads, and sla_time_range advises preferring a shorter window for actionable results. It stops short of naming alternative sibling tools or explicit when-not-to-use conditions.

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