Skip to content
PalmaPlan — the wiki ← PalmaPlan

Tokens and scopes

An agent never holds power of its own: it acts with the named token it was given, and that token carries the same rules as any token created by hand from Settings › Connections and agents › Advanced access.

Read and write

A token carries one or two scopes: read and write.

A named token born from a POST /oauth/authorize carries the scopes the client requested at the time of authorization (the consent form displays them) — Claude Code generally requests both.

One token per client

Every OAuth client that registers (Claude Code, Claude Desktop should it go through this door, another agent) gets its own token, named after it — "MCP · Claude Code", "MCP · <client name>". It isn't a shared token: two different agents have two different tokens, two different rows under Settings › Connections and agents › Connected applications, and two different attributions in the schedule's log ("Claude (you)", or "Claude (Anne)" if the token acts on behalf of a user other than the instance's owner).

Duration: thirty days, with an automatic refresh valid for ninety days — a single-use refresh, replaced by a fresh pair on every use; the access token's secret changes, but it stays the same named token (the same identifier, the same row in preferences) as long as the client keeps refreshing on time.

Revocation

What an agent can do, and what it can't

An agent can do everything the 101 tools cover: build, modify, analyze, share, publish, export and import schedules — and, since 0.22.0, post or read their own absences (list_absences, add_absence, remove_absence, get_schedule_risks). That's deliberately broad — it's the product.

An agent cannot:

(A note of caution for this repository: the account export and deletion API routes, added in sprint 16, aren't present in the branch lineage this guide is written from — see the sprint's closing notes for what that means about the state of docs/agents/. The absence of any dedicated account-related MCP tool, on the other hand, is verifiable in the current catalog regardless of that point.)

An embedded view is not a named token

In an MCP Apps host, the embedded view (show_schedule) has no token of its own: it reads and writes through the host, under the connector's named token (or OAuth). For a client that does not render MCP Apps (Claude Code), show_schedule returns an address carrying a token valid for one hour, capped to the displayed schedule and to the role of whoever requested it, read-only unless editable: true — a mechanism distinct from this page's named tokens, never visible nor revocable from Settings › Connections and agents › Connected applications. Under that token, the member list carries no e-mail address and the agenda no absence reason. It expires on its own; nothing more to remember here.