Skip to main content

FastMCP server for the Cisco Catalyst SD-WAN Manager (vManage) API, generated dynamically from the official OpenAPI specs.

Project description

catalyst-sdwan-super-mcp

lint test docs PyPI License: Apache 2.0

A FastMCP server that exposes the Cisco Catalyst SD-WAN Manager (vManage) REST API as MCP tools, so any MCP-compatible LLM client (Claude Desktop, Claude Code, Cursor, …) can query and manage your SD-WAN overlay.

Tools are generated dynamically from the official OpenAPI specs — drop in a new spec, the tools rebuild themselves. No per-version Python.

Documentation: https://thomaschristory.github.io/catalyst-sdwan-super-mcp/


Try it in 60 seconds against the Cisco DevNet sandbox

git clone https://github.com/thomaschristory/catalyst-sdwan-super-mcp.git
cd catalyst-sdwan-super-mcp
uv sync

# Credentials for Cisco's public always-on SD-WAN sandbox
cat > .env <<'EOF'
VMANAGE_USERNAME=devnetuser
VMANAGE_PASSWORD=RG!_Yw919_83
EOF

uv run sdwan-mcp        # stdio, read-only, adaptive tool splitting (default)

The shipped config.yaml points at sandbox-sdwan-2.cisco.com and ships specs for vManage 20.15, 20.16, and 20.18 in specs/. 20.18 is the default. You don't need a vManage of your own to try it.

Supported vManage versions: 20.15+. Older releases are out of scope — see issue #13.

Already have specs? Install from PyPI

uv tool install catalyst-sdwan-super-mcp
sdwan-mcp --help

The PyPI package ships the server only — point sdwan.specs_dir in your config.yaml at a directory containing the OpenAPI specs (the specs/ folder from this repo works as-is). Full instructions: docs/getting-started/install.md.


What you get

  • Adaptive tool splitting. A size-driven splitter (max_actions_per_tool, default 150) chops huge OpenAPI sections into right-sized tools — 360 tools on 20.18 RW out of the box, all under the cap. See docs/guides/tool-splitting.md.
  • Read-only by default. --read-write registers POST/PUT/DELETE/PATCH explicitly.
  • Two auth modes: JWT (vManage 20.18.1+) and JSESSIONID + XSRF (older).
  • Three transports: stdio, SSE, streamable-HTTP.
  • Version diff: sdwan-mcp --diff 20.15 20.18 shows added/removed/changed operations before upgrade.
  • Docker: multi-stage image, specs mounted as a volume so versions ship without rebuilding.

Project layout

sdwan_mcp/          source package
  server.py         entrypoint, CLI
  config.py         YAML + env interpolation
  loader.py         spec loading, adaptive splitting, indexing
  auth.py           JWT + session login
  dispatcher.py     httpx client, param routing
  tools.py          dynamic MCP tool registration
  diff.py           version diff utility
tests/              pytest suite (respx for HTTP)
docs/               mkdocs-material site, deployed to GitHub Pages
specs/{version}/    OpenAPI YAML/JSON, one folder per vManage version
.github/workflows/  lint, test, docker, docs, release

Architecture quick look

See docs/architecture/overview.md. At a glance:

LLM ──(MCP)──► FastMCP ──► tools.py ──► dispatcher.py ──► httpx ──► vManage
                  ▲                           │
                  │           auth.py ◄───────┘
              loader.py
                  ▲
              specs/{version}/*.{yaml,json}

Status

v0.0.1 — alpha. Works against the DevNet sandbox; read-only mode is the safe default. Known gaps tracked as GitHub issues.

License: Apache 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

catalyst_sdwan_super_mcp-0.2.0.tar.gz (3.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

catalyst_sdwan_super_mcp-0.2.0-py3-none-any.whl (48.5 kB view details)

Uploaded Python 3

File details

Details for the file catalyst_sdwan_super_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: catalyst_sdwan_super_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 3.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for catalyst_sdwan_super_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4d63336b3f4ea8bde22e3657212db8ac21ddbd20e140525986520d8658b1ba9d
MD5 d4d7e7a6bb0593822aa8f8a54e3896e1
BLAKE2b-256 b9f2dd8339cecb7bd9ac23e7f8e49c42cee3f6ee8be870bec61a373604923d22

See more details on using hashes here.

Provenance

The following attestation bundles were made for catalyst_sdwan_super_mcp-0.2.0.tar.gz:

Publisher: release.yml on thomaschristory/catalyst-sdwan-super-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file catalyst_sdwan_super_mcp-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for catalyst_sdwan_super_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1f466228034a8bee07da5907db18dd325a4d948311ddbc30dc3c962bab756e88
MD5 6d5d59d6eff4149f8d532adf06d56bfa
BLAKE2b-256 ee40f22ec5b7b3b632a6f2cf24ebdb0b0f6558fd7f06ff96b2f3852cb2af5500

See more details on using hashes here.

Provenance

The following attestation bundles were made for catalyst_sdwan_super_mcp-0.2.0-py3-none-any.whl:

Publisher: release.yml on thomaschristory/catalyst-sdwan-super-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page