Skip to main content
Glama

Make a new list

create_list

Creates a list and returns its edit link and share link. Optionally with a title, unit, trip dates, a trail link and rows, grouped into folders; a row with items nested under it is a group (stakes under a tent, snacks under a day). Keep the edit link: it is the only way to change a list that isn't filed under an account. With read-and-change access to an account the list is filed under it too, and saved_to_account says whether it was; otherwise the list belongs to whoever holds the edit link, as every list does.

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

Input Schema

NameRequiredDescriptionDefault
unitNoThe unit the list displays in. Weights are in grams regardless.
itemsNoRows not placed through a folder above; each may name its folder.
titleNo
foldersNoFolders in order, each with its default classification and, optionally, its rows.
end_dateNoYYYY-MM-DD
trail_urlNoAn http(s) link to the route or trail page.
start_dateNoYYYY-MM-DD
trail_labelNoWhat to call the trail, when the link's own name won't do.
trail_distance_kmNo

Output Schema

NameRequiredDescriptionDefault
itemsYesRows made.
titleYesUser text.
totalsYesWhole grams, summed over every row of the list.
foldersYesFolders made.
edit_linkYesThe write capability. Keep it; it is the only way to change a list that isn't filed under an account.
share_codeYes
share_linkYesThe read capability, safe to pass on.
account_noteNoOnly when the connector sent an access token and the list still could not be filed under its account: the reason, and what to do instead.
saved_to_accountYesTrue when the connector's read-and-change access filed the list under its account, where the owner sees it on every device they sign in on.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / folders / items / properties / items / items / properties / items / items / properties / volume_l
      Added value: +{
      +  "description": "Water only (a name ending in water), in place of qty and weight_g: its whole volume in litres, 1 kg each.",
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / folders / items / properties / items / items / properties / volume_l
      Added value: +{
      +  "description": "Water only (a name ending in water), in place of qty and weight_g: its whole volume in litres, 1 kg each.",
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / items / items / properties / items / items / properties / volume_l
      Added value: +{
      +  "description": "Water only (a name ending in water), in place of qty and weight_g: its whole volume in litres, 1 kg each.",
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / items / items / properties / volume_l
      Added value: +{
      +  "description": "Water only (a name ending in water), in place of qty and weight_g: its whole volume in litres, 1 kg each.",
      +  "minimum": 0,
      +  "type": "number"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / properties / saved_to_account / description
      Previous value: -"True when the connector's read-and-write access token filed the list under its account, where the owner sees it on every device they sign in on."New value: +"True when the connector's read-and-change access filed the list under its account, where the owner sees it on every device they sign in on."
  3. Changed6 schema fields changed
    • addedInput schema / properties / folders / items / properties / items / items / properties / items
      Added value: +{
      +  "description": "Rows nested under this one, making it a group: stakes under a tent, snacks under a day. One level deep; a nested row is in its parent's folder.",
      +  "items": {
      +    "properties": {
      +      "brand": {
      +        "description": "The maker, when known.",
      +        "maxLength": 120,
      +        "type": "string"
      +      },
      +      "catalog_id": {
      +        "description": "A catalog row id from search_catalog. The row takes the catalog's brand, name, variant, gear type and cited weight, and follows catalog corrections; a weight_g given as well is kept as your own figure.",
      +        "maximum": 2147483647,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "classification": {
      +        "description": "base, worn or consumable. Omit to follow the folder's default.",
      +        "enum": [
      +          "base",
      +          "worn",
      +          "consumable"
      +        ],
      +        "type": "string"
      +      },
      +      "gear_type": {
      +        "description": "What kind of thing it is: Tent, Quilt, Trail runners.",
      +        "maxLength": 120,
      +        "type": "string"
      +      },
      +      "kcal": {
      +        "description": "Calories per unit, for food.",
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "name": {
      +        "description": "The product or item name. Required.",
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "needs_cooking": {
      +        "description": "Food to cook on this trip. Each unit assumes one boil for a rough fuel estimate; no quantity or weight changes.",
      +        "type": "boolean"
      +      },
      +      "note": {
      +        "description": "A short free-text note on the row.",
      +        "maxLength": 2000,
      +        "type": "string"
      +      },
      +      "qty": {
      +        "description": "How many. Default 1.",
      +        "maximum": 9999,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "variant": {
      +        "description": "Size, length or configuration that changes the weight, such as Long or 20F.",
      +        "maxLength": 120,
      +        "type": "string"
      +      },
      +      "weight_g": {
      +        "description": "Weight of ONE unit, in grams. Omit when unknown; the list keeps working without it, and a row with a catalog_id takes the catalog's cited weight.",
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "worn_qty": {
      +        "description": "Of qty, how many are worn rather than carried (three pairs of socks, one on your feet). For a row that is entirely worn, set classification to worn instead.",
      +        "minimum": 0,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / items / items / properties / items
      Added value: +{
      +  "description": "Rows nested under this one, making it a group: stakes under a tent, snacks under a day. One level deep; a nested row is in its parent's folder.",
      +  "items": {
      +    "properties": {
      +      "brand": {
      +        "description": "The maker, when known.",
      +        "maxLength": 120,
      +        "type": "string"
      +      },
      +      "catalog_id": {
      +        "description": "A catalog row id from search_catalog. The row takes the catalog's brand, name, variant, gear type and cited weight, and follows catalog corrections; a weight_g given as well is kept as your own figure.",
      +        "maximum": 2147483647,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "classification": {
      +        "description": "base, worn or consumable. Omit to follow the folder's default.",
      +        "enum": [
      +          "base",
      +          "worn",
      +          "consumable"
      +        ],
      +        "type": "string"
      +      },
      +      "gear_type": {
      +        "description": "What kind of thing it is: Tent, Quilt, Trail runners.",
      +        "maxLength": 120,
      +        "type": "string"
      +      },
      +      "kcal": {
      +        "description": "Calories per unit, for food.",
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "name": {
      +        "description": "The product or item name. Required.",
      +        "maxLength": 200,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "needs_cooking": {
      +        "description": "Food to cook on this trip. Each unit assumes one boil for a rough fuel estimate; no quantity or weight changes.",
      +        "type": "boolean"
      +      },
      +      "note": {
      +        "description": "A short free-text note on the row.",
      +        "maxLength": 2000,
      +        "type": "string"
      +      },
      +      "qty": {
      +        "description": "How many. Default 1.",
      +        "maximum": 9999,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "variant": {
      +        "description": "Size, length or configuration that changes the weight, such as Long or 20F.",
      +        "maxLength": 120,
      +        "type": "string"
      +      },
      +      "weight_g": {
      +        "description": "Weight of ONE unit, in grams. Omit when unknown; the list keeps working without it, and a row with a catalog_id takes the catalog's cited weight.",
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "worn_qty": {
      +        "description": "Of qty, how many are worn rather than carried (three pairs of socks, one on your feet). For a row that is entirely worn, set classification to worn instead.",
      +        "minimum": 0,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / account_note
      Added value: +{
      +  "description": "Only when the connector sent an access token and the list still could not be filed under its account: the reason, and what to do instead.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / edit_link / description
      Previous value: -"The write capability. Keep it; it is the only way back into the list."New value: +"The write capability. Keep it; it is the only way to change a list that isn't filed under an account."
    • addedOutput schema / properties / saved_to_account
      Added value: +{
      +  "description": "True when the connector's read-and-write access token filed the list under its account, where the owner sees it on every device they sign in on.",
      +  "type": "boolean"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "title",
      -  "edit_link",
      -  "share_link",
      -  "share_code",
      -  "folders",
      -  "items",
      -  "totals"
      -]New value: +[
      +  "title",
      +  "edit_link",
      +  "share_link",
      +  "share_code",
      +  "folders",
      +  "items",
      +  "totals",
      +  "saved_to_account"
      +]
  4. Changed2 schema fields changed
    • addedInput schema / properties / folders / items / properties / items / items / properties / needs_cooking
      Added value: +{
      +  "description": "Food to cook on this trip. Each unit assumes one boil for a rough fuel estimate; no quantity or weight changes.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / items / items / properties / needs_cooking
      Added value: +{
      +  "description": "Food to cook on this trip. Each unit assumes one boil for a rough fuel estimate; no quantity or weight changes.",
      +  "type": "boolean"
      +}
  5. Changed3 schema fields changed
    • addedInput schema / properties / folders / items / properties / items / items / properties / name / minLength
      Added value: +1
    • addedInput schema / properties / folders / items / properties / name / minLength
      Added value: +1
    • addedInput schema / properties / items / items / properties / name / minLength
      Added value: +1
  6. Changed2 schema fields changed
    • changedInput schema / properties / unit / description
      Previous value: -"The unit the list displays in. Weights are still given in grams."New value: +"The unit the list displays in. Weights are in grams regardless."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "edit_link": {
      +      "description": "The write capability. Keep it; it is the only way back into the list.",
      +      "type": "string"
      +    },
      +    "folders": {
      +      "description": "Folders made.",
      +      "type": "integer"
      +    },
      +    "items": {
      +      "description": "Rows made.",
      +      "type": "integer"
      +    },
      +    "share_code": {
      +      "type": "string"
      +    },
      +    "share_link": {
      +      "description": "The read capability, safe to pass on.",
      +      "type": "string"
      +    },
      +    "title": {
      +      "description": "User text.",
      +      "type": "string"
      +    },
      +    "totals": {
      +      "description": "Whole grams, summed over every row of the list.",
      +      "properties": {
      +        "base_g": {
      +          "description": "In the pack, consumables aside.",
      +          "type": "integer"
      +        },
      +        "carried_g": {
      +          "description": "base_g plus consumable_g: what is on your back.",
      +          "type": "integer"
      +        },
      +        "consumable_g": {
      +          "description": "Food, fuel, water.",
      +          "type": "integer"
      +        },
      +        "item_count": {
      +          "description": "Rows, nested ones included.",
      +          "type": "integer"
      +        },
      +        "kcal": {
      +          "description": "Only when a food row carries calories.",
      +          "type": "number"
      +        },
      +        "total_g": {
      +          "description": "carried_g plus worn_g.",
      +          "type": "integer"
      +        },
      +        "worn_g": {
      +          "description": "On your body.",
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "base_g",
      +        "worn_g",
      +        "consumable_g",
      +        "carried_g",
      +        "total_g",
      +        "item_count"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "title",
      +    "edit_link",
      +    "share_link",
      +    "share_code",
      +    "folders",
      +    "items",
      +    "totals"
      +  ],
      +  "type": "object"
      +}
  7. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent create, so the safety profile is covered. The description adds genuinely non-obvious behavior: two links are returned, ownership depends on whether the caller has read-and-change account access, and the edit link is the only durable handle otherwise. It does not discuss duplicate-call effects or limits, but the idempotency annotation covers the main risk.

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 create action and the returned links, then layers on ownership caveats. Four sentences, no filler, though the final sentence is long and crams account-filing, saved_to_account, and anonymous ownership into one breath.

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 9-parameter create tool with an output schema and annotations, this covers the two things the schema cannot: what comes back and who controls the created resource. Remaining gaps (hierarchy between items and folders, weight/unit conventions) are handled by the schema, not the description.

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 78% and the schema itself is richly annotated (units, weights, catalog_id, classification, nesting rules). The description only names the categories of input (title, unit, dates, trail link, rows, folders) and the one-level group nesting, adding little beyond what the properties already say.

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?

Opens with a specific verb and resource ("Creates a list") plus the return payload (edit link and share link), then enumerates the optional content it accepts. The clause about the edit link being "the only way to change a list that isn't filed under an account" implicitly separates it from edit_list for account-filed lists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives real operational context: use this to mint a list, and be aware that without an account the edit link is the sole handle for later changes. It stops short of naming an alternative tool or stating exclusions, so it is clear context without explicit routing rules.

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.