From meraki
Use this skill when working with the Cisco Meraki MX security appliance -- reviewing and updating L3 outbound firewall rules (meraki_appliance_firewall_l3_get/update) and checking site-to-site VPN status (meraki_appliance_vpn_status_get). Firewall updates replace the entire ruleset and are high-impact.
How this skill is triggered — by the user, by Claude, or both
Slash command
/meraki:security-applianceWhen to use
When working with the Meraki MX appliance -- reviewing/updating L3 firewall rules and checking site-to-site VPN status. Use when: meraki firewall, meraki mx, l3 firewall, firewall rules, meraki vpn, site-to-site vpn, autovpn, security appliance, firewall review, or vpn status.
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
The Meraki **MX** is a cloud-managed security appliance combining routing, stateful firewall, SD-WAN, and Auto VPN. This skill covers the two curated MX capabilities: reviewing and updating the **Layer 3 outbound firewall** ruleset, and checking **site-to-site VPN** status. Firewall changes are high-impact -- the update tool replaces the entire ruleset, so read before you write.
The Meraki MX is a cloud-managed security appliance combining routing, stateful firewall, SD-WAN, and Auto VPN. This skill covers the two curated MX capabilities: reviewing and updating the Layer 3 outbound firewall ruleset, and checking site-to-site VPN status. Firewall changes are high-impact -- the update tool replaces the entire ruleset, so read before you write.
MX L3 outbound rules are an ordered list evaluated top-to-bottom; the first match wins. Each rule has:
| Field | Values | Notes |
|---|---|---|
policy | allow / deny | Action on match |
protocol | tcp / udp / icmp / icmp6 / any | Layer 4 protocol |
srcCidr | CIDR / any / VLAN object | Source network |
srcPort | port / range / any | Source port(s) |
destCidr | CIDR / any / FQDN | Destination network |
destPort | port / range / any | Destination port(s) |
comment | free text | Human label -- always populate |
syslogEnabled | bool | Log matches to syslog |
There is always an implicit default allow rule at the bottom of the outbound list. Rules you configure sit above it.
meraki_appliance_firewall_l3_get
Parameters:
network_id -- The MX network (required)Example response:
{
"rules": [
{
"comment": "Block outbound SMB to internet",
"policy": "deny",
"protocol": "tcp",
"srcCidr": "any",
"srcPort": "any",
"destCidr": "any",
"destPort": "445",
"syslogEnabled": true
},
{
"comment": "Default rule",
"policy": "allow",
"protocol": "any",
"srcCidr": "any",
"srcPort": "any",
"destCidr": "any",
"destPort": "any"
}
]
}
meraki_appliance_firewall_l3_update
Parameters:
network_id -- The MX network (required)rules -- The complete ordered ruleset (required)CRITICAL: The update replaces the entire ruleset. It is not additive. Any existing rule you omit is deleted. Always:
meraki_appliance_firewall_l3_getto fetch the current rules- Modify the list in place (add/remove/reorder)
- Send the full modified list back
- Do not include the implicit default rule unless the Dashboard shows it as editable
A mistake here can cut off a site's internet or open it up. Present a clear before/after diff and require explicit user confirmation before writing.
Flag rules that weaken the security posture:
policy: allow, protocol: any, srcCidr: any, destCidr: any, destPort: any. This is effectively "allow everything" and usually redundant or dangerous.3389 RDP, 22 SSH, 445 SMB, 23 Telnet) from any source.syslogEnabled: false on security-relevant denies reduces visibility.Meraki Auto VPN builds IPsec tunnels between MX appliances in the same org automatically. An MX participates as a hub or spoke (or is disabled). The status endpoint reports peer connectivity and export/import of subnets.
meraki_appliance_vpn_status_get
Parameters:
network_id -- The MX network (required)Example response:
{
"networkId": "L_123456789012345678",
"networkName": "HQ",
"deviceStatus": "online",
"vpnMode": "hub",
"exportedSubnets": [
{ "subnet": "192.168.1.0/24", "name": "HQ LAN" }
],
"merakiVpnPeers": [
{ "networkId": "L_222", "networkName": "Branch-A", "reachability": "reachable" },
{ "networkId": "L_333", "networkName": "Branch-B", "reachability": "unreachable" }
],
"thirdPartyVpnPeers": []
}
reachability: unreachable on a peer means the tunnel is down -- the two sites cannot route the exported subnets between them.spoke that cannot reach its hub is isolated from the VPN mesh.deviceStatus first -- if the local MX is offline, every tunnel will read down and the real problem is the appliance/uplink, not VPN config.meraki_appliance_firewall_l3_get for the networkmeraki_appliance_firewall_l3_get and show the current rulesmeraki_appliance_firewall_l3_update with the full modified rulesetget to verify the change landed as intendedmeraki_appliance_vpn_status_get per MX network (or sweep across networks)deviceStatus is online before trusting peer reachabilityreachability: unreachableCause: Malformed rule (bad CIDR, invalid port range, unknown protocol) or missing required field
Solution: Validate each rule against the schema; re-get to compare against a known-good shape
Cause: The network has no MX appliance, or the network ID is wrong
Solution: Confirm the network's product types include appliance; verify the network ID
Cause: The local MX is offline or its uplink failed -- not necessarily a VPN misconfiguration Solution: Check device and uplink status (see the troubleshooting skill) before diagnosing VPN config
get the current firewall ruleset before any update -- the update replaces everythingdeviceStatus is online before interpreting VPN peer reachabilitynpx claudepluginhub wyre-technology/msp-claude-plugins --plugin merakiCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.