Source profileQuality 83/100Review permissions

Servosity/msp-skills/skills/cove/SKILL.md

cove

The first CLI and MCP server for Cove Data Protection - fleet-wide backup health, billing usage, and storage trends from a terminal, with the local history the vendor console doesn't keep. Trigger phrases: `which backups failed last night`, `check cove backup status`, `stale cove devices`, `cove storage growth`, `cove billing usage report`, `use cove`, `run cove-cli`.

Source repository stars
15
Declared platforms
0
Static risk flags
3
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

The first CLI and MCP server for Cove Data Protection - fleet-wide backup health, billing usage, and storage trends from a terminal, with the local history the vendor console doesn't keep. Trigger phrases: `which backups failed last night`, `check cove backup status`, `stale cove devices`, `cove storage growth`, `cove billing usage report`, `use cove`, `run…

Best for

  • Use cove-cli when a task touches N-able Cove Data Protection fleet state: which backups failed or went stale, per-customer health rollups, storage growth, month-end SKU/seat billing, partner/device/user/audit enumeratio…

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/Servosity/msp-skills --skill "skills/cove"
Safe inspection promptEditorial

Inspect the Agent Skill "cove" from https://github.com/Servosity/msp-skills/blob/30e109db0872897de0b88adb38d81d4c292da3ae/skills/cove/SKILL.md at commit 30e109db0872897de0b88adb38d81d4c292da3ae. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Auth Setup

    Cove's JSON-RPC API authenticates with a partner-scoped login, not a bearer token or API key. Create a dedicated API User in the Cove Management Console (Users API Users); it issues a login name and an API token (shown only once). Set COVEUSERNAME to the API user's login name, C…

    Cove's JSON-RPC API authenticates with a partner-scoped login, not a bearer token or API key. Create a dedicated API User in the Cove Management Console (Users API Users); it issues a login name and an API token (shown…Run cove-cli doctor to verify setup.
  2. 02

    Prerequisites: Install the CLI

    This skill drives the cove-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:

    Install via the Printing Press installer. It defaults binaries to $HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:Verify: cove-cli --versionEnsure the reported install directory is on $PATH for the agent/runtime that will invoke this skill.
  3. 03

    When to Use This CLI

    Use cove-cli when a task touches N-able Cove Data Protection fleet state: which backups failed or went stale, per-customer health rollups, storage growth, month-end SKU/seat billing, partner/device/user/audit enumeration, or any of the 251 JSON-RPC methods via call. It is the ri…

    Use cove-cli when a task touches N-able Cove Data Protection fleet state: which backups failed or went stale, per-customer health rollups, storage growth, month-end SKU/seat billing, partner/device/user/audit enumeratio…
  4. 04

    Anti-triggers

    Do not use this CLI for: - Restoring files or browsing backed-up data - restores run through the Backup Manager client or console, and per-device session detail lives on storage-node Reporting Service endpoints this CLI does not cover - Installing or controlling the Backup Manag…

    Restoring files or browsing backed-up data - restores run through the Backup Manager client or console, and per-device session detail lives on storage-node Reporting Service endpoints this CLI does not coverInstalling or controlling the Backup Manager agent on endpoints - use deployment tooling (RMM) for thatN-able N-central or RMM administration - this CLI only speaks the Cove (backup.management) API
  5. 05

    Unique Capabilities

    These capabilities aren't available in any other tool for this API.

    storage growth - See which devices and customers are growing their backup storage fastest, from timestamped local snapshots.devices changes - Devices whose backup status flipped between the two latest snapshots - regressions and recoveries without re-sweeping the fleet.devices failures - Every device across all customers whose last backup session failed, aborted, errored, or never started - decoded to status names.

Permission review

Static risk signals and limitations

Runs scripts

medium · line 9

The documentation asks the agent to run terminal commands or scripts.

npx -y @mvanhorn/printing-press-library install cove --cli-only

Runs scripts

medium · line 17

The documentation asks the agent to run terminal commands or scripts.

go install github.com/mvanhorn/printing-press-library/library/monitoring/cove/cmd/cove-cli@latest

Sends data out

high · line 255

