Skip to main content
Glama

Who am I

whoami
Read-onlyIdempotent

Return who you are acting for and what you may do. id is this account's stable opaque id. Call this FIRST (or search): it lists the spaces this connection reaches and what it may do in each, per product — never probe by guessing ids.

Returns { id, actor?: { name, email }, team?: { name }, selector, ceiling: string[], spaces: { [space_id]: { name?: string, classic: string[], papersign: string[], stepper: string[] } }, capabilities: "resolved" | "missing" }. ceiling is the widest set this connection can carry now (your role and team policy can narrow it); each space lists the scopes usable there right now. classic covers Paperform forms, papersign documents, stepper workflows — pass the space id to list, or start from search. name is the space's display name — use it when talking to the person. actor is the person this connection acts for (use their name when talking to them) and team their Paperform team. capabilities: "missing" means the person's current access could not be read, so nothing is reachable until it can — report that rather than retrying.

Example: whoami() → { "id": "pfu_0f3a…", "actor": { "name": "Sam Lee", "email": "sam@example.com" }, "team": { "name": "Acme" }, "selector": { "kind": "all" }, "ceiling": ["classic:forms:read"], "spaces": { "12": { "name": "Marketing", "classic": ["classic:forms:read"], "papersign": [], "stepper": [] } }, "capabilities": "resolved" }

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "whoami"
  }
}

Input Schema

NameRequiredDescriptionDefault
new_claim_codeNoGuests only: issue a fresh claim code, retiring the one issued earlier. Leave unset unless the person no longer has their code.

Output Schema

NameRequiredDescriptionDefault
idNo
teamNo
actorNo
scopesNo
spacesNo
ceilingNo
selectorNo
workspacesNo
capabilitiesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare this a safe, idempotent, non-destructive read, so the description could have coasted; instead it explains what `ceiling` means relative to role and team policy, what per-space scope lists represent, and how to handle `capabilities: "missing"` (report rather than retry). That failure-mode guidance is behavior the annotations cannot express.

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?

The critical instruction is front-loaded and the guidance is dense rather than padded. However, the inline enumeration of the full return shape plus an example partially restates what the output schema already provides, costing some length.

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 an orientation tool with an output schema, the description covers invocation order, id-probing avoidance, field interpretation, downstream routing, and the degraded `capabilities: "missing"` state. Nothing an agent needs in order to call it correctly is 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% and the single optional `new_claim_code` parameter is fully documented in the schema, so the baseline is 3. The description adds nothing about that parameter — the guest claim-code flow is invisible in the prose, which matters because it has a side effect (retiring an existing code).

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?

"Return who you are acting for and what you may do" is a specific verb plus resource, and the description immediately names what it covers (id, actor, team, spaces, capabilities). It is clearly distinguishable from siblings like list, search, and profile because it is explicitly framed as the orientation call.

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 ordering guidance ("Call this FIRST (or search)") and a hard prohibition ("never probe by guessing ids"), then routes follow-up work ("pass the space id to list, or start from search"). Both the when and the alternatives are stated rather than inferred.

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