workspace/skills/arista-cvp/SKILL.md
Arista CloudVision Portal (CVP) automation via REST API — device inventory, events, connectivity monitoring, tag management (4 tools). Use when managing Arista devices, checking CloudVision events, monitoring network connectivity probes, or tagging devices in CVP.
npx skillsauth add automateyournetwork/netclaw arista-cvpInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Field | Value |
|-------|-------|
| Repository | noredistribution/mcp-cvp-fun |
| Transport | stdio (FastMCP) |
| Python | 3.12+ |
| Protocol | HTTPS REST → CloudVision Resource API |
| Dependencies | fastmcp, httpx, python-dotenv |
| Install | git clone + uv run (dependencies resolved at runtime) |
| Entry Point | uv run --with fastmcp fastmcp run /path/to/mcp_server_rest.py |
| Status | Community demo — not officially supported by Arista |
CloudVision uses service account tokens passed as HTTP cookies:
.env file as CVPTOKENThe token is sent as an access_token cookie with every API request (not a Bearer header).
| Variable | Required | Purpose |
|----------|----------|---------|
| CVP | Yes | CloudVision instance hostname (e.g., www.arista.io or cvp.example.com) |
| CVPTOKEN | Yes | Service account token for API authentication |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_inventory | — | Get inventory of all devices from CloudVision (hostname, model, serial, version, MAC, IP, streaming status) |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_events | — | Get all events from CloudVision (alerts, warnings, informational events with severity, timestamps, device associations) |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_connectivity_monitor | — | Get Connectivity Monitor probe statistics (jitter, latency, packet loss, HTTP response time across all probes) |
| Tool | Parameters | Description |
|------|-----------|-------------|
| create_tag | tag_name, tag_value | Create a device-level tag in CloudVision via workspace workflow (create workspace → create tag → build → submit) |
create_tag Workflow DetailThe create_tag tool follows CloudVision's workspace model — a 5-step process:
/api/resources/workspace/v1/WorkspaceConfig with a UUID-based workspace/api/resources/tag/v2/TagConfig with ELEMENT_TYPE_DEVICE, workspace ID, tag name/valueREQUEST_START_BUILD to validate changesREQUEST_SUBMIT to apply the tag| Method | Endpoint | Tool |
|--------|----------|------|
| GET | /api/resources/inventory/v1/Device/all | get_inventory |
| GET | /api/resources/event/v1/Event/all | get_events |
| GET | /api/resources/connectivitymonitor/v1/ProbeStats/all | get_connectivity_monitor |
| POST | /api/resources/workspace/v1/WorkspaceConfig | create_tag (workspace create/build/submit) |
| POST | /api/resources/tag/v2/TagConfig | create_tag (tag creation) |
Responses use newline-delimited JSON (NDJSON) format, consistent with CloudVision's streaming resource API.
get_inventory → list all Arista devices (hostname, model, serial, version, MAC, IP)
→ Cross-reference with NetBox/Nautobot → flag discrepancies
→ GAIT
get_events → retrieve all CloudVision events
→ Filter by severity (critical, warning, info)
→ Correlate events with device inventory
→ Severity-sort findings → GAIT
get_inventory → identify all managed devices
→ get_events → check for active alarms and warnings
→ get_connectivity_monitor → analyze jitter, latency, packet loss
→ Correlate connectivity issues with events → severity-sort → GAIT
ServiceNow CR must be in Implement state
→ get_inventory → verify target devices exist
→ create_tag(tag_name, tag_value) → apply device-level tag via workspace workflow
→ get_inventory → verify tag applied
→ GAIT
get_connectivity_monitor → capture current probe statistics
→ Record jitter, latency, packet loss baselines per probe
→ Compare against thresholds → flag degradation
→ GAIT
| Skill | Integration |
|-------|-------------|
| pyats-network | CVP MCP for Arista fleet visibility, pyATS MCP for Cisco devices — unified multi-vendor monitoring |
| junos-network | CVP MCP for Arista, JunOS MCP for Juniper — multi-vendor device inventory and health |
| netbox-reconcile | Cross-reference CVP device inventory (model, serial, version) against NetBox source of truth |
| nautobot-sot | Same as NetBox — validate Arista device IPAM data in Nautobot |
| infrahub-sot | Cross-reference Infrahub node data with Arista device inventory from CVP |
| servicenow-change-workflow | Gate all create_tag operations behind ServiceNow Change Requests |
| gait-session-tracking | Every CVP inventory query, event pull, and tag creation logged in GAIT |
| te-network-monitoring | Correlate ThousandEyes path data with CVP connectivity monitor probes |
| nvd-cve | Scan EOS versions from get_inventory against NVD vulnerability database |
| markmap-viz | Generate topology mind maps from CVP device inventory data |
| Capability | CVP MCP | pyATS MCP | JunOS MCP |
|-----------|---------|-----------|-----------|
| Vendor | Arista (via CVP) | Cisco (IOS-XE, NX-OS, IOS-XR) | Juniper |
| Protocol | HTTPS REST → CVP Resource API | SSH + Genie parsers | NETCONF → PyEZ |
| Device Inventory | get_inventory (fleet-wide) | pyats_learn("platform") per device | gather_device_facts per device |
| Event Monitoring | get_events (fleet-wide) | Per-device show commands | Per-device show commands |
| Connectivity Metrics | get_connectivity_monitor (probes) | Per-device show commands | Per-device show commands |
| Config Push | Via CVP Change Control (not in MCP) | pyats_configure_device | load_and_commit_config |
| Tag/Label Mgmt | create_tag (workspace workflow) | N/A | N/A |
| Batch Operations | All tools are fleet-wide by default | pyats_pcall (parallel pCall) | execute_junos_command_batch |
| MCP Tools | 4 | 8 | 10 |
get_inventory first — verify CloudVision is reachable and devices are streaming before deeper queriesget_events to identify active issues before any tag operationscreate_tag calls must have a ServiceNow CR in Implement stateget_connectivity_monitor to establish baselines before and after network changestools
Zoom meeting intelligence — correlates a live or referenced Zoom meeting discussion against NetClaw's historical meeting record (via the official Zoom Meetings MCP) and today's actual network state. Use when someone in a Zoom meeting references a past discussion or incident ('didn't we have this issue before?'), or asks to search prior meetings for a topic. Does not itself recognize live in-meeting questions — that happens automatically inside zoom-rtms-mcp's own extractor (spec 118) before this skill is ever invoked.
tools
Manage Lantronix out-of-band (OOB) infrastructure via Percepxion central management platform: device inventory, serial port inspection via SLC CLI, firmware compliance, config management, security auditing, and closed-loop incident remediation. Use during outages, maintenance windows, compliance cycles, and AI-assisted automation workflows.
tools
Federate your NetClaw with other NetClaw operators over the BGP mesh — exchange capability inventories and ask your claw what a peer can do. (US1; remote invocation and chat land in later phases.)
tools
Track token consumption, enforce session budgets, and display cost for every NetClaw interaction.