Skip to main content
Glama
ppdm-mcp-server

ppdm-mcp-server

by Moodswing9

🧩 ppdm-mcp-server

Dell PowerProtect Data Manager, NetWorker and Data Domain as Claude Code tools — 32 tools in one MCP server

npm License CI Node


Overview

ppdm-mcp-server lets any Claude Code session query, monitor and control your backup infrastructure in plain English:

  • PPDM (20 tools) — job monitoring, on-demand and bulk backups, single-call restores, restore session tracking, schedule and policy management, SLA compliance and system health.

  • NetWorker (6 tools) — savesets, clients, protection groups and on-demand saves.

  • Data Domain (6 tools) — system info, filesystem capacity, DDBoost status, storage units and users.

Each system is optional. Configure only the ones you use; a tool for an unconfigured system returns an error explaining which settings are missing.


Related MCP server: mcp-cohesity

Requirements

  • Node.js 18+

  • Claude Code

  • Network access to the PPDM, NetWorker and/or Data Domain REST APIs, with an account that can read (and, for write tools, change) the relevant objects


Install

Register the server with Claude Code, passing the settings for the systems you use:

claude mcp add ppdm-mcp-server \
  -e PPDM_HOST=ppdm.example.com -e PPDM_USER=admin -e PPDM_PASS=... \
  -- npx -y ppdm-mcp-server

The first npx start downloads the package and can take up to a minute. For instant starts, install it once with npm install -g ppdm-mcp-server and register -- ppdm-mcp-server instead.


Configuration

Set environment variables with -e as above, or put them in a .env file in the directory the server starts from. .env.example lists them all.

System

Variables

Default port

PPDM

PPDM_HOST, PPDM_USER, PPDM_PASS, PPDM_PORT

8443

NetWorker

NW_HOST, NW_USER, NW_PASS, NW_PORT

9090

Data Domain

DD_HOST, DD_USER, DD_PASS, DD_PORT

3009


Tools

PPDM — monitoring

Tool

What it does

get_system_health

Health status from a sample of the 10 most recent failed and running jobs

list_failed_jobs

Failed backup jobs with asset, error and start time; filter by asset type

list_running_jobs

Currently running backup jobs

list_assets

Protected assets; filter by name or type

list_policies

Protection policies

get_activity

Full detail for one activity

get_sla_compliance

Every asset not backed up within a given number of hours

PPDM — backup and restore

Tool

What it does

trigger_backup

On-demand backup of an asset with a named policy

bulk_trigger_backup

On-demand backup of every asset matching a filter under a policy

cancel_activity

Cancel a running activity

bulk_cancel_jobs

Cancel all running jobs, optionally by asset type

poll_until_complete

Wait for an activity to succeed, fail or be canceled, and return the result

restore_latest

Restore an asset to its original location from its most recent copy

PPDM — restore sessions

Tool

What it does

list_restore_sessions

Recent restore sessions; filter by state

get_restore_status

Progress, bytes restored, state and timing of one session

cancel_restore

Cancel a running restore session

PPDM — schedules and policies

Tool

What it does

list_schedules

Every policy schedule: frequency, start time, duration, enabled state

update_schedule

Change a policy stage's frequency, start time or duration

pause_policy

Disable a policy so its jobs stop running

resume_policy

Re-enable a paused policy

NetWorker

Tool

What it does

nw_list_savesets

Savesets (backup copies); filter by client

nw_list_failed_savesets

Savesets that didn't complete successfully

nw_list_clients

Registered clients

nw_get_client

Full detail for one client

nw_list_policies

Protection groups

nw_trigger_save

On-demand backup of a client

Data Domain

Tool

What it does

dd_system_info

Model, version, serial number and uptime

dd_filesystem_stats

Total, used and available capacity, and percentage used

dd_ddboost_status

Whether DDBoost is enabled, and its authorized users

dd_list_storage_units

DDBoost storage units with user, quota and status

dd_create_storage_unit

