GNS3 Node Operations
Manage network device nodes in GNS3 projects. Add devices from templates, control power state, and access consoles for configuration and troubleshooting.
When to Use
- Adding network devices (routers, switches, firewalls) to a lab
- Starting or stopping individual nodes
- Reloading nodes after configuration changes
- Suspending nodes to save state
- Starting or stopping all nodes in a project
- Getting console access information for device configuration
- Isolating nodes for testing without deleting links
MCP Server
- Command:
python3 -u mcp-servers/gns3-mcp-server/gns3_mcp_server.py (stdio transport)
- Requires:
GNS3_URL, GNS3_USER, GNS3_PASSWORD environment variables
Available Tools
| Tool |
Parameters |
What It Does |
gns3_list_nodes |
project_id |
List all nodes in a project with status |
gns3_create_node |
project_id, template, name?, x?, y?, compute_id? |
Create node from template |
gns3_start_node |
project_id, node_id |
Start a node (power on) |
gns3_stop_node |
project_id, node_id |
Stop a node (power off) |
gns3_suspend_node |
project_id, node_id |
Suspend a node (save state) |
gns3_reload_node |
project_id, node_id |
Reload a node (restart) |
gns3_bulk_node_action |
project_id, action |
Apply action to all nodes (start/stop/suspend/reload) |
gns3_get_node_console |
project_id, node_id |
Get console connection info |
Utility Tools
| Tool |
Parameters |
What It Does |
gns3_list_templates |
None |
List available node templates on the server |
gns3_list_computes |
None |
List available compute servers |
Workflow Examples
Build a Lab Topology
# List available templates
"List GNS3 templates"
# Add devices to the lab
"Add a Cisco IOSv router to routing-test"
"Add an Arista vEOS switch to routing-test"
"Add a VPCS host to routing-test"
Control Node Power State
# Start individual nodes
"Start router1 in routing-test"
# Start all nodes at once
"Start all nodes in routing-test"
# Stop when done
"Stop all nodes in routing-test"
Console Access
# Get console connection info
"Show console info for router1 in routing-test"
# Returns: telnet 192.168.1.100 5000
Reload After Config Changes
# Reload a router after making changes
"Reload router1 in routing-test"
Template Fuzzy Matching
The gns3_create_node tool supports fuzzy matching for template names:
- "Cisco IOSv" matches "Cisco IOSv 15.9(3)M2"
- "vEOS" matches "Arista vEOS 4.28.0F"
- "VPCS" matches "VPCS" exactly
Integration with Other Skills
- gns3-project-lifecycle: Create a project first
- gns3-link-management: Connect nodes after creation
- gns3-packet-capture: Capture traffic on links between nodes
Error Handling
| Error Code |
Meaning |
Resolution |
| GNS3_NOT_FOUND |
Node or project doesn't exist |
Check name/ID |
| GNS3_CONFLICT |
Node already running/stopped |
Check current state first |
| GNS3_VALIDATION |
Invalid template name |
Use gns3_list_templates to find valid names |
Notes
- Nodes can be referenced by name or UUID
- Template matching is case-insensitive
- Bulk actions affect all nodes in the project
- Console info varies by node type (telnet, VNC, HTTP)
- All operations logged to GAIT audit trail
1---
2name: gns3-node-operations
3description: "Manage GNS3 nodes - add from templates, start/stop/suspend/reload, console access"
4license: Apache-2.0
5user-invocable: true
6metadata:
7 openclaw:
8 requires:
9 bins: ["python3"]
10 env: ["GNS3_URL", "GNS3_USER", "GNS3_PASSWORD"]
11---
12
13# GNS3 Node Operations
14
15Manage network device nodes in GNS3 projects. Add devices from templates, control power state, and access consoles for configuration and troubleshooting.
16
17## When to Use
18
19- Adding network devices (routers, switches, firewalls) to a lab
20- Starting or stopping individual nodes
21- Reloading nodes after configuration changes
22- Suspending nodes to save state
23- Starting or stopping all nodes in a project
24- Getting console access information for device configuration
25- Isolating nodes for testing without deleting links
26
27## MCP Server
28
29- **Command**: `python3 -u mcp-servers/gns3-mcp-server/gns3_mcp_server.py` (stdio transport)
30- **Requires**: `GNS3_URL`, `GNS3_USER`, `GNS3_PASSWORD` environment variables
31
32## Available Tools
33
34| Tool | Parameters | What It Does |
35|------|------------|--------------|
36| `gns3_list_nodes` | project_id | List all nodes in a project with status |
37| `gns3_create_node` | project_id, template, name?, x?, y?, compute_id? | Create node from template |
38| `gns3_start_node` | project_id, node_id | Start a node (power on) |
39| `gns3_stop_node` | project_id, node_id | Stop a node (power off) |
40| `gns3_suspend_node` | project_id, node_id | Suspend a node (save state) |
41| `gns3_reload_node` | project_id, node_id | Reload a node (restart) |
42| `gns3_bulk_node_action` | project_id, action | Apply action to all nodes (start/stop/suspend/reload) |
43| `gns3_get_node_console` | project_id, node_id | Get console connection info |
44
45## Utility Tools
46
47| Tool | Parameters | What It Does |
48|------|------------|--------------|
49| `gns3_list_templates` | None | List available node templates on the server |
50| `gns3_list_computes` | None | List available compute servers |
51
52## Workflow Examples
53
54### Build a Lab Topology
55
56```bash
57# List available templates
58"List GNS3 templates"
59
60# Add devices to the lab
61"Add a Cisco IOSv router to routing-test"
62"Add an Arista vEOS switch to routing-test"
63"Add a VPCS host to routing-test"
64```
65
66### Control Node Power State
67
68```bash
69# Start individual nodes
70"Start router1 in routing-test"
71
72# Start all nodes at once
73"Start all nodes in routing-test"
74
75# Stop when done
76"Stop all nodes in routing-test"
77```
78
79### Console Access
80
81```bash
82# Get console connection info
83"Show console info for router1 in routing-test"
84# Returns: telnet 192.168.1.100 5000
85```
86
87### Reload After Config Changes
88
89```bash
90# Reload a router after making changes
91"Reload router1 in routing-test"
92```
93
94## Template Fuzzy Matching
95
96The `gns3_create_node` tool supports fuzzy matching for template names:
97
98- "Cisco IOSv" matches "Cisco IOSv 15.9(3)M2"
99- "vEOS" matches "Arista vEOS 4.28.0F"
100- "VPCS" matches "VPCS" exactly
101
102## Integration with Other Skills
103
104- **gns3-project-lifecycle**: Create a project first
105- **gns3-link-management**: Connect nodes after creation
106- **gns3-packet-capture**: Capture traffic on links between nodes
107
108## Error Handling
109
110| Error Code | Meaning | Resolution |
111|------------|---------|------------|
112| GNS3_NOT_FOUND | Node or project doesn't exist | Check name/ID |
113| GNS3_CONFLICT | Node already running/stopped | Check current state first |
114| GNS3_VALIDATION | Invalid template name | Use gns3_list_templates to find valid names |
115
116## Notes
117
118- Nodes can be referenced by name or UUID
119- Template matching is case-insensitive
120- Bulk actions affect all nodes in the project
121- Console info varies by node type (telnet, VNC, HTTP)
122- All operations logged to GAIT audit trail