Network Sketcher generates network configuration diagrams in PowerPoint and manages configuration information in Excel. With AI (LLM) integration, it supports network design creation and updates via an MCP server for LLM clients (Local MCP), a web browser (Online), or a desktop GUI/CLI (Offline).
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 | .nsm only (.xlsx via import/export) |
.nsm internally; .xlsx at boundary |
.xlsx / .nsm both |
| 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
└── ...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
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.
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".
- 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/_offlinefolders - stdio transport (designed for local operation)
- 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 Cursor (the primary tested host). Claude Code support follows the published MCP specification but is design-validated only at this release; please report any issues you encounter.
- 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.
git clone https://github.com/cisco-open/network-sketcher/
cd network-sketcher/network-sketcher_local_mcp
python -m pip install -r requirements_mcp.txtpython ns_mcp_server.pyThe server waits indefinitely on stdio — this is normal behaviour (Ctrl+C to exit). Logs are written to stderr.
| Key | Description |
|---|---|
working_directory |
Optional. If set to a non-empty path, that path is used as the initial workspace on startup. When left empty (recommended), the server starts with no active workspace; the AI agent must call suggest_workspace() → set_workspace(path) before other Tools can be used. Leave empty for OS-agnostic portability. |
log_level |
DEBUG / INFO / WARNING / ERROR |
ai_context_show_commands |
List of show commands executed by the get_network_state Tool |
command_timeout_seconds |
(Reserved; not used in the current version) |
Cursor and Claude Code use different configuration mechanisms, so the setup steps are split below. Pick the one that matches your client.
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 (\\).
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.
This edition handles only .nsm (ZIP + Apache Parquet) master files. .xlsx access via openpyxl is slow for large networks, so it is used only at the import/export boundary.
- To use an existing
.xlsxmaster → convert withimport_master - To open in Excel or the Offline edition → write back with
export_master_xlsx - To create a new master →
create_empty_mastergenerates.nsmdirectly
| Tool | Role |
|---|---|
suggest_workspace |
Returns candidate workspace directories suited to the current OS (Windows / macOS / Linux) |
set_workspace |
Sets the given path as the working directory for this session (restricted to paths under home; auto-creates if absent) |
get_workspace_info |
Returns the working directory and the list of master / output files it contains (returns workspace_active=false if no workspace is set) |
create_empty_master |
Creates an empty [MASTER]<name>.nsm (converts xlsx → nsm internally and discards the xlsx) |
import_master |
Converts an existing .xlsx to .nsm inside the working directory |
export_master_xlsx |
Writes a .xlsx from a .nsm (for editing in Excel or the Offline edition) |
get_network_state |
Runs the main show commands and returns aggregated results (lightweight) |
get_ai_context |
Generates [AI_Context]<name>.txt and returns its full content (full context) |
run_commands |
Executes multiple add / rename / delete / show commands in a single call |
export_diagram |
Generates an L1 / L2 / L3 diagram in SVG or PPTX format |
| Prompt | Role |
|---|---|
start_ns_session(master) |
Session start template. Forces the AI through the get_workspace_info → get_ai_context → summary report workflow. |
- In Cursor, launch with the
/start_ns_sessionslash command. - In Claude Code, launch with
/mcp__network-sketcher__start_ns_session(per Claude Code's MCP prompt naming convention/mcp__<server>__<prompt>).
| URI | Content |
|---|---|
nsm://workspace |
Current working directory state (JSON) |
nsm://commands |
Full CLI command reference (nsm_extensions_cmd_list.txt) |
Three layers of guidance prevent the LLM from issuing commands without first understanding the current state:
- Server instructions (automatic):
instructionsare sent to the MCP host at FastMCP initialisation. Cursor and Claude Code include them in the system prompt, so the AI is automatically prompted to callget_workspace_info→get_ai_contextin every new session. The instructions also mandate that the AI call any other registered MCP server whose capability is relevant to the current sub-task before issuing Network Sketcher mutations (see Additional Policy below). /start_ns_sessionprompt (explicit launch): When triggered by the slash command, a step-by-step message is inserted that walks the AI through the workflow. The first step requires the AI to enumerate other registered MCP servers and present a relevance mapping to the user.- Tool docstring PREREQUISITE (fail-safe): The
run_commandsandexport_diagramdocstrings explicitly state thatget_ai_contextmust be called first — a final safety net for when the AI reads the docstring.
The server instructions and the /start_ns_session prompt include the following policy covering all MCP servers registered with the host — not just documentation/RAG servers, but any server regardless of vendor or category (configuration, monitoring, issue tracking, chat, repository, etc.).
- Enforcement level: "MANDATORY when relevant." Before starting a sub-task, the LLM must ask itself "Is any registered MCP server's capability relevant here?" If yes, it must call that server before issuing Network Sketcher mutations, and must cite the returned sources in its final answer.
- Relevance judgment: Based on each server's description (
serverUseInstructions/ tool descriptors), not its name alone. - Typical relevance mappings (non-exhaustive):
- Documentation / RAG servers → model selection, best practices, EoS/EoL, config examples, troubleshooting
- Topology / config / monitoring servers → grounding decisions in live device state
- Issue tracking / chat / repository servers → when user requests reference existing tickets, code, or history
- Guardrails (prevent abuse):
- Do not call a server whose capability is clearly unrelated to the task
- Authenticate MCP servers one at a time (no parallel authentication)
- Keep to roughly 10 external MCP calls or fewer per user turn
- On failure, report to the user and continue with remaining sources rather than retrying
- Scope: This policy applies only to the Local MCP edition (Online / Offline editions are not accessed via an MCP host and are therefore out of scope). It is not included in the shared AI Context artifact (
[AI_Context]<name>.txt).
This edition does not hardcode OS-specific paths. The AI agent detects the OS and proposes a suitable directory for the host.
- Set
working_directoryto empty ("") inmcp_config.json - At session start, the AI calls
suggest_workspace()to retrieve OS-specific candidates:- Windows:
~/Documents/ns_workspace,~/Desktop/ns_workspace,~/ns_workspace - macOS: same as Windows
- Linux:
$XDG_DATA_HOME/ns_workspace(or~/.local/share/ns_workspace),~/Documents/ns_workspace,~/ns_workspace
- Windows:
- The AI proposes one candidate to the user and requests confirmation
- After user approval, the AI calls
set_workspace(path) - All Tools for the remainder of the session operate in that workspace
If you want to share the same path across multiple hosts or always use a fixed directory, set an absolute path (or ~/...) in mcp_config.json under working_directory. The workspace is then active immediately on startup, and there is no need to call suggest_workspace / set_workspace.
set_workspace(path) accepts only paths that satisfy all of the following:
- Resolves to a location under
Path.home()(~//$HOME) - Is writable
- Is created automatically if it does not yet exist
Paths outside the home directory are rejected to prevent unintended access to the host system.
- (First time only) Set
working_directoryto empty inmcp_config.json, or set a fixed path - In Cursor, run
/start_ns_session master='[MASTER]office.nsm'(or instruct the LLM directly) - The LLM calls
suggest_workspace→set_workspaceto establish the workspace (if not already set) - The LLM calls
get_workspace_info→get_ai_contextto understand the current state and reports a summary- If no master exists, create one with
create_empty_master(filename='[MASTER]office.nsm'), or convert an existing.xlsxwithimport_master
- If no master exists, create one with
- Give the LLM instructions such as "Add Core-SW and bind VLAN10 to the Vlan 10 SVI"
- The LLM issues multiple commands via
run_commands - Generate L1 / L2 / L3 diagrams with
export_diagram - To open in Excel, call
export_master_xlsx('[MASTER]office.nsm')
.xlsx masters created before setting up Local MCP can be imported with the following steps:
# 1. Establish the workspace (if not already set)
suggest_workspace()
set_workspace('~/Documents/ns_workspace')
# 2. Import the existing master using its absolute path
import_master(
xlsx_path = '/path/to/[MASTER]office100_v2.xlsx', # absolute path for your OS
target_name = '[MASTER]office100_v2.nsm' # optional
)
# 3. The original .xlsx can be deleted manually (it cannot be used by run_commands)
- Workspace boundary:
set_workspace(path)accepts only paths underPath.home()to prevent unintended access to the host system - Master path validation: Access to files outside the working directory is rejected;
.nsmextension is mandatory run_commandsallowlist: Onlyadd/rename/delete/showare permitted;exportmust go through dedicated Tools- Automatic
--accept-security-risk: Preventsget_ai_contextfrom blocking oninput() - Automatic
--master: Appended internally so the LLM cannot accidentally target an external master import_master/export_master_xlsxoutput location: Always fixed to the working directory- No overwrite of existing files:
create_empty_master,import_master, andexport_master_xlsxeach stop with an error if the output path already exists
+-----------------------+ stdio (JSON-RPC) +----------------------+
| Cursor / Claude Code | <------------------> | ns_mcp_server.py |
| (MCP host) | | (FastMCP) |
+-----------------------+ +----------+-----------+
| sys.path insert
v
+----------------------------+
| network-sketcher_online/ |
| ns_engine/ |
| nsm_adapter.run_cli() |
| nsm_cli.ns_cli_run() |
| ... |
+-------------+--------------+
| file I/O
v
+----------------------------+
| <workspace>/ |
| (set by set_workspace, |
| always under user home) |
| [MASTER]*.nsm |
| [AI_Context]*.txt |
| [Lx_DIAGRAM]*.svg/pptx |
+----------------------------+
| Symptom | Cause / Resolution |
|---|---|
[FATAL] ns_engine directory not found at startup |
The network-sketcher_online/ folder is missing. Place it in the same parent directory as this folder. |
[FATAL] The "mcp" package is not installed |
Run python -m pip install -r requirements_mcp.txt |
| Server does not appear in Cursor's MCP panel | Verify the path in mcp.json is correct and that the Python executable (or virtual environment Python) is specified in command |
get_ai_context returns [ERROR] AI Context file was not generated |
Confirm the master filename starts with [MASTER] and ends with .nsm |
Invalid master filename ... Must start with '[MASTER]' and end with .nsm |
This edition is .nsm only. If you have an .xlsx, convert it with import_master. |
[ERROR] No workspace is active for this session |
Call suggest_workspace() to see candidates, then set_workspace(path) to activate one. |
[ERROR] For safety, the workspace must be under your home directory |
Only paths under your home directory are accepted. Use a symbolic link if you need to reference a path outside your home. |
run_commands returns [ERROR] Verb 'export' is not allowed |
run_commands does not accept export. Use export_diagram or get_ai_context instead. |
The following environment variables are recognised by Claude Code (not used by Cursor) and may help when running Local MCP under Claude Code on slower machines or with very large networks:
| Variable | Purpose |
|---|---|
MCP_TIMEOUT=30000 |
Extends Claude Code's MCP server startup timeout to 30 seconds. The default is around 10 seconds and may be exceeded by the first import of pandas / pyarrow / networkx on slow disks. |
MAX_MCP_OUTPUT_TOKENS=50000 |
Raises Claude Code's per-tool output warning threshold. The default is 10,000 tokens; get_ai_context on large masters can legitimately exceed it. |
Set them when launching Claude Code, e.g.:
MCP_TIMEOUT=30000 MAX_MCP_OUTPUT_TOKENS=50000 claudeThese knobs are documented in the Claude Code MCP docs.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
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.
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.
NS_Online_Demo_301_2_jp.mp4
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.
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
-
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
- 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%).
- 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.
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.
Click the ? icons on the web page to view contextual help for each section and feature. For features not covered in this User Guide, please refer to the User Guide (Offline).
NS_Online_User_Guide_301_en.mp4
NS_Online_User_Guide_301_jp.mp4
NS_Online_User_Guide_301_en.pdf
NS_Online_User_Guide_301_jp.pdf
| Script | Description |
|---|---|
python3 start_ns_online.py |
Start ns_web_start.py as a background process. Any already-running instance (including those started manually) is stopped first. Output is logged to logs/server.log. |
python3 stop_ns_online.py |
Stop all running ns_web_start.py processes, including those started outside of this script. |
Both scripts work on Windows, Mac OS, and Linux.
| Source | Target | Protocol |
|---|---|---|
| Client PC | NS Online | HTTPS |
| Client PC | Configured LLM | HTTPS |
Network Sketcher Online includes the following third-party JavaScript libraries for in-browser file preview. These are bundled in network-sketcher_online/static/ and require no additional installation.
| Library | Version | License | Purpose |
|---|---|---|---|
| PptxViewJS | 1.1.0 | MIT | PowerPoint (.pptx) in-browser preview |
| Chart.js | 4.4.8 | MIT | Chart rendering (PptxViewJS dependency) |
| JSZip | 3.10.1 | MIT or GPLv3 | ZIP / Office file parsing |
| SheetJS (xlsx) | 1.15.0 | Apache-2.0 | Excel (.xlsx) in-browser preview |
| Ver: 3.0.1 (SVG Mode) | 64 NW devices 112 Connections |
256 NW devices 480 Connections |
1024 NW devices 1984 Connections |
4096 NW devices 8064 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
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1-1.Overview.mp4
NoLang (no-lang.com) Otologic (https://otologic.jp) CC BY 4.0
demo_video_NS2.0_free2.mp4
Ver2_6_2_demo2.mp4
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

- 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
Although Network Sketcher now supports multiple formats, it is not intended to replace the main drawing tool, but rather aims for mutually beneficial development.
- 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.
- 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.
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.py- 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 pyyaml
python3 -m pip install ciscoconfparse
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| Language | Link |
|---|---|
| English | Link |
| Japanese | Link |
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;."| Ver: 2.6.1b | 64 NW devices 112 Connections |
256 NW devices 480 Connections |
1024 NW devices 1984 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
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| Feature Item | Local MCP (LLM-driven CLI) | Online Edition | Offline Edition (GUI) | Offline Edition (CLI) |
|---|---|---|---|---|
| Create master file from PowerPoint rough sketch | ❌ | ❌ | ✅ | ❌ |
| Convert master files from Visio, Draw.io, NetBox, CML | ❌ | ❌ | ✅ | ❌ |
| Area placement | ✅ (user-specified) | ✅ (user-specified) | ✅ (automatic) | ✅ (user-specified) |
| Create / delete / modify areas | ✅ | ✅ | ✅ | ✅ |
| Place / create / delete / modify devices | ✅ | ✅ | ✅ | ✅ |
| Place / create / delete / modify waypoints | ✅ | ✅ | ✅ | ✅ |
| Add Layer 1 connections | ✅ | ✅ | ✅ | ✅ |
| Delete Layer 1 connections | ✅ | ✅ | ✅ | |
| Change Layer 1 port names | ✅ | ✅ | ✅ | ✅ |
| Change Layer 1 connection details (e.g., duplex) | ✅ | ✅ | ✅ | ✅ |
| 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 | ❌ | ❌ | ✅ | ❌ |
| Export empty master files (no data) | ✅ | ✅ | ❌ | ✅ |
| Export AI context files | ✅ | ✅ | ✅ | ✅ |
| Export device files | ❌ | ✅ | ✅ | ✅ |
| Generate L1/L2/L3 topology diagrams | ✅ | ✅ | ✅ | ✅ |
Download : Sample.figure5.zip
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
- Yusuke Ogawa - Architect, Cisco | CCIE#17583
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.


