get_job_detail
Gets complete details about a job for a given job id.
Commvault jobs, SLA, storage, users and plans in an MCP client — with DocuSign and Salesforce backup browsing.
LABSCO SUMMARY
The functional draw is job control and SLA in one place, and the Salesforce path is genuinely rare — browsing backed-up records with a WHERE filter, not just confirming a backup ran. The security section is worth reading before deployment: it spells out that MCP gives no isolation between servers in a session, so a hostile server's tool descriptions can steer an agent toward the stored Commvault token, and recommends an isolated session for that reason.
An MCP server for Commvault environments. It gives an agent access to job details and control, commcell metrics, client and storage information, user permissions, plan configuration and backup schedules, with optional integrations for browsing DocuSign and Salesforce backups.
ENABLE_SALESFORCE_TOOLS=true — get_salesforce_client resolves a 15- or 18-character org ID to a Commvault clientId, and get_salesforce_records fetches backed-up records for an object such as Account or Contact from the latest snapshot, with limit defaulting to 50 and capped at 1000, offset, and an optional free_query WHERE filterENABLE_DOCUSIGN_TOOLS=true — set up the vault and workflow, back up completed envelopes to a Commvault S3 vault, then list and restore themPython 3.11 or higher and uv. Clone the repo and run uv run setup.py, which walks through Metallic or on-premise deployment, transport mode (stdio, streamable-http or sse), server connection details, and the authentication method. Two auth options: OAuth, which needs Commvault SP42 CU 27 or above with OAuth configured in the CommServe and a redirect URI of OAUTH_BASE_URL/auth/callback; or token-based auth with an access token, a refresh token and your own secret, stored in an OS-native keyring — Windows Credential Manager, macOS Keychain, or Secret Service or KWallet on Linux. Start with uv run -m src.server, or build the Docker image, which runs OAuth mode only. Running more than one install under the same OS user requires a unique MCP_INSTANCE_ID per install, or each setup.py run overwrites the other's keyring entries and you get 401 Invalid token after a restart. Behind a proxy, set TRUSTED_PROXY_IPS. Apache License.
Build from source — git clone https://github.com/Commvault/commvault-mcp-server.git
USE CASES
Look at the job's details and history, then resume or resubmit it from the conversation.
Pull SLA status, security scores and storage utilisation for the commcell in one pass.
Resolve the org ID to a Commvault client, then read the backed-up records for that object with a filter.
List users and groups with their security associations alongside the plans they are covered by.
Listed in project docs. Your client may show a different list.
get_job_detailGets complete details about a job for a given job id.
suspend_jobSuspends/pauses the job with the given job id.
resume_jobResumes the job with the given job id.
resubmit_jobResubmits the job with the given job id.
kill_jobKills the job with the given job id.
get_jobs_listGets the list of jobs filtered by job type/status/clientId in a given jobLookupWindow.
get_failed_jobsGets the list of failed jobs in a given jobLookupWindow.
get_job_task_detailsGets task details for a given job ID.
get_retention_info_of_a_jobGets retention info for a given job ID.
create_send_logs_job_for_a_jobTriggers 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.
get_client_group_listGets the list of client groups.
get_client_listGets the list of clients.
get_client_group_propertiesGets properties for a given client group id.
get_clientid_from_clientnameGets client id for a given client name.
get_subclient_listGets subclient list for a given client name or client id.
get_subclient_propertiesGets subclient properties for a given subclient id.
run_backup_for_subclientRuns a backup job for the specified subclient with the given backup type.
get_schedules_listGets the list of schedules (filtered for relevant information).
get_schedule_propertiesGets properties for a given schedule id.
enable_scheduleEnables a schedule with the given schedule id.
disable_scheduleDisables a schedule with the given schedule id.
get_storage_policy_listGets storage policy list.
get_storage_policy_propertiesGets storage policy properties for a given storage policy id.
get_storage_policy_copy_detailsGets storage policy copy details for a given storage policy id and copy id.
get_storage_policy_copy_sizeGets storage policy copy size for a given storage policy id and copy id.
get_library_listGets the list of libraries.
get_library_propertiesGets properties for a given library id.
get_storage_pool_listGets the list of storage pools, filtered for LLM-friendly output.
get_mediaagent_listGets the list of media agents.
get_plan_listGets the list of all plans.
get_plan_propertiesGets properties for a given plan id.
get_sla_statusRetrieves the SLA status from Commvault.
get_security_postureRetrieves the security posture of the Commcell.
get_security_scoreRetrieves the security score of the Commcell.
get_storage_space_utilizationRetrieves 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.
create_send_logs_job_for_commcellTriggers 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.
get_commcell_detailsGets the details of the commcell, formatted for LLM consumption.
get_entity_countsGets the total count of entities, including servers, VMs, laptops, and users, within the CommCell environment.
get_users_listGets the list of users in the CommCell.
get_user_propertiesGets properties for a given user id.
set_user_enabledEnables or disables a user with the given user id based on the 'enabled' flag.
get_user_groups_listGets the list of user groups in the CommCell.
get_user_group_propertiesGets properties for a given user group id.
get_associated_entities_for_user_or_groupGets the associated entities (roles and permissions for each entity) for a given user or user group id.
view_entity_permissionsRetrieves permissions the user has for a specific entity type and ID.
get_roles_listGets the list of roles in the CommCell.
get_my_user_infoGets the information about the current user.
setup_docusign_backup_vaultUse this tool to configure a backup vault and workflow for DocuSign documents. Fetch user_id and user_name using get_my_user_info, and plan_id and plan_name using get_plan_list. Ask the user to provide the S3 endpoint and choose the plan from the list of s3 vault compatible plans.
trigger_docusign_backupTriggers a workflow to backup Docusign documents. If the backup workflow is not configured, an error will be raised.
schedule_docusign_backupSchedules docusign backup workflow to run daily or weekly. Ask the user if they want to schedule it before running.
list_backedup_docusign_envelopesLists all backed up DocuSign envelopes and files. This can be used to fetch the paths of all backed up envelopes and their files.
recover_docusign_envelopeTrigger the restoration of a DocuSign envelope from backup. Restored files will be saved to <commvault_temp_directory_path>/docusign-restores/<backup_date>/<envelope_id>. Please update the backup_date and envelope_id before responding. Temp directory path can be left as placeholder, assume user knows it.
get_docusign_jobsRetrieves the list of DocuSign backup/restore jobs.
get_salesforce_clientResolve a Salesforce organisation ID to the Commvault clientId by querying the Salesforce Organisation list API.
get_salesforce_recordsFetch backed-up Salesforce records for a specific Salesforce object from the latest available backup snapshot.
BEFORE YOU INSTALL
55 tools named in the project's documentation.
All 3 documented setups run the server on your machine.
INSTALLATION
This one is built from source rather than installed with a single command.
git clone https://github.com/Commvault/commvault-mcp-server.git
cd commvault-mcp-server
uv run setup.pyThe setup script asks for Metallic or on-premise, the transport (stdio, streamable-http or sse), the host and port for the remote modes, and the authentication method. With token-based authentication it generates a server secret, stores it in the OS keyring and prints it once ("Copy this server secret for your LLM configuration"); the secret expires after 30 days.
Start the server:
uv run -m src.serverDocker instead (OAuth mode only): choose OAuth in uv run setup.py so it writes .env, then docker build -t commvault-mcp-server . and docker run --rm -p 9090:9090 --env-file .env commvault-mcp-server
<YOUR_SERVER_URL>/mcp is your server's address: the README puts the server behind a TLS reverse proxy for production. After Authorization:, paste the server secret uv run setup.py printed.
{
"mcpServers": {
"Commvault": {
"command": "npx",
"args": [
"mcp-remote",
"<YOUR_SERVER_URL>/mcp",
"--header",
"Authorization: <YOUR_SERVER_SECRET>"
]
}
}
}Windows. <YOUR_SERVER_URL>/mcp is your server's address: the README puts the server behind a TLS reverse proxy for production. After Authorization:, paste the server secret uv run setup.py printed.
{
"mcpServers": {
"Commvault": {
"command": "cmd",
"args": [
"/c",
"npx",
"mcp-remote",
"<YOUR_SERVER_URL>/mcp",
"--header",
"Authorization: <YOUR_SERVER_SECRET>"
]
}
}
}For a server you reach over plain HTTP, such as on your own network. The address is the MCP_HOST, MCP_PORT and MCP_PATH you gave uv run setup.py (the path defaults to /mcp; .env.example uses port 8000). After Authorization:, paste the server secret uv run setup.py printed.
{
"mcpServers": {
"Commvault": {
"command": "npx",
"args": [
"mcp-remote",
"http://HOST:PORT/mcp",
"--header",
"Authorization: <YOUR_SERVER_SECRET>",
"--allow-http"
]
}
}
}