mcp/firewalla-mcp-server

Verified Publisher

By mcp

Updated 12 months ago

Real-time network monitoring, security analysis, and firewall management through 28 specialized t...

Image
Machine learning & AI
0

10K+

mcp/firewalla-mcp-server repository overview

Firewalla MCP Server

Real-time network monitoring, security analysis, and firewall management through 28 specialized tools. Access security alerts, network flows, device status, and firewall rules directly from your Firewalla device.

What is an MCP Server?

MCP Info

Image Building Info

AttributeDetails
Dockerfilehttps://github.com/amittell/firewalla-mcp-server/blob/d6f8c6ac25701a7eb69c3dfdda312817979329e9/Dockerfile
Commitd6f8c6ac25701a7eb69c3dfdda312817979329e9
Docker Image built byDocker Inc.
Docker Scout Health ScoreDocker Scout Health Score
Verify SignatureCOSIGN_REPOSITORY=mcp/signatures cosign verify mcp/firewalla-mcp-server --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub
LicenceMIT License

Available Tools (28)

Tools provided by this ServerShort Description
create_target_listCreate a new target list
delete_target_listDelete a target list
get_active_alarmsRetrieve current security alerts and alarms from Firewalla firewall
get_alarm_trendsGet historical alarm trend data (alarms generated per day)
get_bandwidth_usageGet top bandwidth consuming devices (convenience wrapper around get_device_status)
get_boxesRetrieve list of Firewalla boxes
get_device_statusCheck online/offline status of devices on Firewalla network
get_flow_dataQuery network traffic flows from Firewalla firewall
get_flow_insightsGet category-based flow analysis including top content categories, bandwidth consumers, and blocked traffic.
get_network_rulesRetrieve firewall rules and conditions
get_network_rules_summaryGet overview statistics and counts of network rules by category (convenience wrapper)
get_offline_devicesGet all offline devices (convenience wrapper around get_device_status)
get_recent_flow_activityGet recent network flow activity snapshot (last 10-20 minutes).
get_rule_trendsGet historical rule trend data (rules created per day)
get_simple_statisticsRetrieve basic statistics overview
get_specific_alarmGet detailed information for a specific Firewalla alarm
get_specific_target_listRetrieve a specific target list by ID
get_statistics_by_boxGet statistics for each Firewalla box (top boxes by blocked flows or security alarms)
get_statistics_by_regionRetrieve statistics by region (top regions by blocked flows)
get_target_listsRetrieve all target lists from Firewalla
pause_ruleTemporarily disable an active firewall rule for a specified duration
resume_ruleResume a previously paused firewall rule, restoring it to active state
search_alarmsSearch alarms using full-text or field filters.
search_devicesSearch devices by name, IP, MAC or status (convenience wrapper with client-side filtering)
search_flowsSearch network flows with advanced query filters.
search_rulesSearch firewall rules by target, action or status.
search_target_listsSearch target lists with client-side filtering (convenience wrapper around get_target_lists)
update_target_listUpdate an existing target list

Tools Details

Tool: create_target_list

Create a new target list

ParametersTypeDescription
namestringTarget list name (required, max 24 chars)
ownerstringOwner: "global" or box GID (required)
targetsarrayArray of domains, IPs, or CIDR ranges (required)
categorystring optionalContent category (optional)
notesstring optionalAdditional description (optional)

Tool: delete_target_list

Delete a target list

ParametersTypeDescription
idstringTarget list ID to delete (required)

Tool: get_active_alarms

Retrieve current security alerts and alarms from Firewalla firewall

ParametersTypeDescription
cursorstring optionalPagination cursor from previous response
groupBystring optionalGroup alarms by field (e.g., type, box)
limitnumber optionalResults per page (optional, default: 200, API maximum: 500)
querystring optionalSearch query for filtering alarms (default: status:1 for active). Use type:N where N is: 1=Security Activity, 2=Abnormal Upload, 3=Large Bandwidth Usage, 4=Monthly Data Plan, 5=New Device, 6=Device Back Online, 7=Device Offline, 8=Video Activity, 9=Gaming Activity, 10=Porn Activity, 11=VPN Activity, 12=VPN Connection Restored, 13=VPN Connection Error, 14=Open Port, 15=Internet Connectivity Update, 16=Large Upload. Examples: type:8 (video), type:10 (porn), region:US, source_ip:*
sortBystring optionalSort alarms (default: ts:desc)

Get historical alarm trend data (alarms generated per day)

ParametersTypeDescription
groupstring optionalGet trends for a specific box group

Tool: get_bandwidth_usage

Get top bandwidth consuming devices (convenience wrapper around get_device_status)

ParametersTypeDescription
periodstringTime period for bandwidth calculation
boxstring optionalFilter devices under a specific Firewalla box
limitnumber optionalNumber of top devices to return

Tool: get_boxes

Retrieve list of Firewalla boxes

ParametersTypeDescription
groupstring optionalGet boxes within a specific group (requires group ID)

Tool: get_device_status

Check online/offline status of devices on Firewalla network

