Skip to main content
Glama
mgcrea
by mgcrea

UniFi: Request

unifi_request
Read-only

Call any UniFi Network API endpoint directly for unsupported resources like WAN interfaces, VPN servers, RADIUS profiles, and DPI tables. Only GET is permitted; get site UUID from list sites first.

Instructions

Escape hatch: call any Integration API endpoint directly, for the parts of the API this server does not wrap — switch stacks, LAG, VPN servers, RADIUS profiles, WAN interfaces, device tags, ACL rules, DNS policies and the DPI reference tables. Paths are relative to the API root, so /sites and /sites/<uuid>/wans, and the site must be a real UUID here — this tool does NOT resolve site names, so get one from unifi_list_sites first. Writes are DISABLED: only GET is permitted. Set UNIFI_ALLOW_WRITES=1 to allow mutations, which also registers the purpose-built write tools.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body, for POST, PUT and PATCH. Sent verbatim.
pathYesPath relative to the Integration API root, starting with `/` — e.g. `/info`, `/sites`, `/sites/<site-uuid>/wans`. Not a full URL.
queryNoQuery parameters, e.g. `{"limit": 50, "filter": "state.eq('OFFLINE')"}`.
methodNoHTTP method. Only GET is available while writes are disabled.GET
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds concrete behavior beyond that: only GET is permitted, site names are not resolved, and UNIFI_ALLOW_WRITES=1 changes the behavior and registers purpose-built write tools. There is no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences deliver purpose, scope, path rules, UUID requirements, and write behavior without filler. The escape-hatch concept is front-loaded, and every sentence contributes meaningful guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an intentionally open-ended raw API tool with no output schema, the description gives all invocation-critical information: scope, relative path format, UUID prerequisite, method restriction, and the environment-variable switch for writes. No obvious required detail is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is already strong. The description adds one crucial parameter-level insight beyond the schema: paths are API-root-relative, not full URLs, and the site must be a real UUID because name resolution is not performed. This is above baseline but not exhaustive across all parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'call any Integration API endpoint directly,' and scopes it to 'the parts of the API this server does not wrap.' This cleanly distinguishes the tool from the sibling wrapper tools without requiring the agent to inspect them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when to use the escape hatch — for unwrapped endpoints — and provides examples. It also warns that site names are not resolved and directs the agent to `unifi_list_sites` first, plus it explains the write-disabled default and how to enable mutations while pointing to purpose-built write tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/mgcrea/mcp-unifi-network'

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