The documentation includes sending, uploading, or posting data to a remote service.

| `webhook:<url>` | POST the output body to the URL (`application/json` or `application/x-ndjson` when `--compact`) |

Network access

medium · line 255

The documentation includes network, browsing, or remote request actions.

| `webhook:<url>` | POST the output body to the URL (`application/json` or `application/x-ndjson` when `--compact`) |

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score83/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars15SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
Servosity/msp-skills
Skill path
skills/cove/SKILL.md
Commit
30e109db0872897de0b88adb38d81d4c292da3ae
License
NOASSERTION
Collected
2026-07-28
Default branch
main
View the original SKILL.md

Cove Data Protection - Printing Press CLI

Prerequisites: Install the CLI

This skill drives the cove-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:

  1. Install via the Printing Press installer. It defaults binaries to $HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:
    npx -y @mvanhorn/printing-press-library install cove --cli-only
    
  2. Verify: cove-cli --version
  3. Ensure the reported install directory is on $PATH for the agent/runtime that will invoke this skill.

If the npx install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.4 or newer). This installs into $GOPATH/bin (default $HOME/go/bin), so add that directory to $PATH instead:

go install github.com/mvanhorn/printing-press-library/library/monitoring/cove/cmd/cove-cli@latest

If --version reports "command not found" after install, the runtime cannot see the binary directory on $PATH. Do not proceed with skill commands until verification succeeds.

Cove's console scopes to one customer at a time and forgets yesterday. cove-cli speaks the whole JSON-RPC API: one command sweeps every partner for failed or stale backups with column codes decoded to human names, snapshot keeps timestamped SQLite history so storage growth and devices changes can answer trend questions nothing else can, and call reaches all 251 documented methods.

When to Use This CLI

Use cove-cli when a task touches N-able Cove Data Protection fleet state: which backups failed or went stale, per-customer health rollups, storage growth, month-end SKU/seat billing, partner/device/user/audit enumeration, or any of the 251 JSON-RPC methods via call. It is the right tool for cross-customer questions the backup.management console can only answer one partner at a time, and for trend questions that need the local snapshot history.

Anti-triggers

Do not use this CLI for:

  • Restoring files or browsing backed-up data - restores run through the Backup Manager client or console, and per-device session detail lives on storage-node Reporting Service endpoints this CLI does not cover
  • Installing or controlling the Backup Manager agent on endpoints - use deployment tooling (RMM) for that
  • N-able N-central or RMM administration - this CLI only speaks the Cove (backup.management) API
  • Accounts that only have interactive 2FA logins - the JSON-RPC API needs an API-enabled service account

Unique Capabilities

These capabilities aren't available in any other tool for this API.

Local history that compounds

  • storage growth - See which devices and customers are growing their backup storage fastest, from timestamped local snapshots.

    Reach for this when capacity planning or quota questions need a trend, not a point-in-time number.

    cove-cli storage growth --since 7d --agent
    
  • devices changes - Devices whose backup status flipped between the two latest snapshots - regressions and recoveries without re-sweeping the fleet.

    Answers 'what broke since last week' and 'did Friday's failures clear' in one command.

    cove-cli devices changes --since 7d --json
    

Fleet triage

  • devices failures - Every device across all customers whose last backup session failed, aborted, errored, or never started - decoded to status names.

    The MSP morning ritual: run this first to build the day's ticket queue.

    cove-cli devices failures --since 24h --agent
    
  • devices stale - Devices with no successful backup in N days, ranked by staleness and grouped by customer.

    Catches silent gaps: a device can report a fine last status while not having succeeded for days.

    cove-cli devices stale --days 3 --json
    
  • fleet health - One-screen rollup: total devices, healthy, failed, stale, never-run - with a per-customer breakdown.

    The at-a-glance number for standups and QBR prep.

    cove-cli fleet health --by partner --json
    

Billing

  • billing usage - Per-device SKU, used storage, and M365 seat counts with column codes decoded - the month-end billing export in one command.

    Turns Cove usage into invoice lines without the column-code legend open in another tab.

    cove-cli billing usage --csv
    
  • billing changes - Devices whose plan changed since last month - current SKU vs Cove's built-in previous-month SKU column.

    Run at month-end to catch upgrades, downgrades, and seat changes that affect invoices.

    cove-cli billing changes --json
    

