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 operationstesting
Human-in-the-loop escalation via HumanRail — route low-confidence agent decisions, pre-destructive operation approvals, and ambiguous incident tickets to real human engineers. Human answers are verified and returned as structured output. Workers are paid via Lightning Network. Use when the agent is uncertain, when a destructive change needs explicit human sign-off beyond a ServiceNow CR, or when an ambiguous ticket requires human triage before automated handling.
testing
Manage EVE-NG node lifecycle. Use when listing nodes, checking runtime state, creating or deleting nodes, starting or stopping nodes or whole labs, verifying node details, or wiping node NVRAM back to factory defaults.
development
Manage EVE-NG labs and platform inventory. Use when listing labs, checking lab metadata, creating or deleting labs, importing or exporting lab archives, checking EVE-NG health or auth, or verifying available node images before build work.
tools
Execute live CLI commands on running EVE-NG nodes over telnet console. Use when running show commands, making live config changes, verifying protocol state, testing connectivity, checking console readiness, or interacting with IOS, Junos, VPCS, EOS, or NX-OS nodes.