Skip to main content
Glama
den-indance

NetMap — Network Diagram MCP

by den-indance

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NETMAP_MCP_PORTNoLocal WebSocket port the bridge listens on. Must match the URL configured in NetMap's Settings → Integrations → AI Agent (MCP).47821

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
map_get_stateA

Return the current map state: all nodes, manual connections, stickies and notes. NOTE: only manual connections are included — use map_get_all_connections to also get auto-generated connections (DNS→server, project→server, service→node).

map_add_nodeB

Add a new node to the map. Returns the new node id.

map_update_nodeA

Update fields of an existing node by id.

FIELD SCHEMA BY NODE TYPE All types: name, ip, x, y, w, h, notes ips: [{address, label}] — extra IP addresses

server / pc / nas / ap / camera / printer / router / switch / firewall / other: ports: [{port, protocol("tcp"|"udp"|"icmp"), service, url, bindIp}] dockerServices: [{name, image, hostPort, containerPort, protocol("tcp"|"udp"), url}]

project: parentServer — id of the parent server node (creates auto-connection) repoUrl — Git/GitLab URL deployPath — deployment directory cicdUrl — CI/CD pipeline URL dockerServices (same as server)

domain (DNS Zone): ip — registrar name (e.g. "Cloudflare") registrarUrl — registrar control panel URL domains: [{name, record("A"|"AAAA"|"CNAME"|"MX"|"TXT"|"NS"|"SRV"), target, url}] target IP in 'target' triggers auto-connection to matching server node

service (External Service): provider — provider name (e.g. "Supabase", "Vercel") dashboardUrl — link to service dashboard serviceConns: [{toId, label}] — links to other nodes (creates auto-connections) servedDomains: [string]

map_delete_nodeA

Delete a node and all its connections.

map_add_connectionA

Add a manual connection between two nodes. Returns the new connection id.

map_delete_connectionB

Delete a connection by id.

map_add_stickyA

Add a sticky note to the map. Returns the new sticky id.

map_move_nodeA

Move a node to new canvas coordinates without changing any other fields.

map_move_stickyA

Move a sticky note to new canvas coordinates without changing its text or color.

map_clearA

Remove all nodes, connections and stickies from the current sheet.

map_arrangeB

Auto-arrange all nodes in a grid or circle layout.

map_update_connectionA

Update label or color of an existing connection.

map_update_stickyC

Update text, color or size of a sticky note.

map_delete_stickyA

Delete a sticky note by id.

map_list_sheetsA

List all sheets with their id, name, createdAt, updatedAt and which is active.

map_get_sheet_dataA

Return nodes/connections/stickies/notes for a specific sheet (defaults to active sheet).

map_create_sheetA

Create a new empty sheet and switch to it. Returns new sheet id.

map_switch_sheetA

Switch the active sheet. Saves current sheet state first.

map_rename_sheetB

Rename a sheet.

map_delete_sheetA

Delete a sheet. Cannot delete the last remaining sheet.

map_set_zoomA

Set canvas zoom level (0.1–3.0).

map_set_canvas_offsetA

Pan canvas to an absolute pixel offset.

map_zoom_to_fitA

Auto-fit all nodes into the viewport by adjusting zoom and pan.

map_get_notesB

Return the sheet-level notes text.

map_set_notesA

Set the sheet-level notes text.

map_lock_sheetA

Lock or unlock a sheet. A locked sheet rejects all MCP mutations and disables manual editing in the UI. Pass locked: false to unlock.

map_get_settingsA

Return current app settings (sshMode, dblClickAction, perfMode, showGrid, showZoomSlider).

map_update_settingsB

Update one or more app settings.

map_get_all_connectionsA

Return all connections including auto-generated ones (DNS→server, project→server, service→node). Auto connections have auto:true flag. Use this instead of map_get_state.connections when you need the full topology picture.

map_get_viewA

Return current canvas zoom level and pan offset.

map_find_nodeA

Search nodes by name, IP, type, or free-text query. Returns id, name, type, ip, x, y for each match. Use this to locate a node before updating it.

map_searchA

Full-text search across nodes (name/ip/notes), stickies, connection labels, and ports (port-number/service). Returns categorized hits with a total count. Use map_find_node for structured node-only filtering.

map_import_nmapA

Parse nmap scan output (XML from nmap -oX) and create nodes with their open ports. Auto-infers node type from OS fingerprint + port profile (router/switch/firewall/server/printer/etc.). Provide either raw xml OR pre-parsed hosts[]hosts takes priority when both are given. Nodes are auto-arranged in a grid. Returns {count, ids}.

map_suggest_layoutA

Smart auto-layout: force-directed (organic, deterministic with seed), cluster-by-type (horizontal lanes per node type), or cluster-by-connection (BFS components → separate zones). Different from map_arrange (naive grid/circle). Mutates node positions in-place.

map_import_csvA

Import nodes from CSV. Auto-detects columns from the header row (name/ip/type/ports/notes — case-insensitive, aliases like hostname/description/host_ip accepted). Ports field accepts 'port/protocol,port/protocol' (e.g. '22/tcp,80/tcp') or bare port numbers (default tcp). Nodes laid out in a 6-column grid. Returns {count, ids}.

map_get_nodes_by_typeA

Return all nodes of a given type with FULL field data (ports, dockerServices, domains, ips, notes, parentServer, etc.). For stripped projection or multi-criteria filtering use map_find_node instead.

map_import_sheetA

Replace active sheet content with provided JSON data. Useful for loading a prepared topology in one call.

map_export_sheetA

Export sheet data as JSON including auto-connections. Defaults to active sheet.

map_exportA

Export current or specified sheet as JSON / PNG / PDF. PNG and PDF return base64-encoded blobs with mimeType — the client decodes and saves to a file. Server raises the response timeout to 30s for PNG/PDF since large maps can take several seconds to render.

map_duplicate_nodeA

Clone a node with all its properties (ports, services, domains, etc.). Returns new node id.

map_get_selectionA

Return currently selected node/sticky ids and connection id. Result shape: { nodeIds: string[], nodeId: string|null (= nodeIds[0], legacy single-id), connId: string|null }.

map_selectA

Programmatically select node(s)/sticky(s) and/or a connection. Pass node_ids (array) for multi-select; node_id (string) is legacy single-select. Empty array or null deselects. Connection selection remains single (multi-select connections out of scope v1).

map_bulk_add_nodesA

Add multiple nodes in a single call. Each node accepts the same fields as map_add_node plus all type-specific fields (ports, dockerServices, domains, parentServer, etc.). Returns array of created ids.

map_bulk_add_connectionsA

Add multiple connections in a single call. Returns array of created ids.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/den-indance/network-diagram-mcp'

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