Skip to main content
Glama

Persistent preferences

preferences
DestructiveIdempotent

Set travel mode, pace, household, result language, and note defaults once. Omit arguments in later PlaceRoot calls to use saved values, pass new fields to update, or clear=true to delete them.

Instructions

Travel defaults.

State "I bike everywhere, I have a dog" once. Routing tools use the
stored mode when you omit theirs; an explicit argument always wins.
pace and household are stored for later features and do not change
answers yet. lang (#410) is the stored result-language preference: the
name-lookup tools that accept their own `lang` use this one when
theirs is omitted, returning an Overture-tagged name variant (e.g.
"Munich" for "München" with lang="en") — a per-call `lang` always
wins. The same document is the placeroot://preferences resource.

Call with no arguments to read. Pass mode, pace, household tags, a
free-text note, or lang to merge those fields.
clear=true deletes the file and cannot be combined with other fields.
Nothing is sent off this machine.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
langNoResult-language code (2-3 lowercase letters, e.g. "de"). Overture-tagged name variants only — never transliterated or invented. Default: stored preference, else the primary name.
modeNoTravel mode to store. Omit to leave it unchanged.
noteNo
paceNo
clearNo
householdNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Install Server

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already include idempotentHint=true and destructiveHint=true, but the description adds essential behavioral detail: clear=true deletes the file and cannot be combined with other fields, 'Nothing is sent off this machine,' and 'The same document is the placeroot://preferences resource.' It also explains that pace and household do not yet affect answers, and exactly how lang selection works with name-lookup tools. This goes beyond annotations.

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 description is compact and front-loaded: it opens with 'Travel defaults,' immediately states the core use case with an example, then covers edge behaviors (explicit args win, pace/household inert, lang semantics, clear, privacy). Each sentence earns its place and the structure flows from the most common use to edge cases.

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?

With an output schema present, parameter count of 6, and only 33% schema coverage, the description still covers the essential call patterns: read, merge, clear, and how stored values affect other tools. It explains the persistence resource identity and privacy, which is rare and valuable context. There is no missing information an agent needs to correctly call this tool.

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?

The input schema covers individual parameters with descriptions for lang and mode, and an enum for mode. The description itself explains the merge semantics: 'Pass mode, pace, household tags, a free-text note, or lang to merge those fields.' It also gives a concrete example of lang usage ('Munich' for 'München'). Since schema description coverage is only 33%, the description significantly compensates by explaining how parameters behave as a group, though it does not individually document note, pace, and household beyond listing them.

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 clearly states that this tool reads and merges persistent preferences, including travel mode, pace, household, note, and language. It distinguishes itself from routing and name-lookup tools by explaining how stored preferences interact with those tools. The phrase 'Travel defaults' and the explicit 'Call with no arguments to read. Pass mode, pace, household tags, a free-text note, or lang to merge those fields.' provide a specific verb and resource.

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?

The description explicitly explains when to use this tool: to set travel defaults, household info, and stored language preferences. It distinguishes from routing tools by noting 'Routing tools use the stored mode when you omit theirs; an explicit argument always wins.' It also clarifies that pace and household are stored for later features and do not change answers yet, preventing misuse. The clear=true behavior and its exclusivity are stated.

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

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chuofringer/placeroot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server