workspace/skills/itential-automation/SKILL.md
Itential Automation Platform (IAP) — network automation orchestration, device configuration management, compliance enforcement, workflow execution, golden config, lifecycle management, and gateway services via 65+ MCP tools. Use when automating network changes through Itential, running compliance plans, deploying golden configs, or orchestrating IAP workflows
npx skillsauth add automateyournetwork/netclaw itential-automationInstall 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 | itential/itential-mcp |
| Transport | stdio (default), SSE, HTTP |
| Python | 3.10+ (supports 3.10, 3.11, 3.12, 3.13) |
| Dependencies | fastmcp, ipsdk>=0.7.0, python-toon, wsproto |
| Install | pip install itential-mcp |
| Entry Point | itential-mcp run |
| Auth | Basic (user/pass), OAuth 2.0, JWT |
| Container | ghcr.io/itential/itential-mcp:latest |
| Variable | Purpose |
|----------|---------|
| ITENTIAL_MCP_PLATFORM_HOST | IAP hostname or IP address |
| ITENTIAL_MCP_PLATFORM_USER | Username for platform authentication |
| ITENTIAL_MCP_PLATFORM_PASSWORD | Password for platform authentication |
| Variable | Default | Purpose |
|----------|---------|---------|
| ITENTIAL_MCP_PLATFORM_PORT | 443 | Platform connection port |
| ITENTIAL_MCP_PLATFORM_TIMEOUT | 30 | Request timeout (seconds) |
| ITENTIAL_MCP_PLATFORM_DISABLE_TLS | false | Disable TLS to platform |
| ITENTIAL_MCP_PLATFORM_DISABLE_VERIFY | false | Skip certificate verification |
| ITENTIAL_MCP_SERVER_TRANSPORT | stdio | Transport type (stdio/sse/http) |
| ITENTIAL_MCP_SERVER_LOG_LEVEL | INFO | Log verbosity |
| ITENTIAL_MCP_SERVER_TOOLS_PATH | — | Custom tools directory |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_health | — | Comprehensive platform health: status, system, server, applications, adapters (5 parallel API calls) |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_devices | — | List all devices known to the platform with connection details |
| get_device_configuration | name | Fetch the current running configuration from a device |
| backup_device_configuration | name, description?, notes? | Create a config backup with optional metadata; returns backup ID |
| apply_device_configuration | device, config | Deploy configuration commands to a target device |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_compliance_plans | — | List all compliance plans (config validation rules for org standards) |
| run_compliance_plan | name | Execute a compliance plan against devices; returns pass/fail results |
| describe_compliance_report | report_id | Detailed compliance report: rule violations, device status, config analysis |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_device_groups | — | List all device groups with member devices |
| create_device_group | name, description?, devices? | Create a new device group for bulk operations |
| add_devices_to_group | name, devices | Add devices to an existing group |
| remove_devices_from_group | name, devices | Remove devices from a group |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_golden_config_trees | — | List all Golden Configuration trees with versions |
| create_golden_config_tree | name, device_type, template?, variables? | Create a new Golden Config tree with Jinja2 template |
| add_golden_config_node | tree_name, name, version?, path?, template? | Add a hierarchical config node to a tree |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_inventories | — | List all inventories with node counts |
| describe_inventory | name | Inventory details: groups, actions, tags, nodes with attributes |
| create_inventory | name, groups, description?, devices? | Create a new inventory with groups and optional devices |
| add_nodes_to_inventory | inventory_name, nodes | Bulk add nodes with connection attributes and tags |
| delete_inventory | name | Permanently remove an inventory |
| Tool | Parameters | Description |
|------|-----------|-------------|
| render_template | template, variables? | Render a Jinja2 template string with variables |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_workflows | — | List all enabled workflow API endpoints with input schemas |
| start_workflow | route_name, data? | Execute a workflow by route; returns job ID, tasks, status, metrics |
| get_jobs | name?, project? | List workflow execution instances with status and timing |
| describe_job | object_id | Full job details: tasks, status, metrics, timestamps |
| expose_workflow | name, route_name?, project?, endpoint_name?, endpoint_description?, endpoint_schema? | Create an API endpoint trigger to expose a workflow |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_command_templates | — | List all command templates from global space and projects |
| describe_command_template | name, project? | Detailed template info including commands and validation rules |
| run_command_template | name, devices, project? | Execute a command template against devices with rule evaluation |
| run_command | cmd, devices | Execute a single CLI command across multiple devices |
| create_command_template | name, commands, project?, description?, os?, pass_rule?, ignore_warnings? | Create a template with commands and validation rules (<!variable!> syntax) |
| update_command_template | name, commands, project?, description?, os?, pass_rule?, ignore_warnings? | Update an existing command template |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_templates | template_type? | List all templates, optionally filtered by type (textfsm/jinja2) |
| describe_template | name, project? | Template details: content, sample data, type, group, command |
| create_template | name, template_type, group, project?, command?, template?, sample_data? | Create a new TextFSM or Jinja2 template |
| update_template | name, project?, command?, template?, sample_data? | Update existing template (partial update supported) |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_projects | — | List all Automation Studio projects |
| describe_project | name | Project details including component types, folders, references |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_resources | — | List all resource models with descriptions |
| create_resource | name, schema, description? | Create a resource model with JSON Schema definition |
| describe_resource | name | Resource details including lifecycle actions and input schemas |
| get_instances | resource_name | List all instances of a resource model |
| describe_instance | resource_name, instance_name | Instance details: data, last action, state |
| run_action | resource_name, action_name, instance_name?, instance_description?, input_params? | Execute a lifecycle action; returns job ID and status |
| get_action_executions | resource_name, instance_name | Execution history: timestamps, status, before/after states |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_adapters | — | List all adapters with name, version, state |
| start_adapter | name, timeout? | Start a stopped adapter; waits for RUNNING state |
| stop_adapter | name, timeout? | Stop a running adapter; waits for STOPPED state |
| restart_adapter | name, timeout? | Restart a running adapter (use start_adapter for stopped ones) |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_applications | — | List all applications with name, version, state |
| start_application | name, timeout? | Start a stopped application |
| stop_application | name, timeout? | Stop a running application |
| restart_application | name, timeout? | Restart a running application |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_services | — | List all services with name, cluster, type, description |
| get_gateways | — | List connected gateways with status |
| run_service | name, cluster, input_params? | Execute a gateway service; returns stdout, stderr, return code, timing |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_integrations | model? | List integration instances, optionally filtered by model |
| get_integration_models | — | List all integration models with version info |
| create_integration_model | model | Create an integration model from OpenAPI spec |
| Tool | Parameters | Description |
|------|-----------|-------------|
| get_job_metrics | — | Aggregate job metrics across all workflows |
| get_job_metrics_for_workflow | name | Job metrics filtered by workflow name |
| get_task_metrics | — | Comprehensive task metrics across all workflows |
| get_task_metrics_for_workflow | name | Task metrics filtered by workflow name |
| get_task_metrics_for_app | name | Task metrics filtered by application name |
| get_task_metrics_for_task | name | Metrics for a specific task across all workflows |
The server also supports dynamically registered tools:
ITENTIAL_MCP_TOOL_<NAME>_TYPE=endpointITENTIAL_MCP_TOOL_<NAME>_TYPE=serviceget_health → assess status/system/server/applications/adapters health
→ get_adapters → check for DEAD/STOPPED adapters
→ get_applications → check for stopped applications
→ Report overall platform status → GAIT
get_devices → inventory all managed devices
→ get_device_groups → understand grouping strategy
→ get_compliance_plans → list org compliance rules
→ run_compliance_plan(plan_name) → execute against devices
→ describe_compliance_report(report_id) → review violations
→ Severity-sort findings → GAIT
get_golden_config_trees → review available configs
→ get_devices → select target devices
→ render_template(jinja2_template, variables) → preview config
→ backup_device_configuration(device) → baseline before change
→ apply_device_configuration(device, rendered_config) → deploy
→ get_device_configuration(device) → verify post-change
→ GAIT
get_workflows → discover available automations
→ get_projects → review Automation Studio projects
→ start_workflow(route_name, data) → trigger execution
→ describe_job(object_id) → monitor progress and tasks
→ get_job_metrics_for_workflow(name) → performance analysis
→ GAIT
get_command_templates → list available templates
→ describe_command_template(name) → review commands and rules
→ get_device_groups → select target group
→ run_command_template(name, devices) → execute with rule evaluation
→ Review per-device results → GAIT
get_resources → discover resource models
→ describe_resource(name) → review lifecycle actions and schemas
→ get_instances(resource_name) → list existing instances
→ run_action(resource, action, instance, params) → execute lifecycle action
→ get_action_executions(resource, instance) → verify execution history
→ GAIT
get_integration_models → review existing integrations
→ create_integration_model(openapi_spec) → register new model
→ get_integrations(model) → verify instance created
→ GAIT
| Skill | Integration | |-------|-------------| | pyats-network | Use Itential command templates to run structured commands; compare pyATS parsed output with Itential compliance results | | pyats-config-mgmt | Itential golden config as the desired state; pyATS for pre/post verification; ServiceNow for CR gating | | netbox-reconcile | Itential inventories reflect NetBox source of truth; compliance plans validate against NetBox-defined intent | | nautobot-sot | Same as NetBox — cross-reference Itential device inventory with Nautobot IPAM data | | infrahub-sot | Cross-reference Infrahub schema-driven nodes with Itential device groups and inventories | | servicenow-change-workflow | Gate all Itential config deployments behind ServiceNow Change Requests | | gait-session-tracking | Every Itential workflow execution, config push, and compliance run logged in GAIT | | fmc-firewall-ops | Itential workflows can orchestrate firewall policy changes validated by FMC search | | nso-device-ops | Itential as the orchestration layer on top of NSO for multi-vendor service deployment | | te-network-monitoring | Validate network health via ThousandEyes after Itential config deployments | | aws-network-ops | Itential workflows for hybrid network automation spanning on-prem and AWS | | gcp-compute-ops | Itential lifecycle management for resources spanning on-prem and GCP |
Itential MCP supports tag-based filtering to restrict which tools are exposed:
| Tag | Tools | Use Case |
|-----|-------|----------|
| health | 1 | Platform monitoring |
| configuration_manager | 15 | Device config, compliance, golden config, templates, inventories |
| operations_manager | 5 | Workflow execution and job management |
| automation_studio | 12 | Command templates, projects, device commands, TextFSM/Jinja2 templates |
| lifecycle_manager | 7 | Resource models, instances, lifecycle actions |
| workflow_engine | 6 | Job and task performance metrics |
| adapters | 4 | Adapter lifecycle management |
| applications | 4 | Application lifecycle management |
| gateway_manager | 3 | Gateway and service operations |
| integrations | 3 | Integration model management |
Use --include-tags to restrict to specific categories or --exclude-tags to hide experimental tools.
| Capability | Itential IAP | Cisco NSO | Ansible | |-----------|-------------|-----------|---------| | Focus | Full lifecycle automation orchestration | Network service orchestration | Config management + ad-hoc tasks | | Device Management | Inventory, groups, config backup/push | CDB, device sync, NED-based | Inventory, groups, playbooks | | Compliance | Built-in compliance plans + reports | Custom via templates | Custom via assert/compliance roles | | Golden Config | Hierarchical tree-based with versioning | Config templates via services | Jinja2 templates in roles | | Workflow Engine | Visual workflow builder + API triggers | Service deployment plans | Playbooks + AWX/Tower | | Lifecycle Mgmt | Resource models with action schemas | Service lifecycle via FASTMAP | Roles with tags | | MCP Tools | 65+ tools across 10 categories | 5 tools (devices + services) | N/A | | Integration | OpenAPI-based integration models | NED packages | Modules + collections | | Gateway | Gateway Manager for distributed execution | LSA for distributed NSO | Execution environments |
apply_device_configuration calls must be preceded by a ServiceNow Change Request in Implement statebackup_device_configuration before any apply_device_configurationget_device_configuration after applying changes to confirm they took effectrun_compliance_plan pre- and post-change to verify compliance postureget_adapters for DEAD or STOPPED adapters before attempting device operationstools
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.