← Back to directory
N

Network Sketcher (Local MCP)

Official
Local-first, AI-native MCP server for network design automation
GitHub source repository ↗
★ 392 Stars Category · Dev Tools Very popular
59FMRS · C

Network Sketcher (Local MCP) is the AI-native MCP server edition of the Cisco open-source network design tool, maintained by Cisco under the Apache-2.0 license. It exposes 11 tools over stdio, letting LLM clients such as Cursor and Claude Code create Cisco-style network designs, manage device data, and generate L1/L2/L3 topology diagrams (SVG / PowerPoint), combined HTML viewers, device tables, and AI Context files through direct tool calls. Master files are .nsm and stay in a local workspace; the server keeps no internal data storage and does not communicate externally. It is intended for local single-user environments; it requires Python 3.10+, the full repository, and is recommended with Claude Opus 4.7 or later. Limitations include stdio-only transport, no IPv6 support, LLM clients not being able to view binary diagram output directly, and features (VPNs, Flow, creating masters from PowerPoint sketches) not offered in this edition. Overall, it is the official local-first way to connect network design with LLM workflows.

Reliability
10/20
Security and permissions
9/20
Maintenance
14/20
Documentation
15/20
Setup experience
11/20
Read the FMRS scoring method →

Network Sketcher (Local MCP) is the third edition of the Cisco open-source network design tool. It wraps network-sketcher_online/ns_engine/ as a library and exposes the Network Sketcher CLI over the Model Context Protocol through stdio, letting LLM clients such as Cursor and Claude Code drive network design via tool calls. It is AI-native: the LLM executes the CLI directly, with no browser and no copy-paste. It can build Cisco-style network designs, manage device data, and generate L1/L2/L3 topology diagrams (SVG / PowerPoint), combined HTML viewers, device tables, and AI Context files from natural-language workflows. Master files are stored locally in the .nsm format; the server keeps no internal data storage and has no external communication (stdio to the local LLM client only).

Tools

get_workspace_info
Return the active workspace path and the list of .nsm master files (and other NS-generated files) in it. Always safe to call.
suggest_workspace
Suggest OS-appropriate (Windows / macOS / Linux) workspace directory candidates under the user's home, with hints about which exist and are writable. Always safe to call.
set_workspace
Set the active workspace directory for this session. Validates that the path is under the user's home directory, creates it if missing, and confirms it is writable.
create_empty_master
Create a new empty Network Sketcher master file (.nsm) in the active workspace.
get_network_state
Run the standard set of show commands and return aggregated results - a lightweight summary of the network state for the agent.
get_ai_context
Generate the full AI Context file for a master and return its contents (network state plus the full CLI command reference). Recommended bootstrap call before issuing any edits.
run_commands
Execute one or more Network Sketcher CLI commands (add / rename / delete / show) against a .nsm master. Multiple lines are batched into a single subprocess to amortise startup cost. Requires get_ai_context to have been called at least once in this session.
import_master
Convert an existing .xlsx master into a .nsm in the active workspace. Use once at the start of a session to bring an existing .xlsx master under .nsm management.
export_master_xlsx
Convert a .nsm master back to .xlsx for use with Excel or the Network Sketcher Offline edition. The .nsm itself is not modified.
export_diagram
Export an L1, L2, or L3 network diagram for the given .nsm master. Output format is SVG (default, fast, browser-renderable) or PPTX (editable in PowerPoint). When 'area' is omitted, the legacy behaviour is preserved (L1: all_areas_tag, L3: all_areas, L2: first area). When 'area' is supplied, only that single area is generated (L1/L3 require format='svg'; L2 supports area for both formats). Requires get_ai_context to have been called at least once in this session.
export_device_table_html
Export an interactive HTML Device Table preview from a .nsm master (.xlsx masters are rejected). The output is a single self-contained HTML file ('[DEVICE_TABLE]{basename}.html') with six tabs (L1 / L2 / L3 / Attribute / IP Address_Summary / IP Address_List) whose layout matches the Network Sketcher Online edition's Device Preview screen, including sticky-header tables, per-tab CSV/HTML download buttons, and URL-hash initial-tab selection. No external CDN or scripts are referenced, so the file can be opened directly from disk or shared as a single artifact.

