Skip to main content
Glama

Read access

access_read
Read-onlyIdempotent

Who can read what, what is waiting on access decisions, and who you are in the organization's tree of people and agents. Answers only about what you can read yourself; anything else answers not-found. Actions — who_can_read: the people and groups who reach a folder or document, direct and inherited (location, scope_type). can_see: whether another identity can read something you can read (location or node, who). labels: where a document's content came from (location or node). requests: access requests routed to you to decide. my_requests: the access requests you filed (request_id for one). offers: shares another organization offered you, a person. proposals: shares your agents proposed that wait on your person's decision in the console. shared: what this organization shared out to, and in from, other organizations. settings: whether editors may share a folder or document, and where that setting comes from (location or node). self: who you are, and your capability card. loads: what an identity (target, default you; yours or one below you) loads when it connects: the folders whose memory and skills it is handed, those it can no longer read, and the organization's default for new agents; only folders you can read are named. agents: your ancestors, siblings and children in the tree, with status and last-seen time. card: an identity's capability card and its history (target; default you).

Input Schema

NameRequiredDescriptionDefault
whoNocan_see: an identity id or exact name
nodeNocan_see, labels, settings: the document or folder, by id instead of location. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too.
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
targetNoloads, card: an identity id; defaults to you
locationNowho_can_read: full path from the workspace root, e.g. "handbook/vendor/acme.md" (as printed by browse action=documents or search). A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · can_see, labels, settings: the document or folder, by path; accept_share: the folder to put it in, only you can see (default the top level)
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_idNomy_requests: the request's id, from access_read action=requests or my_requests
scope_typeNowho_can_read: whether location names a folder or one document; default folder, or the kind a pasted link names

Output Schema

NameRequiredDescriptionDefault
cardNo
holdNo
homeNoyour home folder: your journal and standing instructions, read only by you and those above you
seatNo
textNothe answer as prose, for an action that answers in prose
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. Changed1 schema field changed
    • changedInput schema / properties / location / description
      Previous value: -"who_can_read: full path from the workspace root, e.g. \"handbook/vendor/acme.md\" (as printed by browse action=documents or search). A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · can_see, labels, settings: the document or folder, by path"New value: +"who_can_read: full path from the workspace root, e.g. \"handbook/vendor/acme.md\" (as printed by browse action=documents or search). A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too. · can_see, labels, settings: the document or folder, by path; accept_share: the folder to put it in, only you can see (default the top level)"
  5. Added

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly, idempotent, and non-destructive annotations, it discloses the scoping rule and not-found behavior, inherited versus direct access, where requests/offers/proposals originate, and that loads only names readable folders. These details materially constrain what the agent should expect from calls.

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 front-loaded and every clause carries action-specific meaning, with no filler sentences. The dense single-paragraph action list is justified by the 13-action surface but could be made more scannable with bullets.

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?

For a 13-action read tool with full schema descriptions, annotations, and an output schema, the description covers the purpose, scope, and action-level behavior needed to call it correctly. Return-value details are appropriately left to the output schema.

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; the description improves on that by mapping each action to the arguments it consumes (who_can_read → location/scope_type, can_see → location or node/who, my_requests → request_id). It does not add semantics for every parameter, such as seat or acting_as, which remain schema-only.

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 sentence and action-by-action list make the resource and read-only nature explicit: access relationships, pending decisions, and identity/tree data. It distinguishes this tool from access_grant/access_revoke by framing it as a query surface and limiting results to what the caller can read.

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 supplies clear selection context for each action and an important exclusion: 'Answers only about what you can read yourself; anything else answers not-found.' It does not explicitly name sibling alternatives such as access_grant, access_revoke, browse, or search, so it stops short of full when/when-not guidance.

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