Network Sketcher
OfficialThe Network Sketcher Local MCP server enables AI agents (like Cursor or Claude Code) to design, build, and export network topology diagrams and documentation through structured tool calls.
Workspace management: Suggest, set, and query the active workspace directory, listing available master files and generated outputs.
Master file operations: Create new empty
.nsmmaster files, import existing.xlsxmasters, or export.nsmfiles back to.xlsxfor use with other editions.Network state & AI context: Retrieve a plain-text summary of the current network (areas, devices, interfaces, L1/L2/L3 topology, attributes) via
get_network_state, or generate a full AI Context file bundling network state and a complete CLI command reference viaget_ai_context.Network design via CLI: Execute Network Sketcher CLI commands (
add,rename,delete,show) to build or modify network elements—devices, areas, L1 links, L2 segments/VLANs, L3 IPs/VRFs, attributes, and more.Diagram export: Export L1 (physical), L2 (VLAN/broadcast-domain), or L3 (IP) topology diagrams as SVG (default) or PPTX, for the full network or a specific area.
Device table export: Generate a self-contained interactive HTML device table with L1/L2/L3/Attribute tabs and CSV/HTML download buttons.
Default outputs bundle: In a single call, produce all standard deliverables—a combined L1/L2/L3 tabbed HTML viewer, per-layer SVGs, device table HTML, and a refreshed AI Context file.
Designs Cisco-style networks through AI-driven interaction, generating L1/L2/L3 topology diagrams, device tables, and AI-ready context files from structured network data.
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.txt2. 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:
Registries: MCP Registry · Glama · PulseMCP
Hubs: LobeHub
Network Sketcher provides three editions:
Network Sketcher Local MCP — AI-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 |
|
|
|
Internal data storage | No | No | No |
External communication | stdio to LLM client (local) | No | |
Tested platforms | Windows (Mac OS, Linux compatible by design) | Windows (Mac OS, Linux untested) | Windows, Mac OS, Linux |
Folder |
|
|
|
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 invocationsReuses
network-sketcher_online/ns_engine/as a library (no code duplication)No changes are made to the existing
_online/_offlinefoldersstdio 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_infotoget_ai_contextbootstrap). 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.txtConnection 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 > MCP → mcp.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)
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
.nsmformat internally. SVG mode is approximately 30x faster than PPTX mode. For compatibility with the Offline edition, master files can also be downloaded in.xlsxformat.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.*stencilsIn-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.pyOpen the URL shown at startup (default: https://localhost:5443) in your browser.
To serve on a specific network interface, edit the
hostandportsettings inns_web_config.jsonbefore 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 theCerts/folder and restart the server. A new certificate matching the updated settings will be auto-generated.If the
fqdnsetting inns_web_config.jsonis configured, the auto-generated SSL certificate's Common Name (CN) will use the specified FQDN.
User Guide (Online)
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
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
New Features (Offline)
Ver 2.6.1 Network Sketcher Ver 2.6.1 supported the creation of a network configuration with LLM from scratch
Ver 2.6.0
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.pyor
#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.pyInstallation 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.pathMac OS requires the following additional installation.
brew install tcl-tk
brew install tkdndUbuntu 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-tkUser Guide (Offline)
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 toolsbuild_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.
| Name | Required | Description | Default |
|---|---|---|---|
| master | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| master | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | ||
| layer | Yes | ||
| format | No | svg | |
| master | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| master | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| master | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| master | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| xlsx_path | Yes | ||
| target_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| master | Yes | ||
| commands | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
12 tool updates
v3.1.2- First observed
build_default_outputs - First observed
create_empty_master - First observed
export_device_table_html - First observed
export_diagram - First observed
export_master_xlsx - First observed
get_ai_context - First observed
get_network_state - First observed
get_workspace_info - First observed
import_master - First observed
run_commands - First observed
set_workspace - First observed
suggest_workspace
TDQS
Each tool has a distinct, non-overlapping purpose: workspace management, master file operations, state inspection, exports, build, and mutation. No ambiguity between tools.
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.
12 tools cover the full workflow from workspace setup to final deliverables without being excessive or insufficient. Each tool earns its place.
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
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
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceAn MCP server that allows LLMs to create, configure, validate, and explain Cisco Packet Tracer network topologies. It provides a comprehensive suite of tools for generating deployment scripts, CLI configurations, and automated network troubleshooting.153MIT
- AlicenseBqualityDmaintenanceAn MCP server that gives Claude and other LLM agents programmatic access to EVE-NG network labs, enabling creation, configuration, and management of virtual network topologies through natural language.142Apache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP 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
- AlicenseNot gradedqualityDmaintenanceAn 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.4MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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