Skip to main content
Glama
cisco-open

Network Sketcher

Official
by cisco-open

Network Sketcher

Network Sketcher is an AI-native network design and diagramming tool. It generates L1/L2/L3 topology diagrams, device tables, and AI-ready context files from structured network data and natural-language workflows.

For MCP users, Network Sketcher Local MCP lets LLM clients such as Cursor and Claude Code design Cisco-style networks directly through Model Context Protocol tool calls. It runs locally over stdio, keeps master files on your machine, and produces SVG / PowerPoint diagrams plus HTML device tables.

If Network Sketcher helps your workflow, please consider starring the repository.

Common use cases:

  • Build a 5-site WAN or campus LAN design from an AI conversation

  • Generate L1 physical, L2 VLAN/broadcast-domain, and L3 IP topology diagrams

  • Export a combined L1/L2/L3 HTML viewer and an interactive device table

  • Create an AI Context file so another LLM can review or extend the network design

  • Import from live inventory: Use Network Sketcher Cisco Extension converters to turn ACI, Catalyst Center, Catalyst SD-WAN, Meraki, Nexus Dashboard, CML, Cyber Vision, SNA, NetBox exports, or config files (IOS / IOS-XE / NX-OS / IOS-XR / ASA) into CLI commands for any Network Sketcher edition

Quick Start: Local MCP in 3 Steps

The quickest way to try Network Sketcher with an AI agent is the Local MCP edition.

1. Install

git clone https://github.com/cisco-open/network-sketcher/
cd network-sketcher/network-sketcher_local_mcp
python -m pip install -r requirements_mcp.txt

2. Add it to your MCP client

For Cursor, add this to your MCP configuration:

{
  "mcpServers": {
    "network-sketcher": {
      "command": "python",
      "args": [
        "/path/to/network-sketcher/network-sketcher_local_mcp/ns_mcp_server.py"
      ]
    }
  }
}

For Claude Code:

claude mcp add network-sketcher -- python "/path/to/network-sketcher/network-sketcher_local_mcp/ns_mcp_server.py"

Replace /path/to/network-sketcher/ with your local clone path.

3. Ask your agent to build a network

Example prompt:

Using Network Sketcher Local MCP, create a small 5-site WAN design with HQ, two data centers, two branches, Internet and WAN waypoints, edge routers, simple L2 segments, and representative IP addressing. Then build the default L1/L2/L3 diagrams and device table.

The generated files will be saved in your Network Sketcher workspace.

Related MCP server: EVE-NG MCP Server

Ecosystem & Integrations

Network Sketcher Local MCP is listed on the official MCP Registry and major MCP platforms:

Network Sketcher provides three editions:

  • Network Sketcher Local MCPAI-native MCP server for LLM clients (Cursor, Claude Code, etc.). The most direct AI integration: the LLM calls Network Sketcher tools without a browser or copy-paste.

  • Network Sketcher Online — Browser-based web service.

  • Network Sketcher Offline — Desktop GUI + CLI. Runs independently with the network-sketcher_offline/ folder alone.

You can use any combination.

Local MCP (AI-native)

Online (Web Service)

Offline (GUI + CLI)

Interface

LLM client (Cursor, Claude Code, etc.)

Web browser

Desktop GUI / Command-line

Key dependencies

Python + MCP SDK

Python + Flask

Python + tkinter

Multi-user

Single user

Multiple users via browser

Single user

Client requires

Python + MCP client

Web browser only

Python runtime environment

AI-native design

Yes (most direct)

Yes

No

Master format

.nsm only

.xlsx / .nsm both

.xlsx only

Internal data storage

No

No

No

External communication

stdio to LLM client (local)

HTTPS

No

Tested platforms

Windows (Mac OS, Linux compatible by design)

Windows (Mac OS, Linux untested)

Windows, Mac OS, Linux

Folder

network-sketcher_local_mcp/

network-sketcher_online/

network-sketcher_offline/

network-sketcher/
├── network-sketcher_local_mcp/  # Local MCP edition — MCP server for LLM clients (AI-native)
├── network-sketcher_online/     # Online edition — Web service (browser-based)
├── network-sketcher_offline/    # Offline edition — GUI + CLI (standalone desktop app)
├── README.md
├── LICENSE
└── ...

Extensions: Cisco & Third-Party Converters

The Network Sketcher Cisco Extension repository (Cisco DevNet) is a separate monorepo of converters that turn platform exports or read-only API snapshots into Network Sketcher CLI command scripts (ns_commands.txt). The output works with all three editions — Local MCP, Online, and Offline (GUI / CLI).

Converters: ACI · Catalyst Center · Catalyst SD-WAN · CML · Cyber Vision · Meraki · Nexus Dashboard (NDFC) · Secure Network Analytics · NetBox · template_converter

Learn more: Typical workflow · Tools overview · Third-party converters · Build your own converter

With Local MCP, an AI agent can run a converter, feed ns_commands.txt through run_commands, and finalize with build_default_outputs in one session.

Converter output is a starting draft — see the Cisco Extension README for data-quality caveats and validation guidance.

Network Sketcher Local MCP

AI-native edition: Network Sketcher Local MCP exposes the engine as a Model Context Protocol (MCP) server, enabling LLM clients such as Cursor and Claude Code to drive network design directly. This is the most direct AI integration of the three editions — no browser, no copy-paste.

What is Network Sketcher Local MCP?

