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自动化分支网络配置