Command Reference

audit - Management console audit trail

  • cove-cli audit - Enumerate audit actions in a time range (JSON-RPC EnumerateAuditActions)

backup-jobs - Backup/restore jobs

  • cove-cli backup-jobs - Enumerate jobs for a partner (JSON-RPC EnumerateJobs)

columns - Statistics column metadata (pairs with the README column-code legend)

  • cove-cli columns - Enumerate custom statistic columns visible to a partner (JSON-RPC EnumerateColumns)

devices - Backup devices (accounts) and their column-coded statistics

  • cove-cli devices get - Get one device by id (JSON-RPC GetAccountInfoById)
  • cove-cli devices list - Enumerate backup devices for a partner (JSON-RPC EnumerateAccounts)
  • cove-cli devices stats - Query device statistics by column codes (JSON-RPC EnumerateAccountStatistics; see README column-code legend)

labels - Device labels

  • cove-cli labels - Enumerate all device labels (JSON-RPC EnumerateAllLabels)

locations - Data-center locations

  • cove-cli locations - Enumerate data-center locations (JSON-RPC EnumerateLocations)

partners - Customers and resellers in the partner hierarchy

  • cove-cli partners get - Get one partner by id (JSON-RPC GetPartnerInfoById)
  • cove-cli partners list - Enumerate partners under a parent (JSON-RPC EnumeratePartners)

products - Backup products available to a partner

  • cove-cli products - Enumerate products (JSON-RPC EnumerateProducts)

server - Management service metadata

  • cove-cli server - Get management server info (JSON-RPC GetServerInfo)

storage - Storage pools, statistics, and nodes

  • cove-cli storage list - Enumerate storage pools for a partner (JSON-RPC EnumerateStorages)
  • cove-cli storage nodes - Enumerate all storage nodes (JSON-RPC EnumerateAllStorageNodes)
  • cove-cli storage stats - Storage usage statistics per location (JSON-RPC EnumerateStorageStatistics)

users - Console users

  • cove-cli users - Enumerate users for partners (JSON-RPC EnumerateUsers)

Finding the right command

When you know what you want to do but not which command does it, ask the CLI directly:

cove-cli which "<capability in your own words>"

which resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code 0 means at least one match; exit code 2 means no confident match - fall back to --help or use a narrower query.

Recipes

Morning failure sweep for the ticket queue

cove-cli devices failures --since 24h --agent --select items.device_name,items.customer,items.status_name

Cross-customer failed/aborted/not-started list narrowed to the three fields a triage ticket needs.

Find silently stale devices

cove-cli devices stale --days 3 --json

Devices with no successful session in 3 days, ranked worst-first - catches gaps the last-status view hides.

Month-end billing export

cove-cli billing usage --csv

Per-device SKU, used storage, and M365 seats as CSV for the invoice model.

What broke since the last snapshot

cove-cli devices changes --since 7d --json

After two cove-cli snapshot runs some time apart: regressions and recoveries between them.

Call any of the 251 JSON-RPC methods

cove-cli call GetServerInfo --json

Generic escape hatch with automatic visa injection and typed vendor error mapping.

Auth Setup

Cove's JSON-RPC API authenticates with a partner-scoped login, not a bearer token or API key. Create a dedicated API User in the Cove Management Console (Users > API Users); it issues a login name and an API token (shown only once). Set COVE_USERNAME to the API user's login name, COVE_PASSWORD to the API token, and COVE_PARTNER to the customer/partner the API user was created for - for an API User COVE_PARTNER is required, not optional, and an empty partner is the usual cause of a 2100 "Unknown partner/username" error. COVE_PARTNER must be the full customer/partner string exactly as shown in the Cove console customer dropdown - usually including the account email in parentheses, e.g. Acme Corp (admin@acme.com), not just the company name; Cove returns the same 2100 "Unknown partner/username or bad password" error for a wrong COVE_PARTNER format as for a bad password. The API token is the password; it is not itself a visa and is never sent as a header (passing it to --visa fails by design). N-able removed the older per-user "API access" checkbox, and API Users cannot sign in to the console. Run cove-cli auth login once: it calls the Login method with these three values, receives a session token (the "visa"), and caches it locally with auto-refresh on expiry. Hand-built commands (failures, stale, health, billing, snapshot, call) inject the visa automatically. The raw generated endpoint commands (partners/devices/storage list·get, promoted *) do not auto-inject it: pass --visa "$(cove-cli auth token)", or prefer cove-cli call <Method>, which injects the visa for you.