ParametersTypeDescription
limitnumberMaximum number of devices to return (required)
boxstring optionalGet devices under a specific Firewalla box (requires box ID)
groupstring optionalGet devices under a specific box group (requires group ID)

Tool: get_flow_data

Query network traffic flows from Firewalla firewall

ParametersTypeDescription
cursorstring optionalPagination cursor from previous response
groupBystring optionalGroup flows by specified values (e.g., "domain,box")
limitnumber optionalMaximum results (optional, default: 200, API maximum: 500)
querystring optionalSearch query for flows. Supports region:US for geographic filtering, protocol:tcp, blocked:true, domain:*, category:social, etc.
sortBystring optionalSort flows (default: "ts:desc")

Tool: get_flow_insights

Get category-based flow analysis including top content categories, bandwidth consumers, and blocked traffic. Ideal for answering questions like "what porn sites were accessed" or "what social media was used". Replaces time-based trends with actionable insights.

ParametersTypeDescription
categoriesarray optionalFilter to specific content categories (optional)
include_blockedboolean optionalInclude blocked traffic analysis (default: false)
periodstring optionalTime period for analysis (default: 24h)

Tool: get_network_rules

Retrieve firewall rules and conditions

ParametersTypeDescription
limitnumberMaximum number of rules to return (required)
querystring optionalSearch conditions for filtering rules

Tool: get_network_rules_summary

Get overview statistics and counts of network rules by category (convenience wrapper)

ParametersTypeDescription
active_onlyboolean optionalOnly include active rules in summary (default: true)
rule_typestring optionalFilter by rule type

Tool: get_offline_devices

Get all offline devices (convenience wrapper around get_device_status)

ParametersTypeDescription
boxstring optionalFilter devices under a specific Firewalla box
limitnumber optionalMaximum number of offline devices to return
sort_by_last_seenboolean optionalSort devices by last seen time (default: true)

Tool: get_recent_flow_activity

Get recent network flow activity snapshot (last 10-20 minutes). Returns up to 50 most recent flows for immediate analysis. CRITICAL: This is a quick snapshot tool only. Use this for: "what's happening right now?", current security threats, immediate network issues. DO NOT use for: historical analysis (use search_flows), getting more than 50 flows (use search_flows with limit), daily/weekly patterns (use search_flows with time queries like "ts:>24h"). For comprehensive analysis, always prefer search_flows.

Get historical rule trend data (rules created per day)

ParametersTypeDescription
groupstring optionalGet trends for a specific box group

Tool: get_simple_statistics

Retrieve basic statistics overview

ParametersTypeDescription
groupstring optionalGet statistics for specific box group

Tool: get_specific_alarm

Get detailed information for a specific Firewalla alarm

ParametersTypeDescription
alarm_idstringAlarm ID (required for API call)

Tool: get_specific_target_list

Retrieve a specific target list by ID

ParametersTypeDescription
idstringTarget list ID (required)

Tool: get_statistics_by_box

Get statistics for each Firewalla box (top boxes by blocked flows or security alarms)

ParametersTypeDescription
groupstring optionalGet statistics for specific box group
limitnumber optionalMaximum number of results (optional, default: 5)
typestring optionalStatistics type to retrieve

Tool: get_statistics_by_region

Retrieve statistics by region (top regions by blocked flows)

ParametersTypeDescription
groupstring optionalGet statistics for specific box group
limitnumber optionalMaximum number of results (optional, default: 5)

Tool: get_target_lists

Retrieve all target lists from Firewalla

ParametersTypeDescription
limitnumberMaximum number of target lists to return (required)

Tool: pause_rule

Temporarily disable an active firewall rule for a specified duration

ParametersTypeDescription
boxstringBox GID for context (required by API)
rule_idstringRule ID to pause
durationnumber optionalDuration in minutes to pause the rule (optional, default: 60, range: 1-1440)

Tool: resume_rule

Resume a previously paused firewall rule, restoring it to active state

ParametersTypeDescription
boxstringBox GID for context (required by API)
rule_idstringRule ID to resume

Tool: search_alarms

Search alarms using full-text or field filters. Alarm types: 1=Security Activity, 2=Abnormal Upload, 3=Large Bandwidth Usage, 4=Monthly Data Plan, 5=New Device, 6=Device Back Online, 7=Device Offline, 8=Video Activity, 9=Gaming Activity, 10=Porn Activity, 11=VPN Activity, 12=VPN Connection Restored, 13=VPN Connection Error, 14=Open Port, 15=Internet Connectivity Update, 16=Large Upload.

ParametersTypeDescription
cursorstring optionalPagination cursor from previous response
groupBystring optionalGroup alarms by specified fields (comma-separated)
limitnumber optionalMaximum results (optional, default: 200, API maximum: 500)
querystring optionalSearch query using Firewalla syntax. Supported fields: type:1-16 (see alarm types above), resolved:true/false, status:1/2 (active/archived), source_ip:192.168., region:US (country code), gid:box_id, device.name:, message:"text search". Examples: "type:8 AND region:US" (video from US), "type:10 AND status:1" (active porn alerts), "source_ip:192.168.* AND NOT resolved:true"
sortBystring optionalSort alarms (default: ts:desc)

