Cisco SD WAN Server
БесплатноНе проверенEnables natural language automation of Cisco SD-WAN vManage, including device management, template deployment, policy configuration, monitoring, and software up
Описание
Enables natural language automation of Cisco SD-WAN vManage, including device management, template deployment, policy configuration, monitoring, and software upgrades.
README
A FastMCP-based Model Context Protocol server for Cisco SD-WAN vManage automation
Python 3.10+ FastMCP UV License
This package provides a modern FastMCP-based server for managing Cisco SD-WAN through vManage APIs, enabling AI assistants like Claude to automate SD-WAN operations through natural language.
✨ Features
🖥️ Device Management
- List all SD-WAN devices with status
- Get detailed device information and statistics
- Monitor interface statistics and health
- View control connections, BFD sessions, and OMP peers
- Track CPU, memory, and system status
📋 Template Management
- List and browse device/feature templates
- Create new feature and device templates
- Update existing templates with validation
- Deploy templates to single or multiple devices
- Preview template configurations before deployment
- Get template input requirements and variables
- Detach templates from devices
📊 Monitoring & Health
- Real-time alarms and events
- System-wide and per-device statistics
- Interface health and performance metrics
- Device health monitoring (CPU, memory, connectivity)
- BFD session status and control connections
- DPI (Deep Packet Inspection) statistics
- Application usage and threat reports
- Network-wide connection statistics
🔐 Policy Management
- Centralized and localized policy management
- Access control lists (ACLs) and prefix lists
- QoS maps and class maps
- Security policies and firewall rules
- SLA class definitions
- Route policies and redistribution
- Application-aware policies
- Site, VPN, and application lists
📦 Software Management
- List available software images
- Schedule software upgrades
- Track upgrade status and progress
- Automated pre-upgrade validation
📈 Reports & Analytics
- Comprehensive device reports (summary, detailed, health)
- Interface utilization reports
- Transport statistics and path analysis
- Security threat reports
- Application usage analytics
- Custom time-based reporting
🛡️ Safety & Validation
- Confirmation Required: All destructive operations require explicit confirmation
- Pre-execution Validation: Checks device connectivity, template compatibility, dependencies
- Rate Limiting: Prevents rapid-fire operations (configurable cooldowns)
- Auto-backup: Optional automatic backups before deployments/upgrades
- Operation Audit Log: Track all destructive operations with timestamps
- SSL Verification: Configurable for self-signed certificates
🚀 Performance & Architecture
- FastMCP Framework: Modern, efficient MCP implementation
- Async/Await: Non-blocking I/O for high performance
- Connection Pooling: Reusable HTTP connections to vManage
- Smart Caching: Optional caching for frequently accessed data
- UV Package Manager: Fast, reliable dependency management
📦 Installation
Quick Start
# Clone the repository
git clone https://github.com/limtsi/sdwan_mcp.git
cd sdwan_mcp
# Install UV (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies and create .venv automatically
uv sync
# Configure credentials
cp config.yaml.example config.yaml
# Edit config.yaml with your vManage details
# Run the server
python sdwan_fastmcp.py
Detailed Installation
For comprehensive installation instructions, including troubleshooting and Claude Desktop integration, see:
About UV
This project uses UV for fast, modern Python package management:
uv syncautomatically creates.venvand installs all dependencies frompyproject.toml- 10-100x faster than pip for dependency resolution
- Automatic virtual environment management (no manual activation needed)
- PEP 621 compliant with
pyproject.toml
Running the server:
- Simple:
python sdwan_fastmcp.py(UV manages .venv automatically) - Alternative:
uv run python sdwan_fastmcp.py(explicit UV environment)
Both methods work equally well!
⚙️ Configuration
Configure vManage access using either:
1. Environment Variables:
export VMANAGE_URL=https://10.78.54.101
export VMANAGE_USER=admin
export VMANAGE_PASS=your_password
2. Configuration File (config.yaml):
vmanage:
url: https://10.78.54.101
username: admin
password: your_password
verify_ssl: false
🚀 Usage
1. Run as FastMCP server (recommended)
Simply run from the project directory:
python3 sdwan_fastmcp.py
Or use the virtual environment directly:
.venv/bin/python sdwan_fastmcp.py
Note: The .venv environment is managed by UV (via uv sync), but you run the server with standard Python commands.
2. Integrate with Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
macOS/Linux (Recommended):
{
"mcpServers": {
"sdwan": {
"command": "/Applications/MCP/sdwan/.venv/bin/python",
"args": ["/Applications/MCP/sdwan/sdwan_fastmcp.py"],
"env": {
"VMANAGE_URL": "https://10.78.54.101",
"VMANAGE_USER": "admin",
"VMANAGE_PASS": "your_password"
}
}
}
}
Windows:
{
"mcpServers": {
"sdwan": {
"command": "C:/path/to/sdwan/.venv/Scripts/python.exe",
"args": ["C:/path/to/sdwan/sdwan_fastmcp.py"],
"env": {
"VMANAGE_URL": "https://10.78.54.101",
"VMANAGE_USER": "admin",
"VMANAGE_PASS": "your_password"
}
}
}
}
Important: Use the direct path to .venv/bin/python (or .venv/Scripts/python.exe on Windows) for the most reliable configuration. Replace paths with your actual installation directory.
3. Use from Code
from sdwan_tools import SDWANTools
# Initialize tools
tools = SDWANTools()
# Get all devices
devices = await tools.handle_call("sdwan_get_devices", {})
# Deploy a template (with confirmation)
result = await tools.handle_call("sdwan_deploy_template", {
"template_id": "template-123",
"device_ids": ["device-456"],
"confirm": True
})
🛠️ Available Tools
The server provides 50+ tools organized by category:
Device Management
sdwan_get_devices- List all devicessdwan_get_device_status- Get device statussdwan_get_device_stats- Get device statisticssdwan_get_device_health- Comprehensive health metricssdwan_get_device_bfd_sessions- BFD session infosdwan_get_device_control_connections- Control connectionssdwan_get_device_omp_peers- OMP peer informationsdwan_get_device_cpu_usage- CPU utilizationsdwan_get_device_memory_usage- Memory utilizationsdwan_get_device_system_status- Overall system status
Template Management
sdwan_get_templates- List all templatessdwan_get_template_details- Template detailssdwan_create_feature_template- Create feature template ⚠️sdwan_create_device_template- Create device template ⚠️sdwan_update_feature_template- Update feature template ⚠️sdwan_update_device_template- Update device template ⚠️sdwan_delete_feature_template- Delete feature template ⚠️sdwan_delete_device_template- Delete device template ⚠️sdwan_deploy_template- Deploy to devices ⚠️sdwan_detach_template- Detach from devices ⚠️sdwan_get_template_preview- Preview configurationsdwan_get_template_inputs- Get required inputs
Monitoring & Alarms
sdwan_get_alarms- Get active alarmssdwan_get_events- Get system eventssdwan_get_interface_stats- Interface statisticssdwan_get_network_stats- Network-wide statisticssdwan_get_dpi_statistics- DPI statisticssdwan_get_connection_statistics- Connection stats
Reports
sdwan_get_device_report- Comprehensive device reportsdwan_get_interface_report- Interface reportsdwan_get_transport_report- Transport statisticssdwan_get_security_report- Security reportsdwan_get_app_usage_report- Application usagesdwan_get_threat_report- Threat analysis
Software Management
sdwan_get_software_images- List available imagessdwan_schedule_upgrade- Schedule upgrade ⚠️sdwan_get_upgrade_status- Upgrade status
Policy Management
sdwan_get_centralized_policies- List centralized policiessdwan_get_localized_policies- List localized policiessdwan_create_centralized_policy- Create policy ⚠️sdwan_update_centralized_policy- Update policy ⚠️sdwan_delete_centralized_policy- Delete policy ⚠️sdwan_activate_centralized_policy- Activate policy ⚠️sdwan_deactivate_centralized_policy- Deactivate policy ⚠️- And 20+ more policy-related tools...
Generic API
sdwan_api_call- Make custom vManage API calls
⚠️ = Requires confirmation (confirm: true)
📖 Example Usage
Get All Devices
{
"name": "call_sdwan_tool",
"arguments": {
"tool_name": "sdwan_get_devices",
"arguments": {}
}
}
Deploy Template to Devices
{
"name": "call_sdwan_tool",
"arguments": {
"tool_name": "sdwan_deploy_template",
"arguments": {
"template_id": "abc-123",
"device_ids": ["device-1", "device-2"],
"parameters": {
"system_ip": "10.1.1.1",
"hostname": "edge-router-01"
},
"confirm": true
}
}
}
Get Device Health
{
"name": "call_sdwan_tool",
"arguments": {
"tool_name": "sdwan_get_device_health",
"arguments": {
"device_id": "device-123"
}
}
}
Schedule Software Upgrade
{
"name": "call_sdwan_tool",
"arguments": {
"tool_name": "sdwan_schedule_upgrade",
"arguments": {
"upgrade_data": {
"deviceIds": ["device-1", "device-2"],
"imageId": "image-xyz",
"reboot": true
},
"confirm": true
}
}
}
Natural Language with Claude
Once integrated with Claude Desktop, you can use natural language:
"Show me all SD-WAN devices that are currently down"
"Deploy the branch-template to all devices in the Seattle site"
"What are the current alarms in the network?"
"Schedule a software upgrade for all edge routers to version 20.9.2"
🛡️ Safety Features
Confirmation Requirements
All destructive operations require explicit confirmation:
# This will return a confirmation prompt
result = await tools.handle_call("sdwan_deploy_template", {
"template_id": "abc-123",
"device_ids": ["device-1"],
"confirm": False # or omit this field
})
# Response:
{
"requires_confirmation": true,
"operation": "deploy_template",
"template_id": "abc-123",
"device_count": 1,
"message": "Set confirm=true to deploy template"
}
# Actually deploy
result = await tools.handle_call("sdwan_deploy_template", {
"template_id": "abc-123",
"device_ids": ["device-1"],
"confirm": True # Explicit confirmation
})
Pre-execution Validation
The server validates operations before execution:
- Device connectivity checks
- Template compatibility verification
- Dependency validation
- Maintenance window awareness (configurable)
Rate Limiting
Prevents rapid operations that could impact the network:
- Template deployments: 5 minutes between operations
- Software upgrades: 1 hour between operations
- Delete operations: 2 minutes between operations
Configure in config.yaml:
safety:
rate_limits:
template_deploy: 300 # seconds
software_upgrade: 3600
delete_operations: 120
Audit Logging
All destructive operations are logged:
2025-10-15 10:30:45 - sdwan_safety - INFO - Operation: sdwan_deploy_template
2025-10-15 10:30:45 - sdwan_safety - INFO - User: admin
2025-10-15 10:30:45 - sdwan_safety - INFO - Details: {"template_id": "abc-123", "device_ids": ["device-1"]}
2025-10-15 10:30:45 - sdwan_safety - INFO - Status: SUCCESS
🔧 Configuration Options
Basic Configuration
vmanage:
url: https://10.78.54.101
username: admin
password: your_password
verify_ssl: false
timeout: 30
max_retries: 3
Safety Configuration
safety:
enabled: true
require_confirmation: true
validation:
check_device_connectivity: true
check_template_compatibility: true
check_dependencies: true
rate_limits:
template_deploy: 300
software_upgrade: 3600
backup:
auto_backup_before_deploy: true
backup_retention_days: 30
Logging Configuration
logging:
level: INFO # DEBUG, INFO, WARNING, ERROR
audit_operations: true
audit_file: "sdwan_audit.log"
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- FastMCP - Modern MCP framework
- UV - Fast Python package manager
- Cisco SD-WAN - SD-WAN solution
- Model Context Protocol - MCP specification
📞 Support
- Issues: GitHub Issues
- Documentation: Installation Guide
- MCP Docs: Model Context Protocol
🗺️ Roadmap
- Add support for SD-WAN fabric discovery
- Implement advanced policy templates
- Add real-time event streaming
- Support for multi-tenant vManage
- Enhanced error recovery and retry logic
- CLI tool for standalone operations
- Web UI for configuration and monitoring
Built with ❤️ for SD-WAN automation
Установка Cisco SD WAN Server
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/limtsi/sdwan_mcpFAQ
Cisco SD WAN Server MCP бесплатный?
Да, Cisco SD WAN Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Cisco SD WAN Server?
Нет, Cisco SD WAN Server работает без API-ключей и переменных окружения.
Cisco SD WAN Server — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Cisco SD WAN Server в Claude Desktop, Claude Code или Cursor?
Открой Cisco SD WAN Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Cisco SD WAN Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
