Meraki分支网络自动化配置服务器

一个基于YAML模板和LLM的自动化工具,用于通过自然语言指令快速配置完整的Cisco Meraki分支网络,包括VLAN、SSID、防火墙规则和VPN隧道等。

  • by crwickha
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 crwickha/mcp_automation_demo

使用说明

Meraki分行配置自动化MCP服务器

一种模型上下文协议(MCP)服务器,从YAML模板提供完整的Cisco Meraki分支网络。将您的网络标准定义为模板,连接LLM,并通过自然语言部署整个分支站点——VLAN、SSID、防火墙规则、VPN隧道。

运作原理

服务器通过MCP公开了五个工具,任何兼容的客户端(n8n、Claude Desktop、Claude Code)都可以调用这些工具:

工具 说明
auto_list_templates 列出具有层描述和配置的可用模板
auto_create_branch_network 从模板提供完整的分支网络(支持模拟运行)
auto_list_networks 列出主注册表中跟踪的所有网络
auto_get_network_config 检索受管网络的完整配置
auto_update_branch_network 修改或删除受管网络——添加/删除VLAN、SSID、防火墙规则、标签(支持模拟运行)

LLM读取模板,了解您的网络设计,并通过Meraki Dashboard API执行供应。网络注册表以YAML文件的形式跟踪每个受管网络的配置,作为LLM的配置备份和上下文。

模板系统

模板是YAML文件 templates/ 目录。包括 branch.yaml 定义了三个层次:

  • 小 --公司+访客(2个VLAN、2个SSID、访客隔离防火墙、VPN通话)
  • 中等 --添加VoIP(3个VLAN、3个SSID、VoIP到公司允许规则)
  • 大 --添加物联网(4个VLAN、4个SSID、完整的VLAN间分段)

模板使用根据网络名称自动计算的变量:

变量 示例(站点114) 计算
{name} 114-兰利 完整网络名称
{location} Langley 破折号后的文字
{site_number} 114 破折号前的数字
{site_high} 0 site_number // 256
{site_low} 114 site_number % 256
{site_low_voip} 115 site_low + 1
{site_low_iot} 116 site_low + 2

此寻址方案支持多达65279个具有可预测、不重叠子网的唯一站点。

这是一个示例模板。 用您自己的标准替换VLAN、SSID、防火墙规则、寻址方案和VPN配置。为不同的站点类型(零售、仓库、数据中心)添加新模板。服务器在启动时从templates目录加载所有YAML文件。

快速开始

git clone https://github.com/crwickha/mcp_automation_demo.git
cd mcp_automation_demo
cp .env.example .env

编辑 .env 与你的价值观:

MERAKI_API_KEY=your-meraki-api-key
MERAKI_ORG_ID=your-org-id
CLOUDFLARE_TUNNEL_TOKEN=your-tunnel-token

配置Cloudflare隧道以将主机名路由到 http://automation-mcp:3003那么:

docker compose up -d

验证:

curl https://your-tunnel-hostname/health

连接客户端

n8n: 添加带有端点的MCP客户端工具节点 http://automation-mcp:3003/mcp (相同的Docker网络)或 https://your-tunnel-hostname/mcp (外部)。

克劳德桌面/克劳德代码: 在配置中添加隧道URL作为MCP服务器端点。

客户端自动发现五个工具。法学硕士根据您的指示决定打哪个电话。

项目结构

├── server.py                  # MCP server (5 tools, Meraki API, registry management)
├── templates/
│   └── branch.yaml            # Branch network template (small/medium/large tiers)
├── network_registry.yaml      # Master registry of all managed networks
├── docker-compose.yml         # Automation MCP server + Cloudflare Tunnel
├── Dockerfile                 # Python 3.11 slim container
├── requirements.txt           # aiohttp, meraki, pyyaml
└── .env.example               # Environment variable template

定制

  • 模板 --编辑 templates/branch.yaml 或者为不同的站点类型添加新的YAML文件
  • 寻址 --修改 compute_site_octets() 在 server.py 或与IPAM系统集成
  • VPN集线器 --替换模板中的集线器网络ID
  • 无线身份验证 --从PSK更改为802.1X、RADIUS,或在SSID配置中打开
  • 其他工具 --通过在中定义模式和处理程序来添加新的MCP工具 server.py

博客文章

有关设计、模板系统和集成模式的详细演练,请参阅随附的博客文章: 使用MCP和Cisco Meraki自动化分支网络配置