GNS3 Network Simulator MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GNS3_PASSWORD | No | Password for GNS3 server authentication | |
| GNS3_USERNAME | No | Username for GNS3 server authentication | |
| GNS3_MCP_DEBUG | No | Enable debug logging mode | |
| GNS3_SERVER_URL | No | The URL of the GNS3 server | http://localhost:3080 |
| GNS3_VERIFY_SSL | No | Whether to verify SSL certificates for GNS3 server connections | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gns3_get_server_infoB | Get GNS3 server version and information. Returns server version, supported features, and system information. |
| gns3_list_computesC | List all available compute servers (local, VMs, remote). Shows compute ID, name, protocol, host, port, and status. |
| gns3_list_projectsC | List all projects on the GNS3 server with detailed status. Shows project name, ID, node/link counts, and status. |
| gns3_create_projectB | Create a new GNS3 project. Args: name: Project name auto_close: Automatically close when server stops auto_open: Automatically open when server starts auto_start: Automatically start all nodes when opened path: Custom path for project files |
| gns3_get_projectC | Get detailed information about a specific project. Returns complete project configuration and statistics. |
| gns3_update_projectC | Update project settings. Only specified parameters will be updated. |
| gns3_open_projectC | Open an existing GNS3 project for editing. |
| gns3_close_projectC | Close an open project. All nodes will be stopped. |
| gns3_delete_projectA | Permanently delete a project and all its files. WARNING: This action cannot be undone! |
| gns3_duplicate_projectB | Duplicate an existing project with a new name. Creates an exact copy of the project including all nodes and configurations. |
| gns3_list_nodesB | List all nodes (devices) in a project. Shows node name, type, status, console port, and position. |
| gns3_add_nodeB | Add a network device/node to a project using a template. Args: project_id: ID of the project node_name: Name for the new node template_id: Template ID (use gns3_list_templates to get available templates) x, y: Position coordinates on the canvas compute_id: Compute server ID (default: "local") |
| gns3_get_nodeC | Get detailed information about a specific node. Returns complete node configuration including ports and properties. |
| gns3_update_nodeB | Update node settings and properties. Args: name: New node name x, y: New position coordinates properties: Device-specific properties (RAM, CPU, interfaces, etc.) |
| gns3_delete_nodeC | Delete a node from the project. All links connected to this node will also be deleted. |
| gns3_start_nodeC | Start a specific node. |
| gns3_stop_nodeC | Stop a specific node. |
| gns3_suspend_nodeB | Suspend a node (pause execution, save state). |
| gns3_reload_nodeC | Reload a node (restart without stopping). |
| gns3_duplicate_nodeC | Duplicate a node with the same configuration. The duplicate will be placed at the specified offset from the original. |
| gns3_start_all_nodesC | Start all nodes in a project. |
| gns3_stop_all_nodesC | Stop all nodes in a project. |
| gns3_list_linksC | List all links (connections) in a project. Shows link endpoints, ports, and status. |
| gns3_add_linkC | Create a link between two nodes. Args: node_a_id, node_b_id: Node IDs to connect adapter_a, port_a: Adapter and port number on node A adapter_b, port_b: Adapter and port number on node B |
| gns3_delete_linkC | Delete a link between nodes. |
| gns3_get_topologyC | Get complete network topology for a project. Returns all nodes, links, and project information in one call. |
| gns3_send_console_commandsB | Send commands to a node's console via Telnet. Args: commands: List of commands to execute wait_for_boot: Wait for device to boot before sending commands boot_timeout: Maximum time to wait for boot (seconds) enter_config_mode: Automatically enter config mode (Cisco) save_config: Save configuration after commands (Cisco) enable_password: Enable password if required |
| gns3_get_node_configB | Get device configuration via console. Args: config_type: "running" or "startup" (Cisco-style devices) |
| gns3_apply_config_templateA | Apply a pre-built configuration template to a device. Supported templates:
Args: template_name: Name of configuration template template_params: Parameters for the template (varies by template) save_config: Save configuration after applying |
| gns3_list_templatesC | List all available device templates. Templates are used to create new nodes quickly. |
| gns3_list_appliancesC | List all available appliances. Appliances are pre-configured device definitions that can be installed. |
| gns3_list_snapshotsC | List all snapshots for a project. |
| gns3_create_snapshotC | Create a snapshot (backup) of a project. Captures current state of all nodes and configuration. |
| gns3_restore_snapshotA | Restore a project from a snapshot. WARNING: Current project state will be lost! |
| gns3_delete_snapshotC | Delete a snapshot permanently. |
| gns3_start_captureC | Start packet capture on a link. Captured packets can be analyzed with Wireshark. Args: capture_file_name: Name for the capture file (without .pcap extension) data_link_type: Data link layer type (default: Ethernet) |
| gns3_stop_captureC | Stop packet capture on a link. |
| gns3_add_text_annotationC | Add text annotation to the topology. Useful for documenting networks and adding labels. |
| gns3_add_shapeC | Add a shape (rectangle or ellipse) to the topology. Args: shape_type: "rectangle" or "ellipse" color: Border color (hex format) fill_color: Fill color (hex format, optional) |
| gns3_get_idle_pc_valuesB | Get idle-pc values for Dynamips routers to reduce CPU usage. Only works with Dynamips/IOS routers. Args: auto_compute: Automatically compute best idle-pc value |
| gns3_bulk_configure_nodesC | Configure multiple nodes in one operation. Args: configurations: List of dicts with keys: - node_id: Node to configure - commands: List of commands to send - save_config: Whether to save (optional, default False) |
| gns3_validate_topologyC | Validate network topology for common issues. Checks for disconnected nodes, missing links, and configuration problems. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 42 tools
Most tools have distinct purposes, but some overlap exists. For example, gns3_send_console_commands and gns3_apply_config_template both configure devices, potentially causing confusion. However, descriptions clarify that the former sends raw commands while the latter uses templates, aiding disambiguation.
All tools follow a consistent gns3_verb_noun naming pattern, such as gns3_add_link, gns3_list_nodes, and gns3_start_capture. This uniformity makes the tool set predictable and easy to navigate, with no deviations in style.
With 42 tools, the count is borderline high for a network simulator server. While it covers many operations, it may feel heavy and could overwhelm agents, though the domain complexity might justify some of this breadth.
The tool set provides comprehensive coverage for GNS3 network simulation, including project management (create, open, close, delete), node operations (add, start, stop, configure), topology management (links, shapes, annotations), and advanced features like snapshots and packet capture. No obvious gaps are present.