Network Sketcher Local MCP is the third edition of Network Sketcher. It wraps network-sketcher_online/ns_engine/ as a library and exposes the Network Sketcher CLI through the Model Context Protocol so that LLM clients can drive network design via Tool calls.

Positioning: The Online edition is "browser + human + LLM (copy-paste)"; the Offline edition is "desktop GUI / CLI"; this edition is "AI-native — the LLM executes the CLI directly".

5min Demo video of the Local MCP edition.

The AI ​​agent Cursor autonomously creates a network using Network Sketcher's Local MCP functionality. It also simultaneously references best practices from other MCPs.

https://github.com/user-attachments/assets/274d5b66-5f4a-407a-bfb5-f71026971fc4

Local MCP Features

  • No browser, no copy-paste. The LLM calls add device ... and similar commands as Tool invocations

  • Reuses network-sketcher_online/ns_engine/ as a library (no code duplication)

  • No changes are made to the existing _online / _offline folders

  • stdio transport (designed for local operation)

  • Platform import workflow: See Extensions: Cisco & Third-Party Converters above (run_commands + build_default_outputs)

Limitations (Local MCP)

  • Single-user edition designed to run on a local PC

  • Only stdio transport is supported (HTTP/SSE not supported)

  • Diagram generation for large networks may take some time

  • LLM clients cannot directly view binary output (PPTX / SVG); if visual feedback is needed, the user should open the generated SVG directly

  • Verification status: End-to-end verified in both Cursor and Claude Code. The server follows the standard MCP specification, so any MCP-compatible AI agent/client is expected to work, not just these two.

Requirement (Local MCP)

  • Python 3.10 or later (required by the MCP SDK; the engine itself supports 3.9+)

  • The full Network Sketcher repository (the network-sketcher_online/ folder must be present)

  • Recommended LLM: Claude Opus 4.7 or later. The Local MCP edition relies heavily on multi-step tool calling, schema interpretation, and adherence to the layout / workflow rules embedded in the server instructions and AI Context (e.g., RULE 0 / 0.5 layout, RULE 3.5 multi-transport WAN waypoint design, mandatory get_workspace_info to get_ai_context bootstrap). Weaker or older models may struggle with these workflows.

Installation (Local MCP)

git clone https://github.com/cisco-open/network-sketcher/
cd network-sketcher/network-sketcher_local_mcp
python -m pip install -r requirements_mcp.txt

Connection Examples

Cursor and Claude Code use different configuration mechanisms, so the setup steps are split below. Pick the one that matches your client.

For Cursor

Add the following to the Cursor MCP configuration file (File > Preferences > Cursor Settings > MCPmcp.json):

{
  "mcpServers": {
    "network-sketcher": {
      "command": "python",
      "args": [
        "/path/to/network-sketcher/network-sketcher_local_mcp/ns_mcp_server.py"
      ]
    }
  }
}

Replace /path/to/network-sketcher/ with the actual path where you cloned the repository. On Windows, you can use either forward slashes (/) or escaped backslashes (\\).

For Claude Code

Register the MCP server with the claude CLI. The -- (double dash) separator is required so that the script path is passed to python rather than parsed as a flag of claude mcp add:

# Local scope (default; current project only, stored in ~/.claude.json)
claude mcp add network-sketcher -- python "/path/to/network-sketcher/network-sketcher_local_mcp/ns_mcp_server.py"

# User scope (available across all your projects)
claude mcp add --scope user network-sketcher -- python "/path/to/network-sketcher/network-sketcher_local_mcp/ns_mcp_server.py"

# Project scope (shared with team via .mcp.json in project root)
claude mcp add --scope project network-sketcher -- python "/path/to/network-sketcher/network-sketcher_local_mcp/ns_mcp_server.py"

Replace /path/to/network-sketcher/ with the actual path where you cloned the repository. See the Claude Code MCP installation scopes documentation for details on each scope and when to use which.

User Guide (Local MCP)

Language

Link

English

Link

Japanese

Link

Network Sketcher Online

AI-native software: Network Sketcher Online is designed around AI (LLM) interaction — generate AI context, send it to an LLM, and paste the resulting commands back to update your network design, all within the browser.

Demo Video (Ver 3.0.1b)

A demo video of approximately 4 minutes, starting with the installation of Network Sketcher. This demo video demonstrates creating a network configuration using LLM from URL information and performing additional editing. No sound, no captions.

https://github.com/user-attachments/assets/2acaea3b-32f2-4ff0-90ad-a3dc810293d2

What is Network Sketcher Online?

Network Sketcher Online is a browser-based web service. It wraps the Network Sketcher CLI and provides an intuitive web UI for diagram generation and AI-driven network design — no python on PCs required.

Online Features

Network Sketcher Online supports two output modes:

  • SVG Mode (default): Diagrams are rendered as SVG in the browser. All diagrams (L1/L2/L3, all areas and per-area) are generated in parallel and displayed as thumbnails without needing to download individual files. Master files are stored in the high-performance .nsm format internally. SVG mode is approximately 30x faster than PPTX mode. For compatibility with the Offline edition, master files can also be downloaded in .xlsx format.

  • PPTX Mode: Diagrams are generated as PowerPoint (.pptx) files, and device files are generated as Excel (.xlsx) files. This is the original output mode and produces the same files as the Offline edition.

  • All uploaded and generated files are automatically deleted from Network Sketcher Online after the session ends — no data is retained on the server.

  • Upload master files via drag-and-drop in a web browser

  • Generate L1/L2/L3 diagrams, device files, and AI context files with selectable outputs

  • Multi-format diagram download: SVG / SVG (for Visio) / draw.io / draw.io (stencil) — the last variant auto-applies Cisco mxgraph.cisco.* stencils

  • In-browser preview for PowerPoint (.pptx) and Excel (.xlsx) files without requiring Office software

  • Copy AI context to clipboard and open LLM with one click

  • Describe desired changes in a prompt field; the AI context + prompt is copied together for LLM interaction

  • Update master files by pasting CLI commands from LLM output (Update Master)

  • Create new master files from scratch via the web UI

  • Parallel processing for faster diagram generation

  • Attribute-based device coloring for L1 and L3 diagrams

  • Session persistence across browser refreshes with automatic cleanup

  • HTTPS enforced with auto-generated self-signed certificates

  • All settings managed via ns_web_config.json