Setup

1) Clone the repository: git clone https://github.com/cisco-open/network-sketcher/, then cd network-sketcher/network-sketcher_local_mcp and run python -m pip install -r requirements_mcp.txt.
2) Cursor: add the mcpServers entry to Cursor's MCP configuration file (File > Preferences > Cursor Settings > MCP -> mcp.json), using command python and args pointing to ns_mcp_server.py under your local clone's network-sketcher_local_mcp folder.
3) Claude Code: run claude mcp add network-sketcher -- python "<local-clone-path>/network-sketcher_local_mcp/ns_mcp_server.py"; use --scope user|project as needed.
4) Manual: clone the repository, install Python dependencies, then launch the server directly with python ns_mcp_server.py.
Note that Python 3.10 or later is required (for the MCP SDK), and the full Network Sketcher repository must be present (the network-sketcher_online/ folder is required).

claude_desktop_config.json
{"mcpServers":{"network-sketcher":{"command":"python","args":["<abs-path>/network-sketcher_local_mcp/ns_mcp_server.py"]}}}

Fit and risk

Best for

  • Teams using Cursor or Claude Code who want to drive network design directly through tool calls
  • Local single-user workflows that keep master files on the machine with no external communication
  • Network engineers who need Cisco-style L1/L2/L3 topology diagrams (SVG / PowerPoint), device tables, and AI Context files
  • Users willing to use a model with strong multi-step tool-calling ability (Claude Opus 4.7 or later recommended)

Not for

  • Deployments needing HTTP/SSE transport or multi-user concurrency (stdio, single-user only)
  • Scenarios where the LLM client must directly view PPTX / SVG binary output (the user should open the generated SVG)
  • Environments that cannot run Python or install local dependencies
  • Network designs requiring IPv6 (IPv6 is not supported)
  • Needs for master file creation from PowerPoint sketches, GUI add/delete of VPNs, or Flow management (not offered in this edition)

Required permissions

  • Read and write workspace directories under the user's home directory (set_workspace validates the path is under the home directory and confirms it is writable)
  • Create and read .nsm master files in the active workspace
  • Read a .xlsx file at a given path for import_master
  • Write generated SVG / PPTX diagrams, .xlsx files, and HTML device tables into the active workspace
  • Launch a local Python subprocess to execute Network Sketcher CLI commands

Risks and side effects

  • run_commands batches LLM-generated CLI commands into a local subprocess, so wrong or unintended commands can modify the .nsm master (back up first or experiment with an empty master)
  • import_master and export_master_xlsx read and write files in the workspace; path mistakes or overwrites can affect existing files
  • Imported converter output is only a starting draft and may have data-quality issues requiring review
  • Diagram generation for large networks may take a long time
  • Weaker or older models may struggle to follow 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, the mandatory get_workspace_info to get_ai_context bootstrap)

Troubleshooting

  1. Confirm Python is at least 3.10 (required by the MCP SDK; the engine itself supports 3.9+)
  2. Confirm the repository is fully cloned and the network-sketcher_online/ folder is present
  3. Verify the script path in the MCP client config is the absolute path of your local clone (on Windows, forward slashes or escaped backslashes both work)
  4. For Claude Code registration, confirm the -- separator is used so the script path is passed to python rather than parsed as a claude mcp add argument
  5. If a tool call reports missing context, call get_ai_context first, then run run_commands or export_diagram
  6. If setting the workspace fails, check that the path is under the user's home directory and writable, or call suggest_workspace to see candidates
  7. If diagrams or the device table are not produced, confirm you are using a .nsm master (export_device_table_html rejects .xlsx) and check workspace write permissions

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
Run a Cisco Extension converter, feed ns_commands.txt through run_commands, and build default outputs in one session

Supported clients

CursorFull support
Claude CodeFull support