Skip to main content
Glama

Take access away

access_revoke
Destructive

Take back access or a protection. Each takes effect on the next call of everyone it reaches. Actions — withdraw: withdraw an access request you filed (request_id). withdraw_share: take back a share made to another organization; it is gone from theirs (share_id). release_hold: release a legal hold, so what it covered can be erased again (hold_id). retire: end yourself or an identity below you and everything under it; what they owned passes to the nearest living ancestor and their drafts are purged. One below you first gets distill_window_s (default 3600) to publish.

Input Schema

NameRequiredDescriptionDefault
seatNothe seat token identity_write action=take_seat gave you; pass it on every call while you drive that agent
actionYeswhat to do; each action takes the arguments its line names
reasonNoretire: why you are doing this, in one line (at most 200 characters); recorded with the event and exported with the log
targetNoretire: an identity id; defaults to you
hold_idNorelease_hold: the hold's id, as access_grant action=hold returned it
share_idNowithdraw_share: the share's id, from access_read action=offers, shared or proposals
acting_asNoan agent identity below you (its id, from identity_write action=spawn) to make this one call as, with that agent's narrower access; for a helper whose session signs in as its person
request_idNowithdraw: the request's id, from access_read action=requests or my_requests
idempotency_keyNoAny unique string you choose for this write, e.g. a UUID. If you retry the call with the same key and the same arguments, the first answer is returned and nothing is done twice. Reusing a key for a different request is refused. Keys are kept 24 hours.
distill_window_sNoretire: how long the identity has to publish before it ends; 0 ends it now

Output Schema

