AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻译准备中
MCP server exposing Dell EMC PPDM, NetWorker & Data Domain as Claude Code tools — 29 tools (13 PPDM + 6 NW + 6 DD)
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
MCP server for Dell EMC PowerProtect Data Manager (PPDM) and NetWorker — exposes your backup infrastructure as Claude Code tools so any Claude session can query, monitor, and control backup operations without leaving the terminal.
Or add to your Claude Code config manually:
Set these environment variables (or add to .env):
Once installed, the tools are available in any Claude Code session:
• networker-ppdm — slash commands for DR orchestration, extended thinking DR planning, and batch anomaly detection
• ppdm-watch — real-time terminal monitoring dashboard
• ppdm-es-t查看完整 README ↗Dell PowerProtect Data Manager, NetWorker and Data Domain as Claude Code tools — 32 tools in one MCP server
ppdm-mcp-server lets any Claude Code session query, monitor and control your backup infrastructure in plain English:
Each system is optional. Configure only the ones you use; a tool for an unconfigured system returns an error explaining which settings are missing.
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.
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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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_saveanddd_create_storage_unitall take action. Claude Code asks before running a tool unless you've allowed it, so review those prompts.
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
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.
Portfolio: moodswing9.github.io