Skip to main content
Glama

Generate Packing List

generate_packing_list
Idempotent

Create a weather- and activity-aware packing checklist for a trip, grouped into sections and saved as a pinned checklist note. Never changes an existing list: if one already exists it is returned unchanged; use packing_list_regenerate to replace it. Requires the trip to have at least 3 substantive segments. Provide the trip_id from trips_list. For one list per person, pass people (max 6). Tineo builds the list on its servers with its AI model provider, sending the trip's title, dates, destinations, itinerary items, weather forecast, any context_notes, and each person's age band and notes (never their name).

Input Schema

NameRequiredDescriptionDefault
peopleNoOptional. One personalized list per person (max 6), titled with the person's name.
trip_idYesTineo trip ID (from trips_list).
context_notesNoOptional packing-relevant details the user asked to include, such as planned activities or special gear. Pass only what the user wants reflected in the list. Never include health conditions, medical details or other sensitive personal information.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / context_notes / description
      Previous value: -"Optional packing-relevant details the user asked to include, such as planned activities or special gear. Pass only what the user wants reflected in the list."New value: +"Optional packing-relevant details the user asked to include, such as planned activities or special gear. Pass only what the user wants reflected in the list. Never include health conditions, medical details or other sensitive personal information."
    • changedInput schema / properties / people / description
      Previous value: -"Optional. One personalized list per person (max 6). Each name becomes the list's title."New value: +"Optional. One personalized list per person (max 6), titled with the person's name."
    • changedInput schema / properties / people / items / properties / name / description
      Previous value: -"Person's name."New value: +"Person's name or a label such as \"Kid 1\". Used only as the list's title; never sent to the AI model provider."
    • changedInput schema / properties / people / items / properties / notes / description
      Previous value: -"Optional packing-relevant details for this person that the user asked to include."New value: +"Optional packing-relevant details for this person that the user asked to include. Never include health conditions, medical details or other sensitive personal information."
  2. Changed9 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / context_notes / description
      Previous value: -"Details the user stated that should shape the list (ages, activities, events, needs). Max 1000 characters."New value: +"Optional packing-relevant details the user asked to include, such as planned activities or special gear. Pass only what the user wants reflected in the list."
    • addedInput schema / properties / context_notes / maxLength
      Added value: +1000
    • changedInput schema / properties / people / description
      Previous value: -"Optional. One personalized list per person (max 6)."New value: +"Optional. One personalized list per person (max 6). Each name becomes the list's title."
    • addedInput schema / properties / people / items / additionalProperties
      Added value: +false
    • changedInput schema / properties / people / items / properties / notes / description
      Previous value: -"Optional details for this person."New value: +"Optional packing-relevant details for this person that the user asked to include."
    • addedInput schema / properties / people / items / properties / notes / maxLength
      Added value: +1000
    • addedInput schema / properties / people / maxItems
      Added value: +6
    • removedInput schema / properties / replace
      Removed value: -{
      -  "description": "Regenerate and overwrite an existing list, preserving checked items. With people, regenerates only those people's lists. Default false.",
      -  "type": "boolean"
      -}
  3. Changed3 schema fields changed
    • addedInput schema / properties / context_notes
      Added value: +{
      +  "description": "Details the user stated that should shape the list (ages, activities, events, needs). Max 1000 characters.",
      +  "type": "string"
      +}
    • addedInput schema / properties / people
      Added value: +{
      +  "description": "Optional. One personalized list per person (max 6).",
      +  "items": {
      +    "properties": {
      +      "age_band": {
      +        "enum": [
      +          "adult",
      +          "teen",
      +          "child",
      +          "toddler",
      +          "infant"
      +        ],
      +        "type": "string"
      +      },
      +      "name": {
      +        "description": "Person's name.",
      +        "type": "string"
      +      },
      +      "notes": {
      +        "description": "Optional details for this person.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "age_band"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / replace / description
      Previous value: -"Regenerate and overwrite an existing list, preserving checked items. Default false."New value: +"Regenerate and overwrite an existing list, preserving checked items. With people, regenerates only those people's lists. Default false."
  4. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations declare it is a write (readOnlyHint=false), open-world, idempotent, non-destructive operation. The description adds substantial beyond-annotations context: the no-op-if-exists semantics, the 3-segment precondition, the data transmitted to the third-party AI provider, and a privacy statement (names and sensitive health data never sent). This is rich behavioral disclosure.

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 purpose, then the critical no-op/replace distinction, then preconditions and parameters. Slightly long and dense, and the privacy sentence is a touch verbose, but every sentence carries real information. Just short of a 5 due to mild density.

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 a mutation tool with no output schema, the description covers the action, its idempotent/no-op behavior, the precondition, the alternative, parameter semantics, and a privacy boundary for third-party data sharing. Nothing an agent needs to call it correctly is missing.

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 nested people object is thoroughly documented in-schema, so the schema does the heavy lifting. The description adds a little value ('max 6', 'one list per person', 'the person's age band and notes but never their name'), but mostly restates what the schema already states, so baseline 3 is appropriate.

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?

Specific verb+resource ('Create a weather- and activity-aware packing checklist'), plus it names the resulting artifact ('pinned checklist note') and explicitly distinguishes itself from the sibling packing_list_regenerate. An agent can tell it apart from other checklist tools without opening the 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 when-to-use behavior ('Never changes an existing list: if one already exists it is returned unchanged'), names the alternative ('use packing_list_regenerate to replace it'), and states a precondition ('Requires the trip to have at least 3 substantive segments'). Routing and prerequisites are fully specified.

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