NameRequiredDescriptionDefault
cardNo
holdNo
homeNoyour home folder: your journal and standing instructions, read only by you and those above you
seatNo
waitNo
cardsNo
endedNo
loadsNo
acrossNo
actionYesthe action that answered
canSeeNo
labelsNo
emailedNoshare_out when offered or invited: whether the recipient is emailed; when false, send them recipient_link
journalNowith take_seat: the end of your journal, newest last; read it before you carry on
refusedNo
requestNo
identityNo
positionNo
requestsNo
settingsNo
sessionIdNo
invitationNo
orgContextNo
credentialsNo
declassifiedNo
journalEntryNo
organizationNoaccept_share: the organization it went into
retiringUntilNo
webhookSecretNowith a webhook: deliveries are signed in the Standard Webhooks format (webhook-id, webhook-timestamp, webhook-signature); verify them with any Standard Webhooks library and this secret
recipient_linkNoshare_out: when offered, the recipient's inbox for this offer; when invited, the invitation's preview, names only. Absolute; absent when the console's public URL is not configured. It grants no access
not_emailed_reasonNoshare_out when invited: why the recipient is not emailed, when emailed is false

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. Changed64 schema fields changed
    • addedInput schema / properties / seat
      Added value: +{
      +  "description": "the seat token identity_write action=take_seat gave you; pass it on every call while you drive that agent",
      +  "maxLength": 64,
      +  "type": "string"
      +}
    • removedOutput schema / properties / across / items / properties / mount / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / across / items / properties / mount / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / ended / properties / heir / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / ended / properties / heir / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / hold / properties / releasedAt / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / hold / properties / releasedAt / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / home
      Added value: +{
      +  "description": "your home folder: your journal and standing instructions, read only by you and those above you",
      +  "type": "string"
      +}
    • addedOutput schema / properties / identity / properties / handle
      Added value: +{
      +  "description": "an agent's name in the organization: address it as @handle",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / identity / properties / lastSeenAt / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / identity / properties / lastSeenAt / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / identity / properties / sleepUntil
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "woken",
      +        "reply"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "when asleep: what wakes it"
      +}
    • addedOutput schema / properties / identity / properties / status / description
      Added value: +"live, asleep (nothing drives it until it is woken), retired or dead"
    • addedOutput schema / properties / journal
      Added value: +{
      +  "description": "with take_seat: the end of your journal, newest last; read it before you carry on",
      +  "type": "string"
      +}
    • addedOutput schema / properties / journalEntry
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "at": {
      +      "type": "string"
      +    },
      +    "location": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "location",
      +    "at"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / properties / labels / items / properties / declassifiedBy / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / labels / items / properties / declassifiedBy / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / labels / items / properties / derivedBy / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / labels / items / properties / derivedBy / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / labels / items / properties / location / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / labels / items / properties / location / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / position / properties / ancestors / items / properties / handle
      Added value: +{
      +  "description": "an agent's name in the organization: address it as @handle",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / position / properties / ancestors / items / properties / lastSeenAt / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / position / properties / ancestors / items / properties / lastSeenAt / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / position / properties / ancestors / items / properties / sleepUntil
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "woken",
      +        "reply"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "when asleep: what wakes it"
      +}
    • addedOutput schema / properties / position / properties / ancestors / items / properties / status / description
      Added value: +"live, asleep (nothing drives it until it is woken), retired or dead"
    • addedOutput schema / properties / position / properties / children / items / properties / handle
      Added value: +{
      +  "description": "an agent's name in the organization: address it as @handle",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / position / properties / children / items / properties / lastSeenAt / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / position / properties / children / items / properties / lastSeenAt / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / position / properties / children / items / properties / sleepUntil
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "woken",
      +        "reply"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "when asleep: what wakes it"
      +}
    • addedOutput schema / properties / position / properties / children / items / properties / status / description
      Added value: +"live, asleep (nothing drives it until it is woken), retired or dead"
    • addedOutput schema / properties / position / properties / self / properties / handle
      Added value: +{
      +  "description": "an agent's name in the organization: address it as @handle",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / position / properties / self / properties / lastSeenAt / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / position / properties / self / properties / lastSeenAt / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / position / properties / self / properties / sleepUntil
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "woken",
      +        "reply"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "when asleep: what wakes it"
      +}
    • addedOutput schema / properties / position / properties / self / properties / status / description
      Added value: +"live, asleep (nothing drives it until it is woken), retired or dead"
    • addedOutput schema / properties / position / properties / siblings / items / properties / handle
      Added value: +{
      +  "description": "an agent's name in the organization: address it as @handle",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / position / properties / siblings / items / properties / lastSeenAt / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / position / properties / siblings / items / properties / lastSeenAt / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / position / properties / siblings / items / properties / sleepUntil
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "woken",
      +        "reply"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "when asleep: what wakes it"
      +}
    • addedOutput schema / properties / position / properties / siblings / items / properties / status / description
      Added value: +"live, asleep (nothing drives it until it is woken), retired or dead"
    • removedOutput schema / properties / request / properties / approvals / items / properties / approverDisplay / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / request / properties / approvals / items / properties / approverDisplay / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / request / properties / approvals / items / properties / approverId / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / request / properties / approvals / items / properties / approverId / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / request / properties / approvals / items / properties / note / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / request / properties / approvals / items / properties / note / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / request / properties / asked / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / request / properties / asked / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / request / properties / location / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / request / properties / location / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / requests / items / properties / approvals / items / properties / approverDisplay / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / requests / items / properties / approvals / items / properties / approverDisplay / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / requests / items / properties / approvals / items / properties / approverId / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / requests / items / properties / approvals / items / properties / approverId / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / requests / items / properties / approvals / items / properties / note / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / requests / items / properties / approvals / items / properties / note / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / requests / items / properties / asked / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / requests / items / properties / asked / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / requests / items / properties / location / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / requests / items / properties / location / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / seat
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "clientName": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "epoch": {
      +      "description": "raised on every take; a write under an older one is refused",
      +      "type": "number"
      +    },
      +    "expiresAt": {
      +      "description": "renew before then (renew_seat), or the seat is free for the next session",
      +      "type": "string"
      +    },
      +    "token": {
      +      "description": "with take_seat: pass it as `seat` on every call while you drive this agent",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "epoch",
      +    "expiresAt",
      +    "clientName"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / properties / settings / properties / inheritedFrom / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / settings / properties / inheritedFrom / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  3. Changed1 schema field changed
    • addedInput schema / properties / acting_as
      Added value: +{
      +  "description": "an agent identity below you (its id, from identity_write action=spawn) to make this one call as, with that agent's narrower access; for a helper whose session signs in as its person",
      +  "type": "string"
      +}
  4. Added

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the destructive annotation, the description discloses important consequences: effects propagate on the next call, withdrawn shares disappear from the other organization, released holds permit erasure again, and retire cascades to owned content and purges drafts. It also explains the downstream distill window, which is critical behavioral context for a destructive operation.

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 purpose is front-loaded, and the action list is dense but efficient, with every clause conveying a distinct behavior or action requirement. There is no filler or repetition.

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?

Given that the input schema is fully described and an output schema exists, the description supplies the remaining critical context: action meanings, destructive effects, cascading consequences, and timing defaults. Nothing essential for selecting and safely invoking an action is missing.

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 already 100%, but the description adds useful action-to-parameter mapping by naming request_id, share_id, and hold_id for their respective actions, and it states the default distill_window_s of 3600. It does not mention other parameters such as seat, acting_as, reason, or idempotency_key, but those are documented in the schema.

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 opens with a specific verb and resource ('Take back access or a protection') and then enumerates the four supported revoke actions. This makes the tool clearly distinguishable from access_grant and access_read without needing to inspect 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 Guidelines4/5

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

Each action is tied to a concrete situation: withdrawing a filed request, retracting a share to another organization, releasing a legal hold, or retiring an identity. It does not explicitly name when not to use the tool or compare it against sibling alternatives, so it is clear but not fully exhaustive.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources