Skip to main content
Glama
zscaler

zscaler-mcp-server

Official
by zscaler

get_zia_user_departments

Read-only

Read ZIA user departments: list with filters, or fetch one by ID (read-only).

Instructions

Read ZIA user departments: list with filters, or fetch one by ID (read-only).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo
queryNoOptional JMESPath expression applied to the results after the API call, for client-side filtering and projection. Examples: "[?enabled==`true`]", "[*].{name: name, id: id}", "length(@)". Omit to get the full records. IMPORTANT: field names are the keys of the returned records, which are usually snake_case (`custom_category`) even where the Zscaler API documents camelCase (`customCategory`) — guessing the spelling yields an empty list that looks like a real answer. If you have not already seen a record from this tool, call it once without `query` and read the keys off the response.
actionNoread
searchNo
sort_byNo
page_sizeNo
sort_orderNo
limit_searchNo
department_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changedv0.15.3
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / action / title
      Added value: +"Action"
    • addedInput schema / properties / department_id / title
      Added value: +"Department Id"
    • addedInput schema / properties / limit_search / title
      Added value: +"Limit Search"
    • addedInput schema / properties / page / title
      Added value: +"Page"
    • addedInput schema / properties / page_size / title
      Added value: +"Page Size"
    • changedInput schema / properties / query / description
      Previous value: -"Optional JMESPath expression applied to the results after the API call, for client-side filtering and projection. Field names are exactly what the Zscaler API returns. Examples: \"[?enabled==`true`]\", \"[*].{name: name, id: id}\", \"length(@)\". Omit to get the full records."New value: +"Optional JMESPath expression applied to the results after the API call, for client-side filtering and projection. Examples: \"[?enabled==`true`]\", \"[*].{name: name, id: id}\", \"length(@)\". Omit to get the full records. IMPORTANT: field names are the keys of the returned records, which are usually snake_case (`custom_category`) even where the Zscaler API documents camelCase (`customCategory`) — guessing the spelling yields an empty list that looks like a real answer. If you have not already seen a record from this tool, call it once without `query` and read the keys off the response."
    • addedInput schema / properties / query / title
      Added value: +"Query"
    • addedInput schema / properties / search / title
      Added value: +"Search"
    • addedInput schema / properties / sort_by / title
      Added value: +"Sort By"
    • addedInput schema / properties / sort_order / title
      Added value: +"Sort Order"
    • addedInput schema / title
      Added value: +"get_zia_user_departmentsArguments"
  2. Changed22 schema fields changedv0.14.0
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / action / description
      Removed value: -"Operation to perform. Use 'read' to paginate/filter departments, 'read' to fetch a department by ID, or 'read_lite' for the lite version."
    • removedInput schema / properties / action / title
      Removed value: -"Action"
    • changedInput schema / properties / department_id / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / department_id / description
      Removed value: -"Department ID. Required for 'read' and 'read_lite' actions."
    • removedInput schema / properties / department_id / title
      Removed value: -"Department Id"
    • removedInput schema / properties / limit_search / description
      Removed value: -"If true, limits the search to match against the department name only."
    • removedInput schema / properties / limit_search / title
      Removed value: -"Limit Search"
    • removedInput schema / properties / page / description
      Removed value: -"Page offset for pagination when listing departments."
    • removedInput schema / properties / page / title
      Removed value: -"Page"
    • removedInput schema / properties / page_size / description
      Removed value: -"Page size for listing departments. Default is 100; maximum is 1000."
    • removedInput schema / properties / page_size / title
      Removed value: -"Page Size"
    • addedInput schema / properties / query
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Optional JMESPath expression applied to the results after the API call, for client-side filtering and projection. Field names are exactly what the Zscaler API returns. Examples: \"[?enabled==`true`]\", \"[*].{name: name, id: id}\", \"length(@)\". Omit to get the full records."
      +}
    • removedInput schema / properties / search / description
      Removed value: -"Search string to match against department name or user attributes."
    • removedInput schema / properties / search / title
      Removed value: -"Search"
    • removedInput schema / properties / service
      Removed value: -{
      -  "default": "zia",
      -  "description": "Zscaler service name. Always 'zia' for this tool.",
      -  "title": "Service",
      -  "type": "string"
      -}
    • removedInput schema / properties / sort_by / description
      Removed value: -"Sort field for listing departments."
    • removedInput schema / properties / sort_by / title
      Removed value: -"Sort By"
    • removedInput schema / properties / sort_order / description
      Removed value: -"Sort order for listing departments."
    • removedInput schema / properties / sort_order / title
      Removed value: -"Sort Order"
    • removedInput schema / title
      Removed value: -"zia_user_department_managerArguments"
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "anyOf": [
      -        {
      -          "additionalProperties": true,
      -          "type": "object"
      -        },
      -        {
      -          "items": {
      -            "additionalProperties": true,
      -            "type": "object"
      -          },
      -          "type": "array"
      -        }
      -      ],
      -      "title": "Result"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "zia_user_department_managerOutput",
      -  "type": "object"
      -}New value: +null
  3. First observedv0.12.7

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description adds '(read-only)' which is redundant. It does add the two operational modes (list/fetch), but lacks details on pagination, error behavior, or response format. With annotations covering safety, the description provides minimal extra behavioral context.

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?

The description is a single concise sentence, front-loaded with the key action and resource. Every word contributes, with no filler or repetition.

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

Completeness2/5

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

With 9 parameters, no output schema, and low schema description coverage, this minimal description is insufficient. It does not address return values, parameter relationships, the distinction between 'list' and 'read_lite', or error handling, leaving the agent under-informed for correct invocation.

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

Parameters2/5

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

Schema description coverage is only 11% (only 'query' is described), and the tool description does not compensate. It mentions 'filters' and 'by ID' but does not map to the 9 parameters or clarify ambiguous ones like 'action' (read_lite) or 'limit_search'. The description adds little meaning beyond the schema itself.

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 clearly states the action ('Read') and resource ('ZIA user departments'), and specifies two modes: 'list with filters' or 'fetch one by ID'. This distinguishes it from sibling tools like get_zia_users and get_zia_user_groups by resource and operation.

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

Usage Guidelines4/5

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

The description implies clear usage contexts: use when you need to list departments with filters or retrieve a single department by ID. It does not explicitly name alternatives or provide when-not-to-use guidance, but the two-mode framing offers sufficient context for selection.

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