Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GNS3_TOKENNoPre-issued bearer token (skips login)
GNS3_BASE_URLNoController URL (no /v3)http://localhost:3080
GNS3_PASSWORDNoLogin password
GNS3_USERNAMENoLogin username
GNS3_HTTP_HOSTNoHTTP bind host127.0.0.1
GNS3_HTTP_PORTNoHTTP bind port8080
GNS3_READ_ONLYNoDisable all mutating toolsfalse
GNS3_TRANSPORTNoTransport: stdio or httpstdio
GNS3_VERIFY_TLSNoVerify TLS for httpstrue
GNS3_CONSOLE_TIMEOUTNoConsole read timeout (s)15
GNS3_DEFAULT_PROJECTNoProject id used when a tool omits project_id

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tasks
{
  "list": {},
  "cancel": {},
  "requests": {
    "tools": {
      "call": {}
    },
    "prompts": {
      "get": {}
    },
    "resources": {
      "read": {}
    }
  }
}
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
gns3_versionA

Return the GNS3 controller version and whether it runs in local mode.

gns3_statisticsA

Return controller-wide statistics (counts of projects, computes, etc.).

iou_license_getA

Return the configured Cisco IOU license (if any).

iou_license_setB

Set the Cisco IOU license. iourc_content is the raw iourc file text.

controller_reloadA

Reload the GNS3 controller. Requires confirm=true.

controller_shutdownA

Shut down the GNS3 controller process. Requires confirm=true. Destructive.

projects_listB

List all projects on the controller (id, name, status).

project_getC

Get full details for a project.

project_statsB

Get node/link/drawing/snapshot counts for a project.

project_lockedC

Return whether the project is currently locked.

project_createB

Create a new project. Optionally pin a specific project_id (UUID).

project_updateC

Update project attributes (e.g. {"name": "...", "auto_start": true}).

project_deleteA

Delete a project permanently. Requires confirm=true. Destructive.

project_openB

Open a closed project so its nodes can run.

project_closeA

Close an open project (stops nodes, frees resources).

project_loadB

Load a project from a .gns3 file path on the controller host.

project_duplicateC

Duplicate a project under a new name.

project_lockC

Lock a project to prevent topology edits.

project_unlockD

Unlock a project.

project_exportC

Export a project to a local .gns3project archive at dest_path.

project_importC

Import a project from a local .gns3project archive.

project_file_readC

Read a text file from inside the project directory.

project_file_writeC

Write a text file inside the project directory.

nodes_listC

List nodes in a project (id, name, type, status, console).

node_getC

Get full details for a single node.

node_linksC

List the links attached to a node.

node_idlepc_proposalsC

Get Dynamips idle-PC proposals for a node.

node_createA

Create a node directly (node_type e.g. vpcs, qemu, docker, dynamips, ethernet_switch).

Prefer node_create_from_template when a suitable template exists.

node_create_from_templateB

Instantiate a node from a template at canvas position (x, y).

node_updateC

Update node attributes (e.g. {"name": "...", "properties": {...}}).

node_deleteC

Delete a node from the project.

node_duplicateB

Duplicate a node, offset by (dx, dy) on the canvas.

node_startD

Start a node.

node_stopC

Stop a node.

node_suspendD

Suspend a node.

node_reloadC

Reload (restart) a node.

node_isolateB

Isolate a node: suspend all its links (cut traffic without deleting links).

node_unisolateB

Re-enable all links on a previously isolated node.

node_console_resetC

Reset the console server connection for a node.

nodes_start_allC

Start every node in the project.

nodes_stop_allC

Stop every node in the project.

nodes_suspend_allC

Suspend every node in the project.

nodes_reload_allC

Reload every node in the project.

node_idlepc_autoC

Auto-compute a Dynamips idle-PC value for a node.

node_file_readC

Read a text file from inside a node's working directory.

node_file_writeB

Write a text file into a node's working directory (e.g. startup-config).

links_listB

List links in a project (id, endpoints, capture state, filters).

link_getC

Get full details for a link.

link_available_filtersB

List packet filters available on a link (delay, drop, corrupt, etc.).

link_createA

Create a link between two node ports.

Use a node's ports (from node_get/nodes_list) to find adapter_number/port_number.

link_updateC

Update a link: set {"suspend": true} or {"filters": {"delay": [50]}} etc.

link_deleteC

Delete a link.

link_resetC

Reset a link (reconnect both ends).

drawings_listC

List drawings (SVG annotations) in a project.

drawing_createB

Create a drawing from an SVG string at canvas position (x, y).

drawing_updateB

Update a drawing (svg/x/y/z/rotation).

drawing_deleteC

Delete a drawing.

snapshots_listC

List snapshots of a project.

snapshot_createC

Create a snapshot of the current project state.

snapshot_restoreC

Restore the project to a snapshot. The current state is overwritten.

snapshot_deleteC

Delete a snapshot.

templates_listC

List device templates (id, name, type, category).

template_getB

Get full details for a template (all properties).

template_createC

Create a template. template must include name and template_type plus props.

template_updateC

Update a template's attributes.

template_deleteC

Delete a template.

template_duplicateC

Duplicate a template.

computes_listB

List compute servers (id, name, host, connected state, load).

compute_getC

Get full details for a compute server.

compute_emulator_queryB

Query an emulator on a compute, e.g. emulator='docker' action='images', emulator='virtualbox' action='vms', emulator='vmware' action='vms'.

compute_createB

Register a compute server. compute needs protocol/host/port/name (+ auth).

compute_updateC

Update a compute server's connection settings.

compute_deleteC

Unregister a compute server.

images_listB

List disk images known to the controller (qemu/ios/iou/docker).

image_getA

Get metadata for an image by its path.

image_uploadC

Upload a local image file to the controller under image_path.

image_installC

Install/register images so templates can use them (optionally one path).

image_deleteC

Delete an image by path.

images_pruneA

Delete all images not used by any template. Requires confirm=true.

appliances_listB

List appliances from the GNS3 catalog. Set update=true to refresh from registry.

appliance_getA

Get full details for an appliance (versions, images required).

appliance_installC

Install an appliance as a template (optionally a specific version).

pools_listC

List resource pools.

pool_getC

Get a resource pool.

pool_resourcesC

List the resources contained in a pool.

pool_createC

Create a resource pool.

pool_updateC

Update a resource pool (e.g. rename).

pool_deleteC

Delete a resource pool.

pool_resource_addC

Add a resource (project/template/compute id) to a pool.

pool_resource_removeC

Remove a resource from a pool.

whoamiA

Return the currently authenticated user.

users_listC

List user accounts.

user_getC

Get a user account.

user_groupsC

List the groups a user belongs to.

groups_listC

List user groups.

group_membersC

List members of a user group.

roles_listC

List roles.

role_privilegesC

List the privileges granted to a role.

privileges_listC

List all assignable privileges in the system.

acl_listC

List Access Control Entries (ACEs) in the ACL.

Prompts

Interactive templates invoked by user choice

NameDescription
build_labGuide building a GNS3 lab topology from a natural-language description.
troubleshoot_nodeGuide troubleshooting a misbehaving node.
snapshot_before_changeRemind to snapshot before a risky change and how to roll back.

Resources

Contextual data attached and managed by the client

NameDescription
projects_resourceAll projects on the controller.
templates_resourceAll device templates.
computes_resourceAll compute servers.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Olaw2jr/gns3-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server