Create a DDBoost storage unit

dd_list_users

Local Data Domain users

Names must be unambiguous. Tools that take a policy or asset name use an exact match (ignoring case) when there is one, or a partial name that matches exactly one object. If a partial name matches several, the tool refuses and lists them, so it never acts on the wrong object. Replies always name the object that was used.

Write tools change your environment. trigger_backup, bulk_trigger_backup, cancel_activity, bulk_cancel_jobs, restore_latest, cancel_restore, update_schedule, pause_policy, resume_policy, nw_trigger_save and dd_create_storage_unit all take action. Claude Code asks before running a tool unless you've allowed it, so review those prompts.


Examples

How many backup jobs failed in the last 24 hours, and why?
→ get_system_health + list_failed_jobs

Back up every Kubernetes asset under the "Daily-K8s" policy and tell me when they finish.
→ bulk_trigger_backup + poll_until_complete

Restore prod-sql-01 from its latest copy and watch the restore.
→ restore_latest + get_restore_status

Is the Data Domain running low on space?
→ dd_filesystem_stats

Security notes

  • TLS verification is disabled for all three systems, because they commonly use self-signed certificates. Run the server on a trusted internal network.

  • Credentials are read from environment variables and never logged.


Development

git clone https://github.com/Moodswing9/ppdm-mcp-server.git
cd ppdm-mcp-server
npm ci
npm run build      # compile to dist/
npm run dev        # run from source
npm test           # build, then run the tests (no network access needed)

See CONTRIBUTING.md and CHANGELOG.md.


  • ppdm-alert-bot — PPDM and NetWorker alerts to Slack, Teams, PagerDuty and email

  • networker-ppdm — Claude Code plugin with slash commands for DR orchestration and anomaly detection

  • ppdm-watch — real-time terminal monitoring dashboard

  • ppdm-es-troubleshooter — Elasticsearch diagnostic tool

Portfolio: moodswing9.github.io

Available Tools

32 tools
bulk_cancel_jobsB

Cancel all currently running PPDM jobs, optionally filtered by asset type.

Inputs: asset_type.

bulk_trigger_backupB

Trigger on-demand backup for all assets matching an optional filter under a named policy.

Inputs: policy_name (required), asset_name, asset_type.

cancel_activityC

Cancel a running PPDM activity.

Inputs: activity_id (required).

cancel_restoreC

Cancel a running PPDM restore session by ID

Inputs: sessionId (required).

dd_create_storage_unitC

Create a new DDBoost storage unit on Data Domain.

Inputs: name (required), user (required), quota_gib.

dd_ddboost_statusA

Check whether DDBoost is enabled on Data Domain and list authorized DDBoost users.

Inputs: no named parameters.

dd_filesystem_statsA

Get Data Domain filesystem capacity — total, used, available in GiB and used percentage. Use to check if DD is running low on space.

Inputs: no named parameters.

dd_list_storage_unitsA

List DDBoost storage units on Data Domain — name, assigned user, quota, and status.

Inputs: no named parameters.

dd_list_usersB

List local users configured on Data Domain.

Inputs: no named parameters.

dd_system_infoB

Get Data Domain system information — model, version, serial number, and uptime.

Inputs: no named parameters.

get_activityC

Get full detail for a specific PPDM activity by ID.

Inputs: activity_id (required).

get_restore_statusA

Get full status of a specific restore session by ID — includes percent complete, bytes restored, state, and timing

Inputs: sessionId (required).

get_sla_complianceA

Report SLA compliance — which assets have not been backed up within the required window.

Inputs: hours.

get_system_healthB

Get an overall health summary for the PPDM environment.

Inputs: no named parameters.

list_assetsC

List protected assets in PPDM. Filter by name or type.

Inputs: name, type, limit.

list_failed_jobsB

List failed backup jobs from PPDM. Returns asset name, type, error, and start time.

Inputs: limit, asset_type.

list_policiesC

List protection policies configured in PPDM.

