Skip to main content
Glama

List users or groups

nas_users
Read-only

List NAS user accounts or user-created groups, with optional filters by role, user ID, exact name, or keyword, and inspect account expiry details. Use it to review access and group membership.

Instructions

kind "users" (default) lists NAS accounts (data.users[]): uid is a number, role is in user_base.role, group membership in user_base.groups[], and an expired account has user_base.is_expired true (there is no server-side filter for expiry, so list all and check the field). names matches exactly and is case sensitive. kind "groups" lists user-created groups with their members (data.groups[]); gid there is a string. The built-in groups admin, users and ughomeusers are not listed and cannot take new members. Passwords are never returned. Users cannot be modified or deleted and groups cannot be created through this server; that is done in the NAS control panel.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "nas_users"
  }
}

Input Schema

NameRequiredDescriptionDefault
kindNoList accounts or user-created groups.users
roleNo"users" only: filter by role.
uidsNo"users" only: user IDs.
namesNo"users" only: exact user names.
keywordNo"users" only: text in the user name or description.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, and the description still adds real behavior: passwords are never returned, built-in groups (admin, users, ughomeusers) are excluded and cannot take new members, and expiry requires client-side checking. What it does not cover is pagination or total-result limits, so it falls just short of the top.

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?

It is dense but front-loaded: the first word establishes the mode switch and each following sentence covers a distinct constraint (field shapes, exact matching, hidden built-ins, no passwords, no mutations). The sentences are long and clause-heavy, but none is filler.

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?

There is no output schema, so the description carries the return contract itself and does so: data.users[] with uid as a number and user_base.role / user_base.groups[] / user_base.is_expired, and data.groups[] with gid as a string. Combined with the zero-required-param note and no-server-side-filter warning, an agent has everything needed to call and parse it.

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 3, but the description earns above baseline by stating that `names` matches exactly and is case sensitive, and by tying `role`, `uids`, `names` and `keyword` to the users kind only. A caller cannot derive the exact-match, case-sensitive behavior from the schema text alone.

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 opening clause states a specific verb and resource and immediately splits the tool into its two modes ('kind "users" (default) lists NAS accounts', 'kind "groups" lists user-created groups'). An agent knows exactly what it enumerates and what the default is without opening the schema.

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 explains which mode to pick and when, warns that there is no server-side expiry filter so the caller must list all and check the field, and rules out operations this server does not support (modify/delete users, create groups) by pointing at the NAS control panel.

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