1---2name: itential-automation3description: 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 workflows4license: Apache-2.05---6
7# Itential Automation Platform
8
9## MCP Server
10
11| Field | Value |
12|-------|-------|
13| **Repository** | [itential/itential-mcp](https://github.com/itential/itential-mcp) |
14| **Transport** | stdio (default), SSE, HTTP |
15| **Python** | 3.10+ (supports 3.10, 3.11, 3.12, 3.13) |
16| **Dependencies** | `fastmcp`, `ipsdk>=0.7.0`, `python-toon`, `wsproto` |
17| **Install** | `pip install itential-mcp` |
18| **Entry Point** | `itential-mcp run` |
19| **Auth** | Basic (user/pass), OAuth 2.0, JWT |
20| **Container** | `ghcr.io/itential/itential-mcp:latest` |
21
22## Environment Variables
23
24### Required
25| Variable | Purpose |
26|----------|---------|
27| `ITENTIAL_MCP_PLATFORM_HOST` | IAP hostname or IP address |
28| `ITENTIAL_MCP_PLATFORM_USER` | Username for platform authentication |
29| `ITENTIAL_MCP_PLATFORM_PASSWORD` | Password for platform authentication |
30
31### Optional
32| Variable | Default | Purpose |
33|----------|---------|---------|
34| `ITENTIAL_MCP_PLATFORM_PORT` | `443` | Platform connection port |
35| `ITENTIAL_MCP_PLATFORM_TIMEOUT` | `30` | Request timeout (seconds) |
36| `ITENTIAL_MCP_PLATFORM_DISABLE_TLS` | `false` | Disable TLS to platform |
37| `ITENTIAL_MCP_PLATFORM_DISABLE_VERIFY` | `false` | Skip certificate verification |
38| `ITENTIAL_MCP_SERVER_TRANSPORT` | `stdio` | Transport type (stdio/sse/http) |
39| `ITENTIAL_MCP_SERVER_LOG_LEVEL` | `INFO` | Log verbosity |
40| `ITENTIAL_MCP_SERVER_TOOLS_PATH` | — | Custom tools directory |
41
42---
43
44## Tools by Category
45
46### Platform Health (1 tool)
47
48| Tool | Parameters | Description |
49|------|-----------|-------------|
50| `get_health` | — | Comprehensive platform health: status, system, server, applications, adapters (5 parallel API calls) |
51
52### Configuration Manager — Devices (4 tools)
53
54| Tool | Parameters | Description |
55|------|-----------|-------------|
56| `get_devices` | — | List all devices known to the platform with connection details |
57| `get_device_configuration` | `name` | Fetch the current running configuration from a device |
58| `backup_device_configuration` | `name`, `description?`, `notes?` | Create a config backup with optional metadata; returns backup ID |
59| `apply_device_configuration` | `device`, `config` | Deploy configuration commands to a target device |
60
61### Configuration Manager — Compliance (3 tools)
62
63| Tool | Parameters | Description |
64|------|-----------|-------------|
65| `get_compliance_plans` | — | List all compliance plans (config validation rules for org standards) |
66| `run_compliance_plan` | `name` | Execute a compliance plan against devices; returns pass/fail results |
67| `describe_compliance_report` | `report_id` | Detailed compliance report: rule violations, device status, config analysis |
68
69### Configuration Manager — Device Groups (4 tools)
70
71| Tool | Parameters | Description |
72|------|-----------|-------------|
73| `get_device_groups` | — | List all device groups with member devices |
74| `create_device_group` | `name`, `description?`, `devices?` | Create a new device group for bulk operations |
75| `add_devices_to_group` | `name`, `devices` | Add devices to an existing group |
76| `remove_devices_from_group` | `name`, `devices` | Remove devices from a group |
77
78### Configuration Manager — Golden Config (3 tools)
79
80| Tool | Parameters | Description |
81|------|-----------|-------------|
82| `get_golden_config_trees` | — | List all Golden Configuration trees with versions |
83| `create_golden_config_tree` | `name`, `device_type`, `template?`, `variables?` | Create a new Golden Config tree with Jinja2 template |
84| `add_golden_config_node` | `tree_name`, `name`, `version?`, `path?`, `template?` | Add a hierarchical config node to a tree |
85
86### Configuration Manager — Inventory (5 tools)
87
88| Tool | Parameters | Description |
89|------|-----------|-------------|
90| `get_inventories` | — | List all inventories with node counts |
91| `describe_inventory` | `name` | Inventory details: groups, actions, tags, nodes with attributes |
92| `create_inventory` | `name`, `groups`, `description?`, `devices?` | Create a new inventory with groups and optional devices |
93| `add_nodes_to_inventory` | `inventory_name`, `nodes` | Bulk add nodes with connection attributes and tags |
94| `delete_inventory` | `name` | Permanently remove an inventory |
95
96### Configuration Manager — Templates (1 tool)
97
98| Tool | Parameters | Description |
99|------|-----------|-------------|
100| `render_template` | `template`, `variables?` | Render a Jinja2 template string with variables |
101
102### Operations Manager — Workflows (5 tools)
103
104| Tool | Parameters | Description |
105|------|-----------|-------------|
106| `get_workflows` | — | List all enabled workflow API endpoints with input schemas |
107| `start_workflow` | `route_name`, `data?` | Execute a workflow by route; returns job ID, tasks, status, metrics |
108| `get_jobs` | `name?`, `project?` | List workflow execution instances with status and timing |
109| `describe_job` | `object_id` | Full job details: tasks, status, metrics, timestamps |
110| `expose_workflow` | `name`, `route_name?`, `project?`, `endpoint_name?`, `endpoint_description?`, `endpoint_schema?` | Create an API endpoint trigger to expose a workflow |
111
112### Automation Studio — Command Templates (6 tools)
113
114| Tool | Parameters | Description |
115|------|-----------|-------------|
116| `get_command_templates` | — | List all command templates from global space and projects |
117| `describe_command_template` | `name`, `project?` | Detailed template info including commands and validation rules |
118| `run_command_template` | `name`, `devices`, `project?` | Execute a command template against devices with rule evaluation |
119| `run_command` | `cmd`, `devices` | Execute a single CLI command across multiple devices |
120| `create_command_template` | `name`, `commands`, `project?`, `description?`, `os?`, `pass_rule?`, `ignore_warnings?` | Create a template with commands and validation rules (`<!variable!>` syntax) |
121| `update_command_template` | `name`, `commands`, `project?`, `description?`, `os?`, `pass_rule?`, `ignore_warnings?` | Update an existing command template |
122
123### Automation Studio — Templates (4 tools)
124
125| Tool | Parameters | Description |
126|------|-----------|-------------|
127| `get_templates` | `template_type?` | List all templates, optionally filtered by type (textfsm/jinja2) |
128| `describe_template` | `name`, `project?` | Template details: content, sample data, type, group, command |
129| `create_template` | `name`, `template_type`, `group`, `project?`, `command?`, `template?`, `sample_data?` | Create a new TextFSM or Jinja2 template |
130| `update_template` | `name`, `project?`, `command?`, `template?`, `sample_data?` | Update existing template (partial update supported) |
131
132### Automation Studio — Projects (2 tools)
133
134| Tool | Parameters | Description |
135|------|-----------|-------------|
136| `get_projects` | — | List all Automation Studio projects |
137| `describe_project` | `name` | Project details including component types, folders, references |
138
139### Lifecycle Manager (7 tools)
140
141| Tool | Parameters | Description |
142|------|-----------|-------------|
143| `get_resources` | — | List all resource models with descriptions |
144| `create_resource` | `name`, `schema`, `description?` | Create a resource model with JSON Schema definition |
145| `describe_resource` | `name` | Resource details including lifecycle actions and input schemas |
146| `get_instances` | `resource_name` | List all instances of a resource model |
147| `describe_instance` | `resource_name`, `instance_name` | Instance details: data, last action, state |
148| `run_action` | `resource_name`, `action_name`, `instance_name?`, `instance_description?`, `input_params?` | Execute a lifecycle action; returns job ID and status |
149| `get_action_executions` | `resource_name`, `instance_name` | Execution history: timestamps, status, before/after states |
150
151### Adapters (4 tools)
152
153| Tool | Parameters | Description |
154|------|-----------|-------------|
155| `get_adapters` | — | List all adapters with name, version, state |
156| `start_adapter` | `name`, `timeout?` | Start a stopped adapter; waits for RUNNING state |
157| `stop_adapter` | `name`, `timeout?` | Stop a running adapter; waits for STOPPED state |
158| `restart_adapter` | `name`, `timeout?` | Restart a running adapter (use `start_adapter` for stopped ones) |
159
160### Applications (4 tools)
161
162| Tool | Parameters | Description |
163|------|-----------|-------------|
164| `get_applications` | — | List all applications with name, version, state |
165| `start_application` | `name`, `timeout?` | Start a stopped application |
166| `stop_application` | `name`, `timeout?` | Stop a running application |
167| `restart_application` | `name`, `timeout?` | Restart a running application |
168
169### Gateway Manager (3 tools)
170
171| Tool | Parameters | Description |
172|------|-----------|-------------|
173| `get_services` | — | List all services with name, cluster, type, description |
174| `get_gateways` | — | List connected gateways with status |
175| `run_service` | `name`, `cluster`, `input_params?` | Execute a gateway service; returns stdout, stderr, return code, timing |
176
177### Integrations (3 tools)
178
179| Tool | Parameters | Description |
180|------|-----------|-------------|
181| `get_integrations` | `model?` | List integration instances, optionally filtered by model |
182| `get_integration_models` | — | List all integration models with version info |
183| `create_integration_model` | `model` | Create an integration model from OpenAPI spec |
184
185### Workflow Engine — Metrics (6 tools)
186
187| Tool | Parameters | Description |
188|------|-----------|-------------|
189| `get_job_metrics` | — | Aggregate job metrics across all workflows |
190| `get_job_metrics_for_workflow` | `name` | Job metrics filtered by workflow name |
191| `get_task_metrics` | — | Comprehensive task metrics across all workflows |
192| `get_task_metrics_for_workflow` | `name` | Task metrics filtered by workflow name |
193| `get_task_metrics_for_app` | `name` | Task metrics filtered by application name |
194| `get_task_metrics_for_task` | `name` | Metrics for a specific task across all workflows |
195
196### Dynamic Tool Bindings
197
198The server also supports dynamically registered tools:
199
200- **Endpoint bindings** — Expose IAP workflow triggers as MCP tools via `ITENTIAL_MCP_TOOL_<NAME>_TYPE=endpoint`
201- **Service bindings** — Expose Gateway Manager services as MCP tools via `ITENTIAL_MCP_TOOL_<NAME>_TYPE=service`
202
203---
204
205## Workflows
206
207### 1. Platform Health Check
208```
209get_health → assess status/system/server/applications/adapters health
210→ get_adapters → check for DEAD/STOPPED adapters
211→ get_applications → check for stopped applications
212→ Report overall platform status → GAIT
213```
214
215### 2. Device Configuration Audit
216```
217get_devices → inventory all managed devices
218→ get_device_groups → understand grouping strategy
219→ get_compliance_plans → list org compliance rules
220→ run_compliance_plan(plan_name) → execute against devices
221→ describe_compliance_report(report_id) → review violations
222→ Severity-sort findings → GAIT
223```
224
225### 3. Golden Config Deployment
226```
227get_golden_config_trees → review available configs
228→ get_devices → select target devices
229→ render_template(jinja2_template, variables) → preview config
230→ backup_device_configuration(device) → baseline before change
231→ apply_device_configuration(device, rendered_config) → deploy
232→ get_device_configuration(device) → verify post-change
233→ GAIT
234```
235
236### 4. Workflow Orchestration
237```
238get_workflows → discover available automations
239→ get_projects → review Automation Studio projects
240→ start_workflow(route_name, data) → trigger execution
241→ describe_job(object_id) → monitor progress and tasks
242→ get_job_metrics_for_workflow(name) → performance analysis
243→ GAIT
244```
245
246### 5. Command Template Execution
247```
248get_command_templates → list available templates
249→ describe_command_template(name) → review commands and rules
250→ get_device_groups → select target group
251→ run_command_template(name, devices) → execute with rule evaluation
252→ Review per-device results → GAIT
253```
254
255### 6. Lifecycle Resource Management
256```
257get_resources → discover resource models
258→ describe_resource(name) → review lifecycle actions and schemas
259→ get_instances(resource_name) → list existing instances
260→ run_action(resource, action, instance, params) → execute lifecycle action
261→ get_action_executions(resource, instance) → verify execution history
262→ GAIT
263```
264
265### 7. Integration Model Onboarding
266```
267get_integration_models → review existing integrations
268→ create_integration_model(openapi_spec) → register new model
269→ get_integrations(model) → verify instance created
270→ GAIT
271```
272
273---
274
275## Integration with Other Skills
276
277| Skill | Integration |
278|-------|-------------|
279| **pyats-network** | Use Itential command templates to run structured commands; compare pyATS parsed output with Itential compliance results |
280| **pyats-config-mgmt** | Itential golden config as the desired state; pyATS for pre/post verification; ServiceNow for CR gating |
281| **netbox-reconcile** | Itential inventories reflect NetBox source of truth; compliance plans validate against NetBox-defined intent |
282| **nautobot-sot** | Same as NetBox — cross-reference Itential device inventory with Nautobot IPAM data |
283| **infrahub-sot** | Cross-reference Infrahub schema-driven nodes with Itential device groups and inventories |
284| **servicenow-change-workflow** | Gate all Itential config deployments behind ServiceNow Change Requests |
285| **gait-session-tracking** | Every Itential workflow execution, config push, and compliance run logged in GAIT |
286| **fmc-firewall-ops** | Itential workflows can orchestrate firewall policy changes validated by FMC search |
287| **nso-device-ops** | Itential as the orchestration layer on top of NSO for multi-vendor service deployment |
288| **te-network-monitoring** | Validate network health via ThousandEyes after Itential config deployments |
289| **aws-network-ops** | Itential workflows for hybrid network automation spanning on-prem and AWS |
290| **gcp-compute-ops** | Itential lifecycle management for resources spanning on-prem and GCP |
291
292---
293
294## Tag-Based Tool Filtering
295
296Itential MCP supports tag-based filtering to restrict which tools are exposed:
297
298| Tag | Tools | Use Case |
299|-----|-------|----------|
300| `health` | 1 | Platform monitoring |
301| `configuration_manager` | 15 | Device config, compliance, golden config, templates, inventories |
302| `operations_manager` | 5 | Workflow execution and job management |
303| `automation_studio` | 12 | Command templates, projects, device commands, TextFSM/Jinja2 templates |
304| `lifecycle_manager` | 7 | Resource models, instances, lifecycle actions |
305| `workflow_engine` | 6 | Job and task performance metrics |
306| `adapters` | 4 | Adapter lifecycle management |
307| `applications` | 4 | Application lifecycle management |
308| `gateway_manager` | 3 | Gateway and service operations |
309| `integrations` | 3 | Integration model management |
310
311Use `--include-tags` to restrict to specific categories or `--exclude-tags` to hide experimental tools.
312
313---
314
315## Itential vs Other Orchestration Platforms
316
317| Capability | Itential IAP | Cisco NSO | Ansible |
318|-----------|-------------|-----------|---------|
319| **Focus** | Full lifecycle automation orchestration | Network service orchestration | Config management + ad-hoc tasks |
320| **Device Management** | Inventory, groups, config backup/push | CDB, device sync, NED-based | Inventory, groups, playbooks |
321| **Compliance** | Built-in compliance plans + reports | Custom via templates | Custom via assert/compliance roles |
322| **Golden Config** | Hierarchical tree-based with versioning | Config templates via services | Jinja2 templates in roles |
323| **Workflow Engine** | Visual workflow builder + API triggers | Service deployment plans | Playbooks + AWX/Tower |
324| **Lifecycle Mgmt** | Resource models with action schemas | Service lifecycle via FASTMAP | Roles with tags |
325| **MCP Tools** | 65+ tools across 10 categories | 5 tools (devices + services) | N/A |
326| **Integration** | OpenAPI-based integration models | NED packages | Modules + collections |
327| **Gateway** | Gateway Manager for distributed execution | LSA for distributed NSO | Execution environments |
328
329---
330
331## Guardrails
332
333- **Gate config deployments** — All `apply_device_configuration` calls must be preceded by a ServiceNow Change Request in `Implement` state
334- **Always backup first** — Call `backup_device_configuration` before any `apply_device_configuration`
335- **Verify after deployment** — Call `get_device_configuration` after applying changes to confirm they took effect
336- **Compliance before and after** — Run `run_compliance_plan` pre- and post-change to verify compliance posture
337- **Record in GAIT** — Every workflow execution, config push, compliance run, and template operation must be logged
338- **Adapter health awareness** — Check `get_adapters` for DEAD or STOPPED adapters before attempting device operations
339- **Case-sensitive names** — Workflow names, device names, template names, and plan names are all case-sensitive in the IAP API