Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/automateyournetwork-arista-cvp/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 18% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 51% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 126% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 32% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 16% | 0% |
| 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
→ GAITget_events → retrieve all CloudVision events
→ Filter by severity (critical, warning, info)
→ Correlate events with device inventory
→ Severity-sort findings → GAITget_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 → GAITServiceNow 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
→ GAITget_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 changesOther measured skills in the registry, with their headline benchmark lift.