Limitations (Online)

  • Designed for use on internal networks only. Not intended for deployment on the public internet.

  • IPv4 only. IPv6 is not supported.

  • Excel (.xlsx) and PowerPoint (.pptx) files cannot be synced back to the master file. All editing is performed through CLI commands generated by an LLM.

  • In-browser preview for PowerPoint (.pptx) may not render correctly when the browser zoom or display scaling is set to a high value (e.g., 200%).

Requirement (Online)

  • Tested on Windows only. It may work on Mac OS and Linux, but these platforms have not been verified.

  • Other requirements are the same as Network Sketcher Offline.

Installation (Online)

git clone https://github.com/cisco-open/network-sketcher/
cd network-sketcher/network-sketcher_online
python3 -m pip install -r requirements_online.txt
cd ..
python3 start_ns_online.py

Open the URL shown at startup (default: https://localhost:5443) in your browser.

  • To serve on a specific network interface, edit the host and port settings in ns_web_config.json before starting the server.

  • If no SSL certificate exists, a self-signed certificate is auto-generated on first startup.

  • If you change the host IP address or other settings in ns_web_config.json, manually delete the SSL certificate files in the Certs/ folder and restart the server. A new certificate matching the updated settings will be auto-generated.

  • If the fqdn setting in ns_web_config.json is configured, the auto-generated SSL certificate's Common Name (CN) will use the specified FQDN.

User Guide (Online)

Language

Link

English

Link

Japanese

Link

Performance Measurement Summary (Online)

Ver: 3.0.1 (SVG Mode)

64 NW devices112 Connections

256 NW devices480 Connections

1024 NW devices1984 Connections

4096 NW devices8064 Connections

Master file creation *1

4s

4s

26s

8m 12s

Creation of all configuration diagrams, device tables, and AI Context files

3s

7s

58s

15m 42s


*1 Reflect only L1 information in the no_data master file. Connect adjacent devices. Measure command execution time. Test environment: Intel Core Ultra 7 (1.70 GHz), 32.0 GB RAM, Windows 11 Enterprise

Network Sketcher Offline

Overview

https://github.com/user-attachments/assets/9ff207f8-c6b3-4584-b166-98ae4e4c8297

NoLang (no-lang.com) Otologic (https://otologic.jp) CC BY 4.0

Demo video of basic usage

https://github.com/cisco-open/network-sketcher/assets/13013736/b76ec8fa-44ad-4d02-a7c2-579f67ad24a9

AI(LLM) utilization demo video

Full_Version_link(Youtube)

https://github.com/user-attachments/assets/5874411a-0e6d-485d-9f85-4cdc85f3ca07

Concept

Network Sketcher generates network configuration diagrams in PowerPoint and manages configuration information in Excel. Additionally, exporting a AI ​​context can be used to generate config files using LLM.

  • Automatic generation of each configuration document by metadatization of network configuration information

  • Automated synchronization between documents

  • Minimize maintenance and training load by automatic generation of common formats

  • Facilitate automatic analysis, AI utilization, and inter-system collaboration by metadatization of configuration information.

  • Template support for equipment configuration image

image

New Features (Offline)

  • Ver 2.6.0

Network Sketcher Ver 2.6.0 now supports master file conversion from Visio, draw.io, NetBox, and CML data to Network Sketcher.

For API-driven platform imports, see Extensions: Cisco & Third-Party Converters above (complements Offline GUI import for Visio / draw.io / NetBox files).

Limitations (Offline)

  • IPv4 only. IPv6 is not supported.

  • A DEVICE file contains multiple sheets, but only one sheet should be updated at a time. Simultaneous synchronization of multiple sheet updates is not supported.

  • Do not use Network Sketcher on master files in your One Drive folder.

  • Deleting Layer 1 links using the GUI cannot identify individual interfaces and will delete more Layer 2 data than intended. Use the CLI command (delete l1_link) to delete Layer 1 links.

Requirement (Offline)

  • Network Sketcher supports cross-platform. Works with Windows, Mac OS, and Linux.

    • MAC OS may not display well in Dark mode.

  • Python ver 3.x

  • Software that can edit .pptx and .xlsx files

    • Microsoft Powerpoint and Excel are the best

    • Google Slides and Spreadsheets import/export functionality is available. Excel functions display will show an error, but it works fine.

    • Libre Office and Softmaker office cannot be used.

Installation (Offline)

git clone https://github.com/cisco-open/network-sketcher/
cd network-sketcher/network-sketcher_offline
python3 -m pip install -r requirements_offline.txt
python3 network_sketcher.py

or

#Download via browser
https://github.com/cisco-open/network-sketcher/archive/refs/heads/main.zip

#Unzip the ZIP file and execute the following in the prompt of the folder
cd network-sketcher_offline
python3 -m pip install -r requirements_offline.txt
python3 network_sketcher.py

Installation Supplement (Offline)

  • Alternative to "python -m pip install -r requirements_offline.txt"

python3 -m pip install tkinterdnd2
python3 -m pip install "openpyxl>=3.1.3,<=3.1.5"
python3 -m pip install python-pptx
python3 -m pip install ipaddress
python3 -m pip install numpy
python3 -m pip install networkx
python3 -m pip install svg.path
  • Mac OS requires the following additional installation.

brew install tcl-tk
brew install tkdnd
  • Ubuntu requires the following additional installation. GUI drag and drop doesn't work on Ubuntu, you need to compile tkdnd from source or use "Browse" and "Submit".

sudo apt-get install python3-tk

User Guide (Offline)

Language

Link

English

Link

Japanese

Link

How to create the exe file for Windows using pyinstaller

pyinstaller.exe [file path]/network-sketcher_offline/network_sketcher.py --onefile --collect-data tkinterdnd2 --additional-hooks-dir  [file path] --clean --add-data "./ns_extensions_cmd_list.txt;." --add-data "./ns_logo.png;."

Performance Measurement Summary (Offline)

Ver: 2.6.1b

64 NW devices112 Connections

256 NW devices480 Connections

1024 NW devices1984 Connections

Master file creation *1

51s

2m45s

25m45s

Layer 1 diagram generation (All Areas with tags)

6s

29s

6m30s

Layer 2 diagram generation

13s

51s

6m53s

Layer 3 diagram generation (All Areas)

10s

56s

14m23s

Device file export

19s

1m4s

5m14s


*1 Reflect only L1 information in the no_data master file. Connect adjacent devices. Measure command execution time. Test environment: Intel Core Ultra 7 (1.70 GHz), 32.0 GB RAM, Windows 11 Enterprise

Appendix

Feature Support Matrix

Feature Item

Local MCP (LLM-driven CLI)

Online Edition

Offline Edition (GUI)

Offline Edition (CLI)

Create master file from PowerPoint rough sketch

Convert from Visio / Draw.io / NetBox files (built-in Offline GUI)

Import via Cisco Extension converters (see above)

Place / create / delete / modify areas, devices, waypoints

✅ (areas auto-placed in GUI)

Add / delete / modify Layer 1 connections (port names, duplex, etc.)

⚠️ (port cannot be specified on delete)

Change Layer 2 segments (VLAN) / add / delete virtual ports (SVI, loopback, port-channel)

Change IP addresses / Layer 3 instances (VRF)

Change attributes

Add / delete VPNs

Flow management

Export various reports

✅ (IP Address only)

✅ (IP Address only)

Export empty master files (no data)

Export AI context files

Export device files

Generate L1/L2/L3 topology diagrams

Export diagrams as SVG (Visio-compatible) / draw.io (with Cisco stencils)

For Cisco Extension import caveats, see Extensions: Cisco & Third-Party Converters above.

SAMPLE

- Supports various connections

Download : Sample.figure5.zip

- Wi-Fi office

Created by using AI context and giving AI (LLM) multiple command generation instructions.

Download : Sample Office.zip


Otologic (https://otologic.jp) CC BY 4.0

Author

  • Yusuke Ogawa - Architect, Cisco | CCIE#17583

License

SPDX-License-Identifier: Apache-2.0

Copyright 2023 Cisco Systems, Inc. and its affiliates

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Available Tools

12 tools
build_default_outputsA

Generate the default deliverable bundle for a .nsm master.

Runs the following three steps in a single call:
  1. export combined_diagram --type all_areas
     Produces FOUR artifacts in one shot:
       - [L1_DIAGRAM]AllAreasTag_<base>.svg  (per-layer side effect)
       - [L2_DIAGRAM]AllAreas_<base>.svg     (per-layer side effect)
       - [L3_DIAGRAM]AllAreas_<base>.svg     (per-layer side effect)
       - [L1L2L3_DIAGRAM]AllAreas_<base>.html (combined tabbed HTML
         viewer; primary deliverable)
     The combined HTML embeds all three layer SVGs in a self-contained
     page with three switchable tabs (L1 / L2 / L3) styled to match
     the Device Table viewer. Per-layer SVGs are reused if already
     present in the workspace; missing ones are generated as needed.
  2. export_device_table_html
     (file: [DEVICE_TABLE]<base>.html)
  3. (re-)generate AI Context file
     (file: [AI_Context]<base>.txt)

Each step is judged independently; if one step fails the remaining
steps still execute and the per-step status is reflected in the
returned summary. The summary lists six rows -- one per individual
artifact -- so callers can see which layers (if any) failed even when
the combined HTML succeeded.

Per-area combined HTMLs (e.g. ``[L1L2L3_DIAGRAM]<area>_<base>.html``)
are NOT generated by default. If you need one, request it explicitly
via ``run_commands(["export combined_diagram --type per_area --area
<name>"])`` after this tool returns.

Call this ONCE as the final step after constructing or substantially
updating a network so that diagrams, the Device Table preview, and the
AI Context bundle are all refreshed in lock-step. Prefer this tool
over individually calling export_diagram / export_device_table_html /
get_ai_context for routine finalization.

Args:
    master: Master filename inside the working directory
            (e.g. '[MASTER]office.nsm') or an absolute path inside
            the active workspace.

Returns:
    A multi-line summary listing each artifact's status, the generated
    file path, and a trailing 'Summary: N/6 succeeded.' line.
ParametersJSON Schema
NameRequiredDescriptionDefault
masterYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses independent step execution, artifact generation, reuse of per-layer SVGs, and that failure in one step doesn't halt others. Describes return format as a multi-line summary with per-artifact status. Fully transparent with no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively long but well-structured with numbered steps, bullet points, and clear separation of concerns. Each sentence serves a purpose, though some minor redundancy could be trimmed. Front-loaded with main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multi-step, multiple artifacts, error handling), the description is complete: covers all steps, artifacts, error behavior, output format, and links to alternatives. Output schema exists (though not detailed) but description adequately describes return summary. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter, master, with 0% schema description coverage. The description adds meaning by specifying accepted formats: 'Master filename inside the working directory (e.g. [MASTER]office.nsm) or an absolute path inside the active workspace.' This clarifies type and constraints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a default deliverable bundle for a .nsm master, listing three specific steps with artifact types. It distinguishes from sibling tools like export_diagram, export_device_table_html, and get_ai_context by recommending this tool for routine finalization rather than individual calls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Call this ONCE as the final step after constructing or substantially updating a network.' Also specifies when not to use (per-area combined HTMLs) and directs to use run_commands for that case. Provides clear guidance on preference over individual export calls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_empty_masterA

Create a new empty Network Sketcher master file (.nsm) in the working dir.

The engine's `export master_file_nodata` produces an .xlsx, which this
tool immediately converts to .nsm via xlsx_to_nsm() and discards.
The xlsx is written to a system temp directory (never to the working
directory) so that no .xlsx artefact is left behind.

Args:
    filename: Optional target name. Must start with '[MASTER]' and end
              with '.nsm'. No path separators allowed. Defaults to
              '[MASTER]no_data.nsm'.

Returns:
    Result message indicating success and final file path, or an error.
ParametersJSON Schema
NameRequiredDescriptionDefault
filenameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It transparently explains the internal process: creating a temporary .xlsx in a system temp directory and converting it to .nsm, leaving no artifact. It also details filename constraints. However, side effects like overwriting are not mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear main action, process explanation, parameter details, and return value. It is slightly verbose in explaining the internal conversion but every sentence is informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no annotations, the description covers purpose, process, parameter constraints, and return type. It does not detail error conditions or output schema fields, but the provided information is sufficient for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It explains the single parameter 'filename' thoroughly: optional, must start with '[MASTER]', end with '.nsm', no path separators, and default value. This adds significant value beyond the sparse schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create' and the resource 'new empty Network Sketcher master file (.nsm)'. It distinguishes from sibling tools like export_master_xlsx and import_master by focusing on creating a blank master from scratch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creating a new empty master file but lacks explicit guidance on when to use this tool versus alternatives (e.g., import_master). No when-not scenarios are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_device_table_htmlA

Export an interactive HTML Device Table preview from a .nsm master.

Generates a single self-contained HTML file with four tabs (L1 Table /
L2 Table / L3 Table / Attribute) whose layout, styling, and behaviour
match the Online edition's Device Preview screen (sticky-header table,
per-tab CSV / HTML download buttons, URL-hash initial tab selection).

The output file is written next to the master as
``[DEVICE_TABLE]{basename}.html`` and contains no external CDN /
script references, so it can be opened directly from disk or shared
as a single artifact.

PREREQUISITE: call get_ai_context(master) (or at least
get_network_state(master)) once per session for this master so you
understand the data being exported.

Args:
    master: Master filename inside the working directory
            (e.g. '[MASTER]office.nsm') or an absolute path inside
            the active workspace.

Returns:
    A summary describing the generated file and its size.
ParametersJSON Schema
NameRequiredDescriptionDefault
masterYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It details output characteristics (single self-contained HTML, four tabs, no external references, specific file naming) and the prerequisite. It does not mention if the tool overwrites existing files or handle errors, but it sufficiently discloses the main behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded: purpose, output details, prerequisite, parameter. Every sentence adds value without redundancy. It is concise yet comprehensive, fitting the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter, clear prerequisite, and output summary mention, the description is largely complete. It lacks potential error scenarios or size/boundary notes, but overall it provides sufficient context for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the 'master' parameter (filename inside working directory or absolute path, .nsm master). This adds meaning beyond the schema, though it could specify the expected file extension more explicitly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear action verb and resource: 'Export an interactive HTML Device Table preview from a .nsm master.' It specifies the output format and distinct tabs, distinguishing it from sibling tools like export_diagram and export_master_xlsx.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states a prerequisite: 'call get_ai_context(master) (or at least get_network_state(master)) once per session.' This provides clear when-to-use context. However, it does not mention scenarios where the tool should not be used or suggest alternatives beyond the prerequisite.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_diagramA

Export an L1, L2, or L3 network diagram for the given .nsm master.

PREREQUISITE: You MUST have called get_ai_context(master) (or at least
get_network_state(master)) at least once in this session for this
master so that you understand which layer is meaningful to export
given the current network state.

Args:
    master: Master filename inside the working directory.
    layer:  One of 'l1', 'l2', 'l3' (case-insensitive).
    format: 'svg' (default) or 'pptx'. SVG is faster and renders in the
            browser. PPTX is editable in PowerPoint.
    area:   Optional area name. When omitted, every layer now emits a
            combined All-Areas diagram so that L1/L2/L3 share a
            uniform default contract:
              - L1: all_areas_tag
                (file: '[L1_DIAGRAM]AllAreasTag_<basename>.svg' or .pptx).
              - L2: all_areas
                (file: '[L2_DIAGRAM]AllAreas_<basename>.svg').
                NOTE: PPTX output for L2 area=None is not yet supported
                by the engine ('--type all_areas requires --format svg'),
                so the legacy first-area PPTX behaviour is preserved
                when format='pptx' (file:
                '[L2_DIAGRAM]<first_area>_<basename>.pptx').
              - L3: all_areas
                (file: '[L3_DIAGRAM]AllAreas_<basename>.svg' or .pptx).
            When given:
              - L1 generates only that area's per-area-tag SVG
                (file: '[L1_DIAGRAM]PerAreaTag_<basename>_<area>.svg').
              - L3 generates only that area's per-area SVG
                (file: '[L3_DIAGRAM]PerArea_<basename>_<area>.svg').
              - L2 generates that area's diagram
                (file: '[L2_DIAGRAM]<area>_<basename>.svg' or .pptx).
            area is only honored together with format='svg' for L1/L3
            (the engine's PPTX path always produces an all-areas pptx);
            L2 accepts area for both formats. Unknown area names are
            rejected by the engine with a clear error.

Returns:
    A summary describing which files were generated, plus the engine
    stdout. Use get_workspace_info afterwards to enumerate the files.
ParametersJSON Schema
NameRequiredDescriptionDefault
areaNo
layerYes
formatNosvg
masterYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It details behavior for each parameter, including edge cases: L2 PPTX area=None not supported, unknown areas rejected with clear error, and file naming conventions. It also mentions the return value is a summary and recommends using get_workspace_info to enumerate files. Missing are authentication or rate limit notes, but overall transparency is high.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy but well-structured with clear headings and bullet-like formatting. Every sentence adds value, covering prerequisites, parameter details, edge cases, and return hints. It could be slightly more concise, but the structure aids readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters, nuanced area behavior, output format differences, no annotations), the description is highly complete. It explains return values, file naming, and error handling. The presence of an output schema complements the description, but the description itself covers all necessary context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does so thoroughly: explains master, layer, format (with SVG vs PPTX tradeoffs), and area (with detailed per-layer behavior for omitted vs provided area). This adds significant meaning beyond the bare schema definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it exports an L1, L2, or L3 network diagram for a given .nsm master. It distinguishes from sibling export tools like export_device_table_html and export_master_xlsx by specifying the resource type. The verb 'Export' and resource 'network diagram' are specific and clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states a prerequisite: must have called get_ai_context(master) or get_network_state(master) beforehand. It also advises understanding which layer is meaningful given the network state. While it doesn't explicitly state when not to use or list alternatives, the context is clear enough for proper usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_master_xlsxA

Convert a .nsm master back to .xlsx for Excel/Offline edition use.

The output is placed in the working directory next to the source .nsm,
using the same basename with '.xlsx' extension. The .nsm itself is
not modified.

Args:
    master: Master filename inside the working directory
            (e.g. '[MASTER]office.nsm').

Returns:
    Result message with the produced .xlsx path, or an error.
ParametersJSON Schema
NameRequiredDescriptionDefault
masterYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It states the .nsm is not modified and returns a result/error. However, it does not disclose potential issues like file size, permissions, or overwriting behavior, which could affect agent decision-making.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured with clear sections (Args, Returns). Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no annotations, the description sufficiently explains core behavior, input, and output. The presence of an output schema (though not elaborated) is acceptable. Lacks edge cases but adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the description adds meaningful context for the 'master' parameter with an example ('[MASTER]office.nsm') and clarifies it is within the working directory. This goes beyond the schema's mere string type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool converts .nsm to .xlsx for offline use. It specifies the verb 'convert' and resource 'master'. However, it does not differentiate from sibling export tools like export_device_table_html or export_diagram, which lower the score slightly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context for when to use (Excel/offline edition) and where output goes, but lacks explicit when-not-to-use or alternatives. No mention of prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ai_contextB

Generate the full AI Context file for a master and return its contents.

This invokes `export ai_context_file` (always with
--accept-security-risk to avoid the interactive prompt) and reads back
the generated '[AI_Context]<basename>.txt'. The AI Context bundles the
network state plus the full CLI command reference, suitable for
feeding to a language model that needs to plan multi-step edits.

Args:
    master: Master filename inside the working directory
            (e.g. '[MASTER]office.xlsx').

Returns:
    Full text content of the generated AI Context file, or an error.
ParametersJSON Schema
NameRequiredDescriptionDefault
masterYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility for behavioral transparency. It mentions using `--accept-security-risk` to bypass interactive prompts, which is good. However, it does not disclose whether the generated file persists, if any resources are modified, or potential side effects like overwriting. Safety and mutation traits are not fully addressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (about 5 sentences) and well-structured with a clear overview followed by parameter and return details. Every sentence adds value, though the example could be integrated more tightly. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and an output schema exists (implied), the description explains what the output contains and its purpose. However, it omits details like naming conventions, potential errors beyond a generic error message, and behavior upon repeated calls. It is functional but not exhaustive for a read-like operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate for the single parameter `master`. It provides format guidance ('Master filename inside the working directory') and an example value. This adds meaningful context beyond the schema's bare name. No further details on validation or constraints are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates and returns the full AI Context file for a master. It specifies what the file contains (network state and CLI command reference) and that it invokes an internal command. While it distinguishes from siblings like get_network_state and export_master_xlsx by focusing on AI Context, it could be more explicit about uniqueness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when an AI Context file is needed for planning multi-step edits, but it lacks explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, though sibling tools exist for other export functions. The guidance is adequate but not thorough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_network_stateA

Run the standard set of show commands and return aggregated results.

This is the lightweight alternative to `get_ai_context`. It produces a
plain-text summary of the current network state (areas, devices,
interfaces, L1/L2/L3 topology, attributes) by invoking the show
commands listed in mcp_config.json -> ai_context_show_commands.

Args:
    master: Master filename inside the working directory
            (e.g. '[MASTER]office.xlsx'), or an absolute path inside
            the working directory.

Returns:
    Concatenated stdout from each show command, grouped by command name.
ParametersJSON Schema
NameRequiredDescriptionDefault
masterYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

It discloses that show commands are run and results are concatenated stdout. It references a config file for command list. No annotations exist, so the description adequately covers behavior, though more detail on read-only nature could help.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise yet comprehensive, structured with a summary, details, and formal Args/Returns sections. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter and no annotations, the description covers purpose, usage, parameter, and output format completely. It references an output schema which reduces need for return value details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides a detailed explanation of the 'master' parameter including format and example, far beyond the schema's minimal title. Schema coverage is 0%, but the description fully compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Run the standard set of show commands and return aggregated results' and positions itself as 'the lightweight alternative to get_ai_context', distinguishing it from a sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly contrasts with get_ai_context, implying this tool is for lighter queries. It lacks explicit when-not-to-use guidance but provides clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_workspace_infoA

Return the active workspace and the list of .nsm master files in it.

Always safe to call. If no workspace has been set yet, returns
workspace_active=false with a reminder to call suggest_workspace().

Returns:
    JSON string with keys:
        workspace_active: true/false
        working_directory: absolute path or null
        masters: list of .nsm master filenames ('[MASTER]*.nsm')
        xlsx_masters: list of .xlsx files that need conversion via
                      import_master before they can be used
        other_files: list of generated outputs (DIAGRAM / AI_Context, etc.)
        note: human-readable hint when no workspace is active
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the burden. It explicitly says 'always safe to call' and details return format and behavior when no workspace, offering good transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise and front-loaded with purpose, but the inline return specification could be slightly trimmed or moved to an output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters and no annotations, the description fully covers behavior, return keys, and even a hint about a sibling tool, making it highly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, baseline is 4. The description adds value by explaining the tool's purpose and return structure, though no parameter details needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the active workspace and list of .nsm master files, distinguishing it from sibling tools like suggest_workspace.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes it's always safe to call and suggests using suggest_workspace when no workspace is active, providing clear context though not comparing to all siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_masterA

Convert an existing .xlsx master into a .nsm in the working directory.

The Local MCP edition operates on .nsm files exclusively. Use this tool
once at the start of a session to bring an existing .xlsx master under
.nsm management. The original .xlsx is left untouched.

Args:
    xlsx_path: Absolute path to the source .xlsx file. The file must
               exist and have an '.xlsx' extension. The path itself
               may live outside the working directory.
    target_name: Optional output filename. Must start with '[MASTER]'
                 and end with '.nsm'. If omitted, the source basename
                 is reused with the extension swapped to '.nsm'.

Returns:
    Result message with the produced .nsm path, or an error.
ParametersJSON Schema
NameRequiredDescriptionDefault
xlsx_pathYes
target_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the original .xlsx is left untouched (non-destructive) and explains file naming behavior. However, it lacks details on error conditions, permissions, or what happens if the output file already exists. The description is adequate but could be richer given no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is 8 sentences, well-structured with a clear lead sentence, then usage context, then parameter details, then return value. It is concise for the information provided, with no redundant or verbose phrasing. A minor improvement could be grouping the parameter details more tightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 parameters (1 required) and an output schema, the description covers the main action, usage scenario, parameter constraints, and return type. It lacks details on error handling or side effects beyond non-destructiveness, but this is acceptable for a simple conversion tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds significant meaning: xlsx_path requires absolute path, existence, .xlsx extension, and can be outside working directory; target_name must follow the naming convention '[MASTER]' and '.nsm' and defaults to source basename. This goes well beyond the schema's property titles and default, making parameters self-documenting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Convert an existing .xlsx master into a .nsm in the working directory.' It uses a specific verb ('Convert') and resource ('xlsx master to .nsm'), and distinguishes from sibling tools like export_master_xlsx (reverse operation) and create_empty_master (creation from scratch).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises use 'once at the start of a session' and explains that the Local MCP edition operates on .nsm files exclusively, so this tool bridges the gap. It does not explicitly list when not to use it or name alternatives, but the sibling context and the opposite action (export_master_xlsx) provide implied guidance. The explanation is clear but could be more explicit about exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_commandsA

Execute one or more Network Sketcher CLI commands against a .nsm master.

PREREQUISITE: You MUST have called get_ai_context(master) (or at least
get_network_state(master)) at least once in this session before using
this tool. Without that context you do not know the current state nor
the available CLI syntax, and your edits are likely to be wrong.

Each non-empty line of `commands` is parsed with shlex and run as a
single CLI invocation. Allowed verbs: add, rename, delete, show.
`export` is intentionally excluded; use create_empty_master,
export_diagram, or get_ai_context instead.

The `--master` argument is appended automatically; do NOT include it
in the command lines.

Args:
    master: Master filename inside the working directory.
    commands: Newline-separated CLI command lines. Example:
                  add device 'SW-3' --area 'DC1'
                  add l1_link 'SW-2' 'GE 0/0' 'SW-3' 'GE 0/1'

Returns:
    Per-line results: each command's exit summary and stdout, joined.
ParametersJSON Schema
NameRequiredDescriptionDefault
masterYes
commandsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes parsing of each line with shlex, invocation as single CLI command, and automatic appending of '--master'. It lists allowed verbs (add, rename, delete, show) and excluded export. Though no annotations exist, the description covers the execution behavior well, though it lacks explicit mention of destructive potential or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is front-loaded with purpose and prerequisite. While slightly long, each sentence adds value, and the example helps. Structured with Args and Returns sections. Could be more concise but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and the presence of an output schema, the description adequately covers input parameters, prerequisite, allowed verbs, and return format. It is fully sufficient for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds full meaning: 'Master filename inside the working directory' for master, and 'Newline-separated CLI command lines' with an example for commands. This provides complete semantic understanding beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Execute one or more Network Sketcher CLI commands against a .nsm master,' clearly specifying the verb (execute) and resource (CLI commands on .nsm master). It distinguishes from sibling tools by listing allowed verbs and explicitly excluding 'export', which directs to sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit prerequisites ('MUST have called get_ai_context...'), explains why the prerequisite is necessary, and gives clear when-to-use and when-not-to-use guidance by listing allowed verbs and excluding 'export'. Also warns not to include '--master' argument.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_workspaceA

Set the active workspace directory for this session.

Validates that the path is under the user's home directory (defence
against arbitrary filesystem access), creates the directory if it
does not exist, and confirms it is writable. Once set, subsequent
tool calls operate against this directory until the server restarts
or set_workspace is called again.

Args:
    path: Absolute path to the desired workspace. May use '~' for
          home expansion. Must resolve to a location under
          Path.home().

Returns:
    Confirmation message including the resolved absolute path,
    or an error if validation failed.
ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses behavioral traits: validation against home directory, creation if missing, writable check, and the session-scoped persistence. This is clear and sufficient for safe use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with no wasted sentences. It uses a structured format with Args and Returns sections, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter, no annotations, and presence of an output schema, the description provides complete context including validation, creation, writability, and return value description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description compensates by explaining the 'path' parameter: it must be absolute, supports '~' for home expansion, and must resolve under Path.home(). This adds essential meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Set the active workspace directory for this session.' It specifies a verb (set) and resource (workspace directory), and the purpose is distinct from sibling tools like get_workspace_info and suggest_workspace.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the lifecycle of the workspace setting and that subsequent calls operate against this directory. It does not explicitly state when not to use it, but the context implies its role relative to get_workspace_info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suggest_workspaceA

Suggest OS-appropriate workspace directory candidates.

Always safe to call. Returns a list of candidate paths under the
user's home directory (Windows / macOS / Linux), with hints about
which exist, which are writable, and which the agent should prefer.
The agent must propose ONE candidate to the user, get confirmation,
then call set_workspace(path). Custom paths under the user home are
also acceptable; the candidates are only suggestions.

Returns:
    JSON string with keys:
        os, current_workspace, home, candidates, guidance
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must fully disclose behavior. It states the tool returns candidate paths with hints, is safe to call, and describes the output structure. However, it could mention potential side effects or edge cases, but for a suggestion tool, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with purpose. It is clear and to the point, though the mentioned return structure could be placed earlier for even better structure. No unnecessary sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and an output schema described in text, the description covers all necessary aspects: purpose, safety, workflow, and return format. It references sibling tools and provides complete context for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description adds all meaning beyond the empty schema. It explains the tool's purpose and return format, meeting the baseline for 0 parameters. The description could be slightly more detailed about the output keys, but it is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly uses the verb 'Suggest' and specifies the resource 'OS-appropriate workspace directory candidates'. It distinguishes itself from sibling tools like set_workspace by outlining the workflow, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: 'Always safe to call', the workflow of proposing one candidate and seeking confirmation before calling set_workspace, and noting that custom paths are acceptable. This leaves no ambiguity about when and how to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 12 tool updatesv3.1.2
    • First observedbuild_default_outputs
    • First observedcreate_empty_master
    • First observedexport_device_table_html
    • First observedexport_diagram
    • First observedexport_master_xlsx
    • First observedget_ai_context
    • First observedget_network_state
    • First observedget_workspace_info
    • First observedimport_master
    • First observedrun_commands
    • First observedset_workspace
    • First observedsuggest_workspace

TDQS

A4.2/5.0
Disambiguation5/5

Each tool has a distinct, non-overlapping purpose: workspace management, master file operations, state inspection, exports, build, and mutation. No ambiguity between tools.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern (e.g., set_workspace, get_network_state, export_diagram), making it easy to predict tool names.

Tool Count5/5

12 tools cover the full workflow from workspace setup to final deliverables without being excessive or insufficient. Each tool earns its place.

Completeness5/5

The tool surface covers workspace management, master creation/import, state inspection, editing via CLI, and various exports including a combined bundle. No obvious gaps.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for network operations that lets AI assistants interact with Cisco/Juniper network devices through safe, well-defined tools like compliance audits and configuration backups.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI agents to manage Defined Networking / Managed Nebula infrastructure, supporting tasks like network topology design, host provisioning, and security auditing through natural language.
    4
    MIT

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/cisco-open/network-sketcher'

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