Skip to main content
Glama
mcpAD

mcpAD

Find Inactive Users

find_inactive_users
Read-only

Identify Active Directory users whose last logon exceeds a specified number of days, optionally including never-logged-on accounts, and scope results to an OU or domain.

Instructions

Find users whose last logon is older than days (default 90).

Matches lastLogonTimestamp at or before the cutoff. Set include_never=True to also return users that never logged on. Pass base (a DN) to scope to an OU.

Input Schema

NameRequiredDescriptionDefault
baseNo
daysNo
limitNo
domainNo
include_neverNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only declare readOnlyHint, so the description carries most of the burden and does add real semantics: the cutoff rule (at or before the cutoff), the default of 90 days, and the opt-in behavior for never-logged-on accounts. It omits that `lastLogonTimestamp` is replicated with lag (so results can be misleading), and says nothing about result capping via `limit`.

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?

Four short sentences, front-loaded with the core predicate, then the matching rule, then the two behavioral switches. Nothing repeats the schema verbatim and nothing is padded.

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, so return values need no explanation, and readOnlyHint covers the safety profile. Still, for a 5-parameter tool with zero schema descriptions, the missing `limit` and `domain` semantics leave an agent unable to control result size or target a specific domain.

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 0%, so the description must compensate and does explain `days` (with default), `include_never`, and that `base` is a DN. However `limit` (a result cap, which is behaviorally important) and `domain` are never mentioned, leaving two of five parameters undocumented anywhere.

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

Purpose4/5

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

States a specific verb and resource with a precise predicate: users whose last logon is older than `days`, matched on `lastLogonTimestamp`. That is enough for an agent to distinguish it from generic `find_users` or `disabled_users` in the sibling list, though no sibling is named explicitly.

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

Usage Guidelines3/5

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

Gives conditional usage for two parameters ("Set `include_never=True` to also return...", "Pass `base` (a DN) to scope to an OU"), which implies how to shape the query. But there is no guidance on when to prefer this over `find_users`, `disabled_users`, or `find_stale_computers`, nor any exclusions or prerequisites.

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