MCP server for the Defined Networking API.
uv tool install git+https://github.com/quickvm/defined-mcp.gitTo install a specific version or branch:
uv tool install git+https://github.com/quickvm/defined-mcp.git@mainFor local development:
git clone git@github.com:quickvm/defined-mcp.git
cd defined-mcp
uv tool install --editable .Set the DEFINED_API_KEY environment variable to your Defined Networking API key.
Get one from your admin panel.
export DEFINED_API_KEY=dnkey-...claude mcp add defined_mcp -- defined-mcp serveThen restart Claude Code.
defined-mcp checkdefined-mcp servelist_hosts— List hosts with filters (role, blocked, lighthouse, relay)get_host— Get host detailscreate_host— Create a host/lighthouse/relayupdate_host— Update a host (full replacement)delete_host— Delete a hostblock_host/unblock_host— Block/unblock a hostadd_host_tag/remove_host_tag— Add/remove a tag on a hostcreate_enrollment_code— Generate enrollment codecreate_host_and_enrollment_code— Create host + enrollment code
list_roles/get_role— List/get roles with firewall rulescreate_role/update_role— Create/update roles (full replacement)delete_role— Delete a roleadd_firewall_rule— Add a firewall rule to a role (flat params, no JSON)remove_firewall_rule— Remove a firewall rule by index
list_tags/get_tag— List/get tagscreate_tag/update_tag— Create/update tags with config overridesdelete_tag— Delete a tagadd_tag_config_override— Add/replace a config override on a tagremove_tag_config_override— Remove a config override by key
list_networks/get_network— List/get networkscreate_network/update_network— Create/update networks
list_routes/get_route— List/get routes with firewall rulescreate_route/update_route— Create/update routes (full replacement)delete_route— Delete a routeadd_route_firewall_rule— Add a firewall rule to a routeremove_route_firewall_rule— Remove a route firewall rule by index
list_audit_logs— Audit log with filterslist_downloads— Software download links (unauthenticated)
This repo includes a Claude Code skill for interactive network management.
When you run Claude Code from this repo, the /network-architect command is
available automatically.
To use the skill from any project, copy it to your Claude Code profile:
cp -r .claude/skills/network-architect ~/.claude/skills/Performs a security and configuration audit of your Defined Networking account. Fetches all networks, roles, tags, and hosts, then reports:
- Roles with missing or overly permissive firewall rules
- Dead tags (zero hosts assigned)
- Hosts with no tags, outdated dnclient versions, or stale last-seen times
- Firewall coverage summary per role with port/protocol/tag details
Interactive firewall policy design session. Asks about your services, access requirements, and segmentation needs, then proposes:
- Role structure (what each host type IS)
- Tag taxonomy (access tags like
ssh:allow, identity tags likeuser-type:admin) - Firewall rules per role in table format with AND logic (role + tags)
Implements a network design using atomic tools (add_firewall_rule,
add_host_tag, etc.). Reads current state first, shows a diff, asks for
confirmation, then verifies after applying.