Skip to main content
Glama

Set an access deadline

extend
Destructive

Change an existing person-app grant or Funnel access deadline by setting a relative duration or absolute end time, including regranting expired access when allowed.

Instructions

Reset an existing person-app grant or acknowledged Funnel deadline using for from the operation time or an absolute until, extending or shortening access. Returns previous and new deadlines, audience, change time and whether expired access was regranted. Use extend to change an existing deadline; use people_grant to create a person-app grant. who selects the person grant for service; omit who for Funnel, which is owner-only. Confirm target and duration with the owner. Expired access requires regrant=true; revoked people cannot be revived. For Funnel, regrant=true re-enables public internet exposure of an expired Funnel. Changes local state only; no invitations, live tailnet calls or access-log dependency.

Input Schema

NameRequiredDescriptionDefault
forNoRelative lifetime (descending unique units w,d,h,m,s,ms,us,ns) or until <RFC3339|YYYY-MM-DD|YYYY-MM-DDTHH:MM>. Local unless offset given; DST gaps/folds require an offset. Minimum 1h. Presets: 1h, 8h, 24h, 3d, 7d. New grants default to 24h; update omission preserves deadlines. Never requires ack_never for members and device-invited guests; finite guest grants retain the configured maximum.
whoNo
untilNoRFC3339, YYYY-MM-DD or YYYY-MM-DDTHH:MM; local without offset. Mutually exclusive with for.
regrantNo
serviceYes
ack_neverNo

Output Schema

NameRequiredDescriptionDefault
whoNo
serviceYes
audienceYes
regrantedYes
changed_atYes
expires_atYes
previous_expires_atYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.3.0
    • changedInput schema / properties / for / description
      Previous value: -"Relative lifetime (descending unique units w,d,h,m,s,ms,us,ns) or until <RFC3339|YYYY-MM-DD|YYYY-MM-DDTHH:MM>. Local unless offset given; DST gaps/folds require an offset. Minimum 1h. Presets: 1h, 8h, 24h, 3d, 7d. New grants default to 24h; update omission preserves deadlines. Never requires ack_never and a tailnet-member login; device-invited guests have the configured public maximum."New value: +"Relative lifetime (descending unique units w,d,h,m,s,ms,us,ns) or until <RFC3339|YYYY-MM-DD|YYYY-MM-DDTHH:MM>. Local unless offset given; DST gaps/folds require an offset. Minimum 1h. Presets: 1h, 8h, 24h, 3d, 7d. New grants default to 24h; update omission preserves deadlines. Never requires ack_never for members and device-invited guests; finite guest grants retain the configured maximum."
  2. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, but the description adds real context the annotations cannot: regrant=true is required to revive expired access, Funnel regrant re-enables public internet exposure, and changes touch local state only with no invitations, live tailnet calls, or access-log dependency. It stops short of saying precisely what a reset destroys in terms of the prior deadline record, which keeps it off a 5.

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?

Front-loaded with the action and scope, then alternatives, then edge cases; nearly every sentence carries operational meaning. The phrasing is dense and occasionally run-on ('using for from the operation time or an absolute until'), which slightly hurts scanability.

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

Completeness4/5

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

For a destructive, non-idempotent mutation with an output schema (so return values are already covered), the description supplies purpose, routing, prerequisites and the regrant edge case. The remaining omissions are the meaning of 'service' and 'ack_never' — minor against a largely complete picture.

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 low at 33% (only 'for' and 'until' are described), so the description must compensate, and it largely does — it explains 'who' (person grant for service; omit for Funnel), 'for' vs 'until' as relative vs. absolute, and the meaning of regrant for both grant and Funnel cases. 'service' and 'ack_never' remain unexplained in the description, leaving a partial gap.

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?

States a specific verb and resource — reset/extend an existing person-app grant or acknowledged Funnel deadline — with the scope of extension or shortening. It explicitly distinguishes itself from the sibling people_grant (change vs. create), so an agent can route without opening either 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?

Gives explicit alternatives and selection rules: 'use extend to change an existing deadline; use people_grant to create a person-app grant', plus 'who selects the person grant for service; omit who for Funnel, which is owner-only'. It also adds a prerequisite ('Confirm target and duration with the owner') and exclusions ('revoked people cannot be revived').

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