Inputs: name.

list_restore_sessionsA

List PPDM restore sessions — filter by state (RUNNING, COMPLETED, FAILED) or leave blank for all recent sessions

Inputs: filter.

list_running_jobsB

List currently running backup jobs in PPDM.

Inputs: asset_type.

list_schedulesB

List all PPDM protection policy schedules — frequency, start time, duration, and enabled state.

Inputs: no named parameters.

nw_get_clientB

Get detailed information for a specific NetWorker client by ID.

Inputs: client_id (required).

nw_list_clientsC

List NetWorker clients registered on the server.

Inputs: name.

nw_list_failed_savesetsB

List NetWorker savesets that did not complete successfully.

Inputs: limit.

nw_list_policiesC

List NetWorker protection groups (policies).

Inputs: name.

nw_list_savesetsC

List NetWorker savesets (backup copies). Filter by client name.

Inputs: limit, client_name.

nw_trigger_saveC

Trigger an on-demand backup for a NetWorker client.

Inputs: client_id (required).

pause_policyA

Disable (pause) a PPDM protection policy — jobs will not run until resumed.

Inputs: policy_name (required).

poll_until_completeA

Poll a PPDM activity until it reaches a terminal state (SUCCEEDED, FAILED, CANCELED). Returns the final activity record. Use after trigger_backup to await completion.

Inputs: activity_id (required), timeout_mins, interval_secs.

restore_latestB

Restore an asset to its original location from the most recent copy — single call, no manual copy browsing needed.

Inputs: asset_name (required).

resume_policyA

Re-enable a paused PPDM protection policy — scheduled jobs will resume on the next window.

Inputs: policy_name (required).

trigger_backupB

Trigger an on-demand backup for an asset using a named protection policy.

Inputs: asset_name (required), policy_name (required).

update_scheduleB

Update the schedule of a PPDM protection policy stage — change frequency, start time, or duration.

Inputs: policy_name (required), frequency, start_time, stage_index, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 32 tools

    Disambiguation4/5

    Most tools target a clearly distinct resource and action, and the dd_/nw_ prefixes help separate product domains. Minor overlap exists between dd_ddboost_status (authorized DDBoost users), dd_list_users (local users), and dd_list_storage_units (assigned user), which could cause some misselection.

    Naming Consistency4/5

    The set mostly follows a verb_noun pattern (list_assets, trigger_backup, cancel_restore, update_schedule), with product prefixes dd_ and nw_ for Data Domain and NetWorker tools. PPDM tools are unprefixed while the other two domains are prefixed, which is a minor deviation rather than a chaotic mix.

    Tool Count3/5

    32 tools is heavy and exceeds the typical 3–15 well-scoped range, though the surface spans three distinct systems (PPDM, NetWorker, Data Domain). The count is defensible for a multi-product backup administration server, but several tools could be consolidated.

    Completeness3/5

    PPDM coverage is fairly strong, including backup, cancel, polling, restore sessions, schedules, SLA, and health. However, there are notable gaps: NetWorker has no restore or cancel operation, and Data Domain lacks delete/update storage unit and user management, leaving some lifecycle operations incomplete.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to interact with Dell PowerScale (Isilon) OneFS clusters through over 2,400 tools generated from the REST API specification. It supports managing storage protocols, snapshots, networking, and cluster configurations using natural language.
      2
      MIT
    • F
      license
      A
      quality
      C
      maintenance
      Provides AI assistants with access to Cohesity DataProtect for managing backups, recovery operations, and data protection monitoring via the Cohesity REST API. It enables users to trigger on-demand backups, monitor cluster health, and manage protection policies through natural language commands.
      14
      16 npm
      2
      -
    • A
      license
      A
      quality
      D
      maintenance
      Enables Claude to read and control Veeam Backup & Replication infrastructure through natural language, supporting full operator capabilities like starting/stopping jobs, creating backups, and monitoring threat detection via the VBR REST API.
      34
      Apache 2.0