Skip to main content
Glama
drewrad8

Firewalla MCP Server

by drewrad8

MCP Servers

CI codecov

A collection of Model Context Protocol (MCP) servers for network security and monitoring.

Servers

Firewalla MCP Server

A comprehensive MCP server for interacting with Firewalla network security devices. Provides network monitoring, device management, and security rule configuration through MCP tools.

Features

  • Network Monitoring: Query network flows, analyze traffic patterns, detect security events

  • Device Management: List, search, and get details for all network devices

  • Security Rules: Allow/block/deny categories, apps, or specific targets per device

  • Traffic Analysis: Top talkers, blocked traffic, protocol distribution, country stats

  • Trend Data: 24h/7d/30d traffic trends with peak detection

Installation

cd firewalla
npm install
npm run build

Configuration

Option 1: Environment Variables (Recommended)

export FIREWALLA_URL="https://my.firewalla.com"
export FIREWALLA_TOKEN="your-bearer-token"
export FIREWALLA_ID="your-firewalla-device-id"
export LOG_LEVEL="info"  # debug, info, warn, error

Option 2: Runtime Configuration Use the configure_firewalla MCP tool after connecting.

Usage

# Start the server
npm run start

# Development mode (build + run)
npm run dev

Available MCP Tools

Tool

Description

configure_firewalla

Set API credentials (or use env vars)

get_config_status

Check configuration status and source

query_network_flows

Query network flows with time filters

list_devices

List all network devices

get_device_details

Get device info by MAC address

analyze_network_traffic

Traffic analysis (summary, top talkers, blocked, security)

get_device_traffic

Per-device traffic analysis

get_network_overview

Comprehensive network overview

get_cloud_rules

Active cloud security rules

get_traffic_trends

Traffic trends (24h/7d/30d)

get_firewalla_status

Firewalla device status

search_devices

Search devices by name/IP/MAC

update_device_rules

Modify device security rules

Development

Commands

npm run build          # Compile TypeScript
npm run start          # Run the server
npm run dev            # Build and run
npm test               # Run tests
npm run test:watch     # Run tests in watch mode
npm run test:coverage  # Run tests with coverage

Testing

The project uses Vitest for testing with 32 tests covering:

  • API client functionality

  • Error recovery and retry logic

  • Environment variable configuration

  • Structured logging

  • Custom error classes

Architecture

firewalla/
├── server.ts          # Main server implementation
├── server.test.ts     # Test suite
├── vitest.config.ts   # Test configuration
├── package.json       # Dependencies
└── api_samples/       # Reference API responses

Key Components

  • Logger: Structured JSON logging to stderr with configurable levels

  • FirewallaAPI: HTTP client with retry logic and exponential backoff

  • FirewallaMCPServer: MCP server with 13 tools for Firewalla interaction

  • Error Classes: FirewallaAPIError, FirewallaAuthError, FirewallaNetworkError, FirewallaRateLimitError

Error Recovery

The API client includes robust error handling:

  • Automatic retry on 5xx errors and network failures

  • Exponential backoff with jitter

  • Rate limit handling with Retry-After support

  • Request timeouts (30s default)

  • Configurable retry settings

Logging

Structured JSON logs to stderr (stdout reserved for MCP):

{"service":"firewalla-mcp","timestamp":"...","level":"info","message":"Server started","context":{"transport":"stdio"}}

License

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/drewrad8/mcps'

If you have feedback or need assistance with the MCP directory API, please join our Discord server