Skip to main content
Glama

Manage agent identities

identity_write

Create an agent below you, set what an agent below you loads when it connects, publish your capability card, or start a fresh session. Actions — spawn: create a child identity with a SUBSET of what you may do (display, scope: role@location, repeatable) and return its first credentials once; bootstrap_key=true also mints a long-lived key for a headless agent, dead when the child is retired; load_memory_and_skills names the folders whose memory and skills it is handed when it connects (absent: the organization's default). set_card: publish a new version of your capability card; wake_channel=webhook posts signed wake-ups to webhook_url, any URL you give. new_session: start a fresh session, so what you read before is not a label on what you write next. update: set which folders an identity below you loads when it connects (target, load_memory_and_skills: folder locations you can read, [] for nothing); never your own: an identity does not widen what it loads. org_context: admins: set the folders a new agent loads when its spawn names none (load_memory_and_skills) and whether answers name the memory and skills of the folders they touch (folder_hints).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
scopeNospawn: role@location, repeatable; role is viewer, editor or manager (reader, writer and approver are deprecated aliases), e.g. editor@specs/api.md or viewer@*
actionYeswhat to do; each action takes the arguments its line names
reasonNowhy you are doing this, in one line (at most 200 characters); recorded with the event and exported with the log
targetNoupdate: an identity id; defaults to you
vendorNospawn, set_card: who makes the agent, e.g. anthropic
displayNospawn: the child's name
purposeNospawn, set_card: what it is for
lifecycleNospawn: persistent, intermittent (default) or ephemeral
risk_tierNospawn, set_card: low, standard (default) or high
expires_atNospawn: ISO time the child ends; never later than yours
environmentNospawn, set_card: where it runs, e.g. ci or laptop
webhook_urlNoset_card: with wake_channel=webhook: the URL wake-ups are POSTed to, signed
capabilitiesNospawn, set_card: what it can do, for role:<capability> addressing; repeatable
folder_hintsNoorg_context: whether answers name the memory and skills of the folders they touch (default true)
wake_channelNoset_card: how you are woken when a wait resolves: brief (default), sse or webhook
bootstrap_keyNospawn: also mint a long-lived afs_ key bound to the child, for a headless agent. Lives until the child's expires_at, at most 365 days; 90 days when the child has no expiry
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.
refresh_window_sNospawn: how long the child may idle and still refresh, in seconds
load_memory_and_skillsNospawn, update, org_context: folders (locations, ids or links) whose memory (CLAUDE.md, AGENTS.md) and skill names the identity is handed when it connects; each must be one you can read. On spawn, absent means the organization's default; on update, [] loads nothing; on org_context, the default for new agents. A console link (`/d/<Name-Slug>-<32 hex>`, whole or just its id) is accepted too.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
cardNo
cardsNo
endedNo
loadsNo
actionYesthe action that answered
identityNo
positionNo
sessionIdNo
orgContextNo
credentialsNo
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

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.6/5.0
Behavior4/5

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

Annotations declare a non-read-only, open-world, non-idempotent write, and the description adds genuine context beyond them: spawn scope must be a SUBSET of the caller's rights, first credentials are returned once, bootstrap keys expire (90 days without a child expiry, 365 max) and die with the child, and idempotency keys are kept 24 hours. These are exactly the operational facts an agent needs before a write, though return shapes and failure modes are not covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The leading sentence is well front-loaded, but the rest is a single dense paragraph of semicolon-clause fragments that is hard to scan as one unit. Given that the schema already documents every parameter at 100% coverage, much of the per-action parameter restatement is redundant rather than earning its place.

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?

All five actions are covered with their key constraints, and an output schema exists so return values need not be explained. For a 19-parameter, 5-action tool this is nearly complete; only explicit sibling routing and failure/permission edge cases are absent.

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 coverage is 100%, so the baseline is 3. The description largely mirrors the schema (e.g. the load_memory_and_skills defaults for spawn/update/org_context) and mostly adds compact cross-action grouping rather than new meaning. The one added nuance is the '[] loads nothing' / 'absent means default' distinction, which the schema already states.

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?

The opening sentence names four concrete actions (create a child agent, set what it loads, publish your capability card, start a fresh session) with distinct verbs, and each action line restates its own effect. The fifth action, org_context, is only described at the very end and is absent from the headline summary, so the enumeration is slightly incomplete. Nothing compares it to siblings like registry_write, but the resource is unmistakable.

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?

Per-action labels ('spawn:', 'set_card:', 'update:', 'org_context:') implicitly tell the agent which case each action covers, and one real exclusion is stated ('never your own: an identity does not widen what it loads'). However, there is no explicit when-to-use/when-not guidance and no routing to alternative tools for overlapping jobs. Usage is inferable but not spelled out.

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