Run cove-cli doctor to verify setup.

Agent Mode

Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.

  • Pipeable - JSON on stdout, errors on stderr

  • Filterable - --select keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:

    cove-cli audit --agent --select id,name,status
    
  • Previewable - --dry-run shows the request without sending

  • Offline-friendly - sync/search commands can use the local SQLite store when available

  • Non-interactive - never prompts, every input is a flag

  • Explicit retries - use --idempotent only when an already-existing create should count as success

Response envelope

Commands that read from the local store or the API wrap output in a provenance envelope:

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

Parse .results for data and .meta.source to know whether it's live or local. A human-readable N results (live) summary is printed to stderr only when stdout is a terminal AND no machine-format flag (--json, --csv, --compact, --quiet, --plain, --select) is set - piped/agent consumers and explicit-format runs get pure JSON on stdout.

Agent Feedback

When you (or the agent) notice something off about this CLI, record it:

cove-cli feedback "the --since flag is inclusive but docs say exclusive"
cove-cli feedback --stdin < notes.txt
cove-cli feedback list --json --limit 10

Entries are stored locally at ~/.local/share/cove-cli/feedback.jsonl. They are never POSTed unless COVE_FEEDBACK_ENDPOINT is set AND either --send is passed or COVE_FEEDBACK_AUTO_SEND=true. Default behavior is local-only.

Write what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.

Output Delivery

Every command accepts --deliver <sink>. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:

SinkEffect
stdoutDefault; write to stdout only
file:<path>Atomically write output to <path> (tmp + rename)
webhook:<url>POST the output body to the URL (application/json or application/x-ndjson when --compact)

Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.

Named Profiles

A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.

cove-cli profile save briefing --json
cove-cli --profile briefing audit
cove-cli profile list --json
cove-cli profile show briefing
cove-cli profile delete briefing --yes

Explicit flags always win over profile values; profile values win over defaults. agent-context lists all available profiles under available_profiles so introspecting agents discover them at runtime.

Exit Codes

CodeMeaning
0Success
2Usage error (wrong arguments)
3Resource not found
5API error (upstream issue)
7Rate limited (wait and retry)
10Config error

Argument Parsing

Parse $ARGUMENTS:

  1. Empty, help, or --help → show cove-cli --help output
  2. Starts with install → ends with mcp → MCP installation; otherwise → see Prerequisites above
  3. Anything else → Direct Use (execute as CLI command with --agent)

MCP Server Installation

  1. Install the MCP server:
    go install github.com/mvanhorn/printing-press-library/library/monitoring/cove/cmd/cove-mcp@latest
    
  2. Register with Claude Code:
    claude mcp add cove-mcp -- cove-mcp
    
  3. Verify: claude mcp list

Direct Use

  1. Check if installed: which cove-cli If not found, offer to install (see Prerequisites at the top of this skill).
  2. Match the user query to the best command from the Unique Capabilities and Command Reference above.
  3. Execute with the --agent flag:
    cove-cli <command> [subcommand] [args] --agent
    
  4. If ambiguous, drill into subcommand help: cove-cli <command> --help.

Alternatives

Compare before choosing

Computed 10042,015

coreyhaines31/marketingskills

ab-testing

When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program

Computed 10042,015

coreyhaines31/marketingskills

churn-prevention

When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers o

Computed 997

event4u-app/agent-config

design-review

Use when the user says "review the design", "check the UI", or wants a comprehensive UI/UX review. Uses a 7-phase methodology covering interaction, responsiveness, accessibility, and more.

Computed 9831,966

K-Dense-AI/scientific-agent-skills

dask

Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.