Commvault's Official MCP Server providing tools for Commvault backup and recovery management
The Commvault MCP server defines 32 tools with consistent naming and mostly adequate descriptions. Tool names follow verb-noun patterns (get_*, create_*, run_*, etc.) appropriately. All 32 tools have descriptions present (range 15 - 158 chars, median ~80 chars, well within the 10 - 1024 baseline). Input schemas are complete with proper JSON Schema type declarations and parameter descriptions. However, several gaps reduce the score: (1) Output schemas are NOT documented, responses are not described in tool definitions, forcing LLMs to infer structure. (2) Some descriptions are terse (15 - 30 chars) and lack context on when to use the tool or what it returns. (3) Parameters lack enum constraints where they should have them (e.g., backup_type and job_status accept free-form strings instead of constrained enums). (4) Error handling guidance is absent, tools provide no recovery instructions. (5) The server lacks tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite the MCP spec supporting them since 2024. (6) No documentation of multi-step flows (e.g., when to call get_clientid_from_clientname before get_subclient_list). The core structure is sound, but LLM-optimization and production-grade error handling are missing.
Triggers a new send logs job for the specified job ID and sends logs to the provided email address. If successful, returns the job ID of the created send logs job.
Triggers a new send logs job for the specified CommCell and sends logs to the provided email address. If successful, returns the job ID of the created send logs job.
Disables a schedule with the given schedule id.
Enables a schedule with the given schedule id.
Gets the list of client groups.
Gets properties for a given client group id.
Output schemas not documented. Tool definitions describe inputs but never state what fields the response contains, forcing LLMs to infer structure and risking hallucination of expected fields.
Missing enum constraints on parameters that accept specific values. 'backup_type' accepts free-form strings instead of constrained enum ['Full', 'INCREMENTAL', 'SYNTHETIC_FULL']. 'job_status' similarly lacks enum. Enums are self-documenting and prevent hallucinated invalid values.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). MCP spec supports these since 2024. Destructive tools like 'kill_job' and 'resubmit_job' lack destructiveHint/idempotentHint, which would help agents reason about consequences and retry safety.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | B | 73 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 30 | - | v1 |
Gets the list of clients.
Gets client id for a given client name.
Gets the details of the commcell, formatted for LLM consumption.
Gets the total count of entities, including servers, VMs, laptops, and users, within the CommCell environment.
Gets the list of failed jobs in a given jobLookupWindow.
Gets complete details about a job for a given job id.
Gets task details for a given job ID.
Gets the list of jobs filtered by job type/status/clientId in a given jobLookupWindow.
Gets the list of all plans. Special Condition: While fetching plans list for S3 vault, set the `only_s3_vault_compatible` parameter to True.
Gets properties for a given plan id.
Gets retention info for a given job ID.
Resolve a Salesforce organisation ID to the Commvault clientId by querying the Salesforce Organisation list API.
Fetch backed-up Salesforce records for a given object using the Commvault Salesforce records API.
Gets properties for a given schedule id.
Gets the list of schedules (filtered for relevant information).
Retrieves the security posture of the Commcell.
Retrieves the security score of the Commcell.
Retrieves the SLA status from Commvault.
Retrieves storage space utilization or the amount of data that is in all disk or cloud libraries, and the percentage of storage space that was saved because of compression and deduplication.
Gets subclient list for a given client name or client id.
Gets subclient properties for a given subclient id.
Kills the job with the given job id.
Resubmits the job with the given job id.
Resumes the job with the given job id.
Runs a backup job for the specified subclient with the given backup type.
Suspends/pauses the job with the given job id.
Terse descriptions (15 - 40 chars) lack context on when to use the tool or what it returns. E.g., 'get_sla_status': 'Retrieves the SLA status from Commvault.' does not explain the structure of the status, whether it's a percentage, pass/fail, or list of SLAs, or when the agent should call it instead of get_commcell_details.
No error handling or recovery guidance. Tools provide no description of failure modes or what the agent should do if a call fails (e.g., 'If client_id is invalid, try get_clientid_from_clientname() first'). Agents cannot self-correct without human intervention.
Parameter dependency chains undocumented. 'get_subclient_list' accepts 'client_identifier' which can be a name or ID depending on 'identifier_type', but the description does not explain the dependency or the lookup flow (when to call get_clientid_from_clientname first).
Result limits not documented. 'get_jobs_list' has 'limit' and 'offset' parameters, but the description does not state the default limit, maximum allowed limit, or consequences of large result sets. Agents may request excessive results without knowing the cost.
Destructive operations lack confirmation or dry-run mode. 'kill_job' is irreversible but has no confirmation step, dry-run, or undo capability. An agent error irreversibly terminates a job with no recovery path.