firewalla-mcp
This MCP server provides an interface to the Firewalla MSP API, enabling AI assistants to perform read and write operations on Firewalla network security devices. Here's what you can do:
Boxes
List all Firewalla boxes on your MSP account (
list_boxes)Get details for a specific box by GID (
get_box)
Devices
List network devices, optionally filtered by box GID or group ID (
list_devices)
Alarms
List alarms with advanced search syntax, pagination, sorting, and grouping (
list_alarms)Get a specific alarm by box GID and alarm ID (
get_alarm)Delete an alarm (
delete_alarm)
Firewall Rules
List rules with search/filter support (
list_rules)Create new block or allow rules (
create_rule)Pause, resume, or delete rules by ID (
pause_rule,resume_rule,delete_rule)
Network Flows
List network flows with time-range queries, pagination, sorting, and grouping (
list_flows)
Target Lists
List, get, create, update, and delete custom IP/domain target lists (
list_target_lists,get_target_list,create_target_list,update_target_list,delete_target_list)
Trends
Get daily blocked-flow counts (
get_flow_trends) and daily alarm counts (get_alarm_trends), optionally scoped to a box group
Provides tools for managing Firewalla network security boxes, including listing and inspecting boxes, alarms, devices, and flows, as well as creating, pausing, resuming, and deleting firewall rules and target lists through the Firewalla MSP API.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@firewalla-mcplist devices on my Firewalla"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
firewalla-mcp
A local MCP server exposing the Firewalla MSP API — boxes, alarms, rules, devices, flows, target lists, and trends — as tools for Claude Code and other MCP-compatible clients.
Full read/write: list and inspect your Firewalla boxes, alarms, devices, and flows, and create/pause/resume/delete firewall rules and target lists, all from natural-language requests to your AI assistant.
Prerequisites
A Firewalla box managed by Firewalla MSP (the MSP API requires an active MSP subscription), and an MSP API personal access token (MSP dashboard → Settings → API)
uvinstalled (curl -LsSf https://astral.sh/uv/install.sh | sh)
Related MCP server: Firewalla MCP Server
Configuration
The server reads its configuration from environment variables at startup:
Variable | Required | Description |
| yes | Your MSP domain, e.g. |
| yes | Your Firewalla MSP API personal access token |
| no | HTTP timeout in seconds (default |
Resolve the token from a secrets manager rather than storing it in plaintext:
export FIREWALLA_MSP_DOMAIN="your-alias.firewalla.net"
export FIREWALLA_TOKEN="$(op read 'op://Vault/Firewalla PAT/password')" # example using 1Password CLIRegister with Claude Code
No clone needed — run straight from GitHub with uvx:
claude mcp add firewalla \
--env FIREWALLA_MSP_DOMAIN="your-alias.firewalla.net" \
--env FIREWALLA_TOKEN="$(op read 'op://Vault/Firewalla PAT/password')" \
-- uvx --from git+https://github.com/djuntgen/firewalla-mcp firewalla-mcpOr from a local clone:
git clone https://github.com/djuntgen/firewalla-mcp.git && cd firewalla-mcp && uv sync
claude mcp add firewalla \
--env FIREWALLA_MSP_DOMAIN="your-alias.firewalla.net" \
--env FIREWALLA_TOKEN="$(op read 'op://Vault/Firewalla PAT/password')" \
-- uv run --project /path/to/firewalla-mcp firewalla-mcpThis registers the server at local scope (machine-specific, not committed to a shared .mcp.json).
Note on token storage:
--envvalues are stored in plaintext in your MCP client's config file (e.g.~/.claude.json). To keep the token out of persistent config entirely, register a small wrapper script as the command instead — it exports the variables (resolving the token live from your secrets manager) andexecsuvx --from git+https://github.com/djuntgen/firewalla-mcp firewalla-mcp. See SECURITY.md.
Tools
One tool per Firewalla MSP API v2 operation:
Category | Tools |
Boxes |
|
Devices |
|
Alarms |
|
Rules |
|
Flows |
|
Target Lists |
|
Trends |
|
Full read/write — there is no server-side dry-run gate on writes. Rely on your MCP client's normal confirmation prompts before destructive actions (delete_rule, delete_target_list, delete_alarm).
update_rulenote: Firewalla's MSP API has no rule-edit endpoint, soupdate_rulerecreates the rule (create replacement → delete original). The rule id changes, and the returned value reports both the deleted id and the new rule.
Error handling
HTTP 4xx responses fail immediately (no retry), raising
FirewallaAPIError(status_code, body); error bodies are truncated to keep failures readable.HTTP 429 (rate limited) is retried once, honoring
Retry-Afterup to 10s.HTTP 5xx and connection errors are retried once (0.5s backoff) — except for the non-idempotent creates (
create_rule,create_target_list), which are never retried, so a timed-out create can't silently duplicate a firewall rule.Non-JSON responses (e.g. an HTML error page from a proxy) raise a readable error instead of a decoder traceback.
Development
uv sync
uv run pytest -v
uv run ruff check . && uv run ruff format --check .Tests are fully mocked (respx) — no real Firewalla API calls or credentials are needed to run the suite. See CONTRIBUTING.md.
License
Maintenance
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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/djuntgen/firewalla-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server