Skip to main content
Glama

Add or change a location

save_location

Adds a location — a room, closet or shelf — to a property, or, with id, renames one or moves it inside another location of the same property (everything kept there moves with it).

Instructions

Adds a location — a room, closet or shelf — to a property, or, with id, renames one or moves it inside another location of the same property (everything kept there moves with it). To add: name, optionally parentId (inside another location) and children to make inside it in one go — "a garage with three shelves" is name "Garage", children ["Shelf 1", "Shelf 2", "Shelf 3"]; propertyId can be left out when there's only one property. Check list_locations first so you don't add one twice. A new property is save_property. Returns the location (and any children) with ids and paths.

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": "save_location"
  }
}

Input Schema

NameRequiredDescriptionDefault
idNoThe location to change, from list_locations; leave out to add a new one
iconNoAn icon name for the app (optional)
nameNoWhat the household calls it: "Garage", "Hall closet", "Top shelf"
notesNoAnything else worth keeping about it
childrenNoTo add: names of locations to make inside it in one go, ["Shelf 1", "Shelf 2"]
parentIdNoThe location it's inside (a shelf in a closet), from list_locations; null: directly in the property
propertyIdNoTo add: the property, from list_locations; can be left out when there's only one

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2026.11.10

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only say readOnly=false, destructive=false, openWorld=false, so the description carries the real weight and does disclose the key side effect: moving a location takes everything stored there with it, and children are created atomically in one call. It also states the return shape (locations with ids and paths). It leaves open whether existing child locations are reparented on a move, which is the one behavioral gap.

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?

Front-loads the add-vs-edit split and uses a concrete example rather than abstract prose. The single dense paragraph with em-dash asides makes it slightly hard to scan, but no sentence is filler.

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?

For a 7-parameter mutation tool with no output schema, the description covers mode selection, the duplicate-check workflow, the sibling for properties, and the return value. Remaining gap is the move-cascade edge case for nested child locations.

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 earns extra by explaining the id/parentId interplay (id alone renames, id plus parentId relocates within the same property) and by giving a worked children example ("a garage with three shelves"). icon and notes are left entirely to the schema, which is acceptable given full coverage.

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?

States a specific verb and resource ("Adds a location — a room, closet or shelf — to a property") and immediately splits the create vs. edit modes by the presence of id. An agent can distinguish it from save_property, list_locations, and the other save_* siblings without inspecting any schema.

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 routing: "Check list_locations first so you don't add one twice" and "A new property is save_property." It also states the precondition that propertyId can be omitted when only one property exists, which is the main ambiguity an agent would otherwise hit.

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