Auvik Device Lifecycle
Assess the end-of-life posture, warranty and service contract coverage, and configuration backup history of Auvik-managed devices. Supports hardware refresh planning, renewal pipeline management, and QBR lifecycle reporting across MSP tenants.
MCP Server
- Server:
auvik-mcp (NetClaw MCP, Feature 036)
- Command:
python3 mcp-servers/auvik-mcp/auvik_mcp_server.py (stdio transport)
- Auth: Basic auth via
AUVIK_USERNAME + AUVIK_API_KEY
- Read-only: GET operations only — no lifecycle record modifications
Available Tools
| Tool |
What It Does |
auvik_list_device_lifecycle |
EoL and last-support posture for managed devices; filter by sales_availability, software_maintenance_status, security_software_maintenance_status, or last_support_status |
auvik_list_device_warranty |
Warranty and service contract coverage; filter by covered_under_warranty (bool) or covered_under_service (bool) |
auvik_list_configurations |
Configuration backup history; config_id retrieves the full backup body; filter by device, backup time window, or is_running (running vs. startup config) |
Key Concepts
Tenants = MSP clients. All three tools accept an optional tenants parameter (name or domain prefix). Omit it to query all visible tenants; provide it to scope to a single client.
Identifier resolution. The device parameter on all three tools accepts a hostname, IP address, partial name, or Auvik numeric ID. The server resolves names and IPs to internal IDs automatically. Ambiguous matches return ResolutionCandidate[].
Lifecycle status fields. auvik_list_device_lifecycle surfaces four independent status dimensions:
sales_availability — whether the device is still sold by the vendor
software_maintenance_status — whether the OS/firmware receives updates
security_software_maintenance_status — whether security patches are still released
last_support_status — whether the vendor still provides any support
Warranty vs. service. auvik_list_device_warranty distinguishes between manufacturer warranty (covered_under_warranty) and service contracts such as SMARTnet or NBD (covered_under_service). A device may have one, both, or neither.
Configuration backups. auvik_list_configurations returns a list of backup records. Retrieve the full configuration text by passing the config_id of a specific record. Use is_running=true to filter for running-config backups vs. startup-config. Combine backup_time_after and backup_time_before (ISO-8601) to bound a review window.
Cursor pagination. List tools auto-aggregate all pages up to AUVIK_MAX_PAGES. Narrow filters (e.g., a specific tenant + device) to manage response size on large inventories.
Workflow
Hardware Refresh Planning
- Start GAIT branch:
gait_branch with name like auvik-lifecycle-review-<client>-2026-06-21
- List all lifecycle data:
auvik_list_device_lifecycle with tenants=<client> — no status filter to capture full picture
- Identify at-risk devices: re-run with
last_support_status=endOfLife to isolate unsupported hardware
- Check warranty gaps:
auvik_list_device_warranty with covered_under_warranty=false, covered_under_service=false to find completely uncovered devices
- Cross-reference inventory:
auvik-inventory (auvik_list_devices) with detail_level=detail to get make/model, install location, and online status
- Record in GAIT: commit a refresh candidate list with device names, EoL dates, and warranty status
QBR Lifecycle Report for an MSP Client
- Pull lifecycle posture:
auvik_list_device_lifecycle with tenants=<client> — all devices
- Pull warranty summary:
auvik_list_device_warranty with tenants=<client> — coverage per device
- Identify immediate risk: filter
last_support_status=endOfLife + covered_under_service=false — highest-priority refresh candidates
- Identify upcoming risk: filter
software_maintenance_status=endOfSoftwareMaintenance — devices losing patch support soon
- Record in GAIT: commit QBR lifecycle data with client name and report date
Configuration Backup Audit
- List recent backups:
auvik_list_configurations with tenants=<client>, backup_time_after=<7-days-ago> — verify backups are occurring
- Check running config:
auvik_list_configurations with device=<hostname>, is_running=true — list running-config backup records
- Retrieve backup body:
auvik_list_configurations with config_id=<id> — retrieve full configuration text for a specific backup
- Spot-check after a change window: narrow
backup_time_after and backup_time_before around a maintenance window to confirm configs were captured
- Record in GAIT: commit backup verification results with timestamps
Integration with Other Skills
| Skill |
How They Work Together |
gait-session-tracking |
Mandatory — start a branch before querying, record every turn, close with gait_log |
auvik-inventory |
Enrich lifecycle findings with device make/model, online status, and network location |
auvik-network-alerts |
Recurring alerts on EoL or unwarranted devices signal accelerated refresh priority |
netbox-reconcile |
Compare Auvik lifecycle data against NetBox SoT to update asset records with EoL and warranty fields |
servicenow-change-workflow |
Raise change requests for refresh projects; link lifecycle findings to hardware replacement CRs |
Environment Variables
| Variable |
Required |
Description |
AUVIK_USERNAME |
Yes |
Auvik user email (Basic-auth username) |
AUVIK_API_KEY |
Yes |
Auvik API key (Basic-auth password) |
AUVIK_BASE_URL |
No |
Regional cluster URL; defaults to https://auvikapi.us1.my.auvik.com — swap us1 for your region |
AUVIK_VERIFY_SSL |
No |
Set false to skip TLS verification (not recommended) |
AUVIK_TIMEOUT |
No |
HTTP timeout in seconds (default: 30) |
AUVIK_MAX_PAGES |
No |
Pagination safety cap (default: 50) |
Important Rules
- Read-only — this skill cannot update lifecycle records, warranty data, or trigger configuration backups. All data reflects what Auvik has already collected.
- Refer to devices by name or IP, not by Auvik internal IDs. Pass
device=<hostname-or-IP> and let the resolver do the lookup.
- Scope to a tenant in MSP environments to avoid mixing lifecycle data across clients.
config_id is required to retrieve backup content — auvik_list_configurations without config_id returns metadata only (timestamps, device, backup type); the full configuration text is only returned when a specific config_id is provided.
- Record every session in GAIT — refresh planning decisions, QBR data pulls, and configuration audit results all go to the audit trail.
1---2name: auvik-lifecycle3description: Auvik device end-of-life posture, warranty/service coverage, and configuration backup history for refresh and renewal planning. Use when identifying devices past or approaching end-of-life, auditing warranty and service contract coverage, reviewing configuration backup history, planning hardware refreshes, or preparing QBR lifecycle reports for MSP clients.4license: Apache-2.05---6
7# Auvik Device Lifecycle
8
9Assess the end-of-life posture, warranty and service contract coverage, and configuration backup history of Auvik-managed devices. Supports hardware refresh planning, renewal pipeline management, and QBR lifecycle reporting across MSP tenants.
10
11## MCP Server
12
13- **Server**: `auvik-mcp` (NetClaw MCP, Feature 036)
14- **Command**: `python3 mcp-servers/auvik-mcp/auvik_mcp_server.py` (stdio transport)
15- **Auth**: Basic auth via `AUVIK_USERNAME` + `AUVIK_API_KEY`
16- **Read-only**: GET operations only — no lifecycle record modifications
17
18## Available Tools
19
20| Tool | What It Does |
21|------|--------------|
22| `auvik_list_device_lifecycle` | EoL and last-support posture for managed devices; filter by `sales_availability`, `software_maintenance_status`, `security_software_maintenance_status`, or `last_support_status` |
23| `auvik_list_device_warranty` | Warranty and service contract coverage; filter by `covered_under_warranty` (bool) or `covered_under_service` (bool) |
24| `auvik_list_configurations` | Configuration backup history; `config_id` retrieves the full backup body; filter by device, backup time window, or `is_running` (running vs. startup config) |
25
26## Key Concepts
27
28**Tenants = MSP clients.** All three tools accept an optional `tenants` parameter (name or domain prefix). Omit it to query all visible tenants; provide it to scope to a single client.
29
30**Identifier resolution.** The `device` parameter on all three tools accepts a hostname, IP address, partial name, or Auvik numeric ID. The server resolves names and IPs to internal IDs automatically. Ambiguous matches return `ResolutionCandidate[]`.
31
32**Lifecycle status fields.** `auvik_list_device_lifecycle` surfaces four independent status dimensions:
33- `sales_availability` — whether the device is still sold by the vendor
34- `software_maintenance_status` — whether the OS/firmware receives updates
35- `security_software_maintenance_status` — whether security patches are still released
36- `last_support_status` — whether the vendor still provides any support
37
38**Warranty vs. service.** `auvik_list_device_warranty` distinguishes between manufacturer warranty (`covered_under_warranty`) and service contracts such as SMARTnet or NBD (`covered_under_service`). A device may have one, both, or neither.
39
40**Configuration backups.** `auvik_list_configurations` returns a list of backup records. Retrieve the full configuration text by passing the `config_id` of a specific record. Use `is_running=true` to filter for running-config backups vs. startup-config. Combine `backup_time_after` and `backup_time_before` (ISO-8601) to bound a review window.
41
42**Cursor pagination.** List tools auto-aggregate all pages up to `AUVIK_MAX_PAGES`. Narrow filters (e.g., a specific tenant + device) to manage response size on large inventories.
43
44## Workflow
45
46### Hardware Refresh Planning
47
481. **Start GAIT branch**: `gait_branch` with name like `auvik-lifecycle-review-<client>-2026-06-21`
492. **List all lifecycle data**: `auvik_list_device_lifecycle` with `tenants=<client>` — no status filter to capture full picture
503. **Identify at-risk devices**: re-run with `last_support_status=endOfLife` to isolate unsupported hardware
514. **Check warranty gaps**: `auvik_list_device_warranty` with `covered_under_warranty=false`, `covered_under_service=false` to find completely uncovered devices
525. **Cross-reference inventory**: `auvik-inventory` (`auvik_list_devices`) with `detail_level=detail` to get make/model, install location, and online status
536. **Record in GAIT**: commit a refresh candidate list with device names, EoL dates, and warranty status
54
55### QBR Lifecycle Report for an MSP Client
56
571. **Pull lifecycle posture**: `auvik_list_device_lifecycle` with `tenants=<client>` — all devices
582. **Pull warranty summary**: `auvik_list_device_warranty` with `tenants=<client>` — coverage per device
593. **Identify immediate risk**: filter `last_support_status=endOfLife` + `covered_under_service=false` — highest-priority refresh candidates
604. **Identify upcoming risk**: filter `software_maintenance_status=endOfSoftwareMaintenance` — devices losing patch support soon
615. **Record in GAIT**: commit QBR lifecycle data with client name and report date
62
63### Configuration Backup Audit
64
651. **List recent backups**: `auvik_list_configurations` with `tenants=<client>`, `backup_time_after=<7-days-ago>` — verify backups are occurring
662. **Check running config**: `auvik_list_configurations` with `device=<hostname>`, `is_running=true` — list running-config backup records
673. **Retrieve backup body**: `auvik_list_configurations` with `config_id=<id>` — retrieve full configuration text for a specific backup
684. **Spot-check after a change window**: narrow `backup_time_after` and `backup_time_before` around a maintenance window to confirm configs were captured
695. **Record in GAIT**: commit backup verification results with timestamps
70
71## Integration with Other Skills
72
73| Skill | How They Work Together |
74|-------|------------------------|
75| `gait-session-tracking` | **Mandatory** — start a branch before querying, record every turn, close with `gait_log` |
76| `auvik-inventory` | Enrich lifecycle findings with device make/model, online status, and network location |
77| `auvik-network-alerts` | Recurring alerts on EoL or unwarranted devices signal accelerated refresh priority |
78| `netbox-reconcile` | Compare Auvik lifecycle data against NetBox SoT to update asset records with EoL and warranty fields |
79| `servicenow-change-workflow` | Raise change requests for refresh projects; link lifecycle findings to hardware replacement CRs |
80
81## Environment Variables
82
83| Variable | Required | Description |
84|----------|----------|-------------|
85| `AUVIK_USERNAME` | Yes | Auvik user email (Basic-auth username) |
86| `AUVIK_API_KEY` | Yes | Auvik API key (Basic-auth password) |
87| `AUVIK_BASE_URL` | No | Regional cluster URL; defaults to `https://auvikapi.us1.my.auvik.com` — swap `us1` for your region |
88| `AUVIK_VERIFY_SSL` | No | Set `false` to skip TLS verification (not recommended) |
89| `AUVIK_TIMEOUT` | No | HTTP timeout in seconds (default: `30`) |
90| `AUVIK_MAX_PAGES` | No | Pagination safety cap (default: `50`) |
91
92## Important Rules
93
94- **Read-only** — this skill cannot update lifecycle records, warranty data, or trigger configuration backups. All data reflects what Auvik has already collected.
95- **Refer to devices by name or IP**, not by Auvik internal IDs. Pass `device=<hostname-or-IP>` and let the resolver do the lookup.
96- **Scope to a tenant** in MSP environments to avoid mixing lifecycle data across clients.
97- **`config_id` is required to retrieve backup content** — `auvik_list_configurations` without `config_id` returns metadata only (timestamps, device, backup type); the full configuration text is only returned when a specific `config_id` is provided.
98- **Record every session in GAIT** — refresh planning decisions, QBR data pulls, and configuration audit results all go to the audit trail.