Tool: search_devices

Search devices by name, IP, MAC or status (convenience wrapper with client-side filtering)

ParametersTypeDescription
boxstring optionalFilter devices under a specific Firewalla box
limitnumber optionalMaximum number of devices to return
querystring optionalSearch query using Firewalla syntax. Supported fields: mac:AA:BB:CC:DD:EE:FF, ip:192.168.1., name:iPhone, online:true/false, vendor:Apple, gid:box_id, network.name:, group.name:. Examples: "online:false AND vendor:Apple", "ip:192.168.1. AND name:laptop", "mac:AA:* OR name:phone"
statusstring optionalFilter by online status

Tool: search_flows

Search network flows with advanced query filters. Use this for: historical analysis, specific time ranges, complex filtering, or when you need more than 50 flows. Supports pagination, time-based queries (e.g., "ts:>1h" for last hour), and all flow fields including geographic filtering. For quick "what's happening now" snapshots, use get_recent_flow_activity instead.

ParametersTypeDescription
cursorstring optionalPagination cursor from previous response
groupBystring optionalGroup flows by specified values (e.g., "domain,box")
limitnumber optionalMaximum results (optional, default: 200, API maximum: 500)
querystring optionalSearch query using Firewalla syntax. Supported fields: protocol:tcp/udp, direction:inbound/outbound/local, blocked:true/false, bytes:>1MB, domain:.example.com, region:US (country code), category:social/games/porn/etc, gid:box_id, device.ip:192.168., source_ip:, destination_ip:. Examples: "region:US AND protocol:tcp", "blocked:true AND bytes:>1MB", "category:social OR category:games"
sortBystring optionalSort flows (default: "ts:desc")

Tool: search_rules

Search firewall rules by target, action or status. Supports all rule fields.

ParametersTypeDescription
querystring optionalSearch query using Firewalla syntax. Supported fields: action:allow/block/timelimit, target.type:domain/ip/device, target.value:.facebook.com, status:active/paused, direction:bidirection/inbound/outbound, protocol:tcp/udp, gid:box_id, scope.type:device/network, notes:"description text". Examples: "action:block AND target.value:.social.com", "status:paused", "target.type:domain AND action:block"

Tool: search_target_lists

Search target lists with client-side filtering (convenience wrapper around get_target_lists)

ParametersTypeDescription
categorystring optionalFilter by category
limitnumber optionalMaximum number of target lists to return
ownerstring optionalFilter by owner (global or box gid)
querystring optionalSearch query for target lists. Supported fields: name:Social, owner:global/box_gid, category:social/games/ad/porn/etc, targets:.facebook.com, notes:"description text". Examples: "category:social", "owner:global AND name:Block", "targets:.gaming.com"

Tool: update_target_list

Update an existing target list

ParametersTypeDescription
idstringTarget list ID (required)
categorystring optionalUpdated content category
namestring optionalUpdated target list name (max 24 chars)
notesstring optionalUpdated description
targetsarray optionalUpdated array of domains, IPs, or CIDR ranges

Use this MCP Server

{
  "mcpServers": {
    "firewalla-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "FIREWALLA_MSP_ID",
        "-e",
        "FIREWALLA_BOX_ID",
        "-e",
        "MCP_WAVE0_ENABLED",
        "-e",
        "MCP_READ_ONLY_MODE",
        "-e",
        "MCP_CACHE_ENABLED",
        "-e",
        "MCP_DEBUG_MODE",
        "-e",
        "NODE_ENV",
        "-e",
        "LOG_LEVEL",
        "-e",
        "MCP_CACHE_TTL",
        "-e",
        "MCP_RATE_LIMIT_WINDOW",
        "-e",
        "MCP_RATE_LIMIT_MAX_REQUESTS",
        "-e",
        "FIREWALLA_MSP_TOKEN",
        "mcp/firewalla-mcp-server"
      ],
      "env": {
        "FIREWALLA_MSP_ID": "yourdomain.firewalla.net",
        "FIREWALLA_BOX_ID": "1eb71e38-3a95-4371-8903-ace24c83ab49",
        "MCP_WAVE0_ENABLED": "<nil>",
        "MCP_READ_ONLY_MODE": "<nil>",
        "MCP_CACHE_ENABLED": "<nil>",
        "MCP_DEBUG_MODE": "<nil>",
        "NODE_ENV": "<nil>",
        "LOG_LEVEL": "<nil>",
        "MCP_CACHE_TTL": "<nil>",
        "MCP_RATE_LIMIT_WINDOW": "<nil>",
        "MCP_RATE_LIMIT_MAX_REQUESTS": "<nil>",
        "FIREWALLA_MSP_TOKEN": "your_msp_access_token_here"
      }
    }
  }
}

Why is it safer to run MCP Servers with Docker?

Install from MCP:Hub

Tag summary

Content type

Image

Digest

sha256:af186f868

Size

141.6 MB

Last updated

12 months ago

docker pull mcp/firewalla-mcp-server

This week's pulls

Pulls:

4,161

Last week