使用说明
MCP Meraki服务器
用于Cisco Meraki Dashboard API的完整模型上下文协议(MCP)服务器。该服务器将所有主要的Meraki Dashboard API端点公开为MCP工具,使Claude能够与Meraki网络、设备和配置进行交互和管理。
特征
- API全面覆盖:在所有主要的Meraki API类别中实现80多种工具
- 速率限制:自动速率限制(每个组织5个要求/秒,可配置)
- 智能检索:失败请求的指数回退
- 缓存:半静态数据的智能缓存
- 自动分页:自动处理分页响应
- 类型安全:具有全面类型定义的完整TypeScript实现
- 错误处理:带有HTTP状态代码的详细错误消息
支持的API类别
核心基础设施(优先级1)
- 组织:列表、获取详细信息、库存、许可证、API使用情况
- 网络:CRUD操作、绑定/解除绑定模板、拆分/合并
- 设备:列出、更新、声明、删除、重新启动、闪烁LED、LLDP/CDP
网络设备(优先级2)
- 开关:端口配置、VLAN、堆栈、QoS、路由
- 无线:SSID、RF配置文件、蓝牙、空中元帅
- 电器:VLAN、防火墙规则、VPN、NAT、端口转发、流量整形
运营与管理(优先级3)
- 监控:上行链路状态、连接统计、延迟、事件、流量分析
- 警报:警报设置、webhooks、HTTP服务器
- 相机:质量设置、快照、视频链接、MV Sense、分析
安装
先决条件
- Node.js 18+和npm
- Meraki Dashboard API键(在这里买一个)
- Claude Desktop应用程序或兼容的MCP客户端
设置
-
克隆或导航到项目目录:
cd mcp-meraki -
安装依赖项:
npm install -
配置环境变量:
cp .env.example .env编辑
.env并设置您的Meraki API密钥:MERAKI_API_KEY=your_api_key_here MERAKI_BASE_URL=https://api.meraki.com/api/v1 MERAKI_RATE_LIMIT=5 MERAKI_TIMEOUT=30000 DEBUG=false -
构建项目:
npm run build
Claude桌面配置
将此服务器添加到您的Claude Desktop配置文件中:
macOS/Linux
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"meraki": {
"command": "node",
"args": ["/absolute/path/to/mcp-meraki/dist/index.js"],
"env": {
"MERAKI_API_KEY": "your_api_key_here",
"MERAKI_BASE_URL": "https://api.meraki.com/api/v1",
"MERAKI_RATE_LIMIT": "5"
}
}
}
}
视窗
编辑 %APPDATA%\Claude\claude_desktop_config.json 具有相同的结构。
重要:使用绝对路径并替换 /absolute/path/to/mcp-meraki 根据您的实际项目路径。
使用示例
配置后,您可以要求Claude与您的Meraki基础设施进行交互:
基本示例
"List all my Meraki organizations"
→ Uses: organizations_list
"Show me all networks in organization 123456"
→ Uses: networks_list
"Get details for device with serial Q2HP-ABCD-EFGH"
→ Uses: devices_get
"List all switch ports on device Q2HP-ABCD-EFGH"
→ Uses: switch_ports_list
高级示例
"Create a new network called 'Branch Office' in org 123456 with wireless and appliance"
→ Uses: networks_create
"Update switch port 1 on device Q2HP-ABCD-EFGH to VLAN 10 and enable PoE"
→ Uses: switch_port_update
"Show me the firewall rules for network L_123456789"
→ Uses: appliance_firewall_l3_rules_get
"Get uplink status for all devices in network L_123456789"
→ Uses: monitoring_uplinks_status
"List all events in the last 24 hours for network L_123456789"
→ Uses: monitoring_events
网络运营
"Show me all SSIDs in network L_123456789"
→ Uses: wireless_ssids_list
"Update SSID 0 in network L_123456789 to use WPA2-PSK with password 'SecurePassword123'"
→ Uses: wireless_ssid_update
"Get VPN settings for network L_123456789"
→ Uses: appliance_vpn_settings_get
"Create a port forwarding rule to forward port 80 to 192.168.1.100:8080"
→ Uses: appliance_port_forwarding_rules_update
监控和故障排除
"Show me connection statistics for the last hour in network L_123456789"
→ Uses: monitoring_connection_stats
"Get latency stats for network L_123456789"
→ Uses: monitoring_latency_stats
"Show me all clients connected to device Q2HP-ABCD-EFGH"
→ Uses: devices_clients
"Blink the LEDs on device Q2HP-ABCD-EFGH for 30 seconds"
→ Uses: devices_blink_leds
完整工具列表
组织(8种工具)
organizations_list-列出所有组织organizations_get-获取组织详细信息organizations_update-更新组织设置organizations_inventory-获取设备清单organizations_licenses-列出许可证organizations_license_get-获取许可证详细信息organizations_api_requests-获取API使用历史记录organizations_clone-克隆组织
网络(10个工具)
networks_list-列出网络networks_get-获取网络详细信息networks_create-创建网络networks_update-更新网络networks_delete-删除网络networks_bind-绑定到模板networks_unbind-解除与模板的绑定networks_split-拆分组合网络networks_combine-合并网络networks_firmware_upgrades-获取固件设置
设备(11个工具)
devices_list-列出设备devices_get-获取设备详细信息devices_update-更新设备devices_claim-索赔设备devices_remove-删除设备devices_blink_leds-LED闪烁devices_reboot-重新启动设备devices_clients-列出客户devices_lldp_cdp-获取LLDP/CDP信息devices_loss_latency-获取丢失/延迟历史记录devices_management_interface-获取管理界面
开关(7个工具)
switch_ports_list-列出交换机端口switch_port_get-获取端口详细信息switch_port_update-更新端口配置switch_vlans_list-列出VLANswitch_vlan_create-创建VLANswitch_stacks_list-列出交换机堆栈switch_stack_create-创建交换机堆栈
无线(8个工具)
wireless_ssids_list-列出SSIDwireless_ssid_get-获取SSID详细信息wireless_ssid_update-更新SSIDwireless_rf_profiles_list-列出射频配置文件wireless_rf_profile_create-创建射频配置文件wireless_bluetooth_get-获取蓝牙设置wireless_bluetooth_update-更新蓝牙设置wireless_air_marshal-获取空军元帅结果
电器(11个工具)
appliance_vlans_list-列出VLANappliance_vlan_create-创建VLANappliance_firewall_l3_rules_get-获取防火墙规则appliance_firewall_l3_rules_update-更新防火墙规则appliance_vpn_settings_get-获取VPN设置appliance_vpn_settings_update-更新VPN设置appliance_one_to_one_nat_rules_get-获取1:1 NAT规则appliance_one_to_one_nat_rules_update-更新1:1 NAT规则appliance_port_forwarding_rules_get-获取端口转发规则appliance_port_forwarding_rules_update-更新端口转发规则appliance_traffic_shaping_get-获取流量整形规则
监控(7个工具)
monitoring_uplinks_status-获取上行状态monitoring_connection_stats-获取连接统计信息monitoring_latency_stats-获取延迟统计信息monitoring_events-获取事件日志monitoring_client_health-获取客户健康状况monitoring_device_performance-获取设备性能monitoring_network_traffic-获取流量分析
警报(7个工具)
alerts_settings_get-获取警报设置alerts_settings_update-更新警报设置webhooks_list-列出webhookswebhook_create-创建webhookwebhook_update-更新webhookwebhook_delete-删除webhookwebhook_test-测试webhook
相机(10个工具)
camera_quality_get-获取质量设置camera_quality_update-更新质量设置camera_video_settings_get-获取视频设置camera_video_settings_update-更新视频设置camera_snapshot-生成快照camera_video_link-获取视频链接camera_zones_get-获取检测区域camera_sense_get-获取MV感知设置camera_sense_update-更新MV感知设置camera_analytics_overview-获取分析概述
总计:79个工具
建筑
mcp-meraki/
├── src/
│ ├── index.ts # Main MCP server
│ ├── meraki-client.ts # HTTP client with rate limiting
│ ├── types.ts # TypeScript type definitions
│ ├── utils.ts # Utilities (retry, pagination, cache)
│ └── tools/
│ ├── organizations.ts # Organization tools
│ ├── networks.ts # Network tools
│ ├── devices.ts # Device tools
│ ├── switch.ts # Switch tools
│ ├── wireless.ts # Wireless tools
│ ├── appliance.ts # Appliance tools
│ ├── monitoring.ts # Monitoring tools
│ ├── alerts.ts # Alert/webhook tools
│ └── camera.ts # Camera tools
├── dist/ # Compiled JavaScript
├── package.json
├── tsconfig.json
├── .env # Environment variables (create from .env.example)
└── README.md
发展
脚本
# Build the project
npm run build
# Watch mode (rebuild on changes)
npm run dev
# Run the server
npm start
添加新工具
- 将类型定义添加到
src/types.ts - 在适当的位置创建工具定义和处理程序
src/tools/*.ts文件 - 从文件导出工具和处理程序
- 工具会自动在中注册
src/index.ts
调试
通过设置启用调试日志记录 DEBUG=true 在你的 .env 文件或环境:
DEBUG=true npm start
速率限制
服务器遵守Meraki的API速率限制:
- 默认值:每个组织每秒5个请求
- 可通过以下方式配置
MERAKI_RATE_LIMIT环境变量 - 对速率限制错误进行指数回退的自动重试(429)
- 服务器错误时自动重试(5xx)
错误处理
所有错误的格式都是一致的:
{
"error": true,
"tool": "networks_get",
"status": 404,
"statusText": "Not Found",
"message": "Network not found",
"errors": ["Network L_123456789 not found"],
"endpoint": "/networks/L_123456789"
}
安全最佳实践
- 永不承诺
.env文件 -它包含您的API密钥 - 使用只读API密钥 在可能的情况下
- 将API密钥限制为特定组织 在仪表板中
- 启用IP限制 如果部署到服务器,则在API密钥上
- 定期旋转API键
故障排除
服务器未出现在Claude中
- 检查克劳德桌面日志:
~/Library/Logs/Claude/mcp*.log - 验证配置中的绝对路径是否正确
- 确保项目建成:
npm run build - 检查Node.js版本:
node --version(要求18+)
身份验证错误
- 在中验证API密钥是否正确
.env - 检查API键是否在仪表板中启用
- 确保API密钥可以访问组织
速率限制
- 减少
MERAKI_RATE_LIMIT如果达到极限 - 检查并发请求
- 审查API使用情况:
organizations_api_requests
资源
许可证
麻省理工学院
贡献
欢迎投稿!请随时提交问题或拉取请求。
致谢
内置:
