Skip to main content
Glama
UniFi MCP Server

UniFi MCP Server

list_integration_vpn_servers

Retrieve VPN servers for a specific site through the integration API, with limit and offset controls to page through results.

Instructions

List VPN servers via the integration API.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "site_id": "<site_id>"
    },
    "name": "list_integration_vpn_servers"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of servers to return (1-1000)
offsetNoNumber of servers to skip
site_idYesSite identifier
controllerNoController to run against (see list_controllers). Defaults to the controller chosen with select_controller, then the server default.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.6.4
    • addedInput schema / properties / limit / description
      Added value: +"Maximum number of servers to return (1-1000)"
    • addedInput schema / properties / offset / description
      Added value: +"Number of servers to skip"
    • addedInput schema / properties / site_id / description
      Added value: +"Site identifier"
  2. Changed1 schema field changedv0.6.0
    • addedInput schema / properties / controller
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Controller to run against (see list_controllers). Defaults to the controller chosen with select_controller, then the server default."
      +}
  3. First observedv0.2.0

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden and it discloses essentially nothing: not that this is a read-only listing, not permission requirements, not pagination behavior (limit/offset semantics and defaults), and not the controller resolution chain. For a tool with zero annotation coverage this is a substantial gap.

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

Conciseness4/5

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

One short, front-loaded sentence with no filler or repetition. It is efficient, though its brevity reflects under-specification rather than disciplined economy.

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

Completeness3/5

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

An output schema exists and the input schema is fully documented, so return values and parameter meanings are covered elsewhere. What is missing is any behavioral context — read-only nature, pagination behavior across pages, and how the tool relates to sibling listing tools — leaving the description minimally adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters including the controller default chain are documented in the schema itself. The description adds nothing beyond that, which puts it at the baseline of 3.

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

Purpose3/5

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

The description names a specific verb and resource ("List VPN servers"), so the basic operation is identifiable, but "via the integration API" adds no distinguishing information against siblings like list_integration_devices or list_integration_wans. It never states what a VPN server is in this system or what scope the listing covers.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no prerequisites (e.g., that site_id must come from list_integration_sites), and no exclusions. An agent has to infer the call context from the schema alone.

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

Deploy Server

Other Tools