Skip to main content
Glama

Create Item

item.create_humanized

Create a row (item) in any sheet using HUMAN VALUES for its fields — you don't need ids. Provide sheetId and a fields map of attribute name→value; option/select/status/member/team/job values are resolved to the sheet's real values, and an unrecognised value returns an error listing the valid options rather than guessing. Document/Description fields accept MARKDOWN and are stored as rich text. Blocking / Blocked By take item titles, Index (#10) or ids from the same sheet. Returns {itemId}.

Input Schema

NameRequiredDescriptionDefault
fieldsYesAttribute name/code → human value. Select/Status/Member/Team/Job values are matched to the sheet's real options (best-match; an unrecognised value errors with the valid list). e.g. { Status: 'In Progress', Assignee: 'Ali Reza' }
sheetIdYes

Output Schema

NameRequiredDescriptionDefault
urlYesPanel link that opens the row; use it as the target of a markdown link
itemIdYesId of the created row
sheetIdYesSheet the row was created in
spaceIdYesSpace of that sheet; null for a sheet outside a space

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / fields / additionalProperties / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "properties": {
      +            "connectionId": {
      +              "type": "string"
      +            },
      +            "externalId": {
      +              "type": "string"
      +            },
      +            "id": {
      +              "type": "string"
      +            },
      +            "mimeType": {
      +              "type": "string"
      +            },
      +            "name": {
      +              "description": "The stored filename `file.confirm_upload` returned, or the entry's name as read",
      +              "type": "string"
      +            },
      +            "originalName": {
      +              "type": "string"
      +            },
      +            "source": {
      +              "enum": [
      +                "upload",
      +                "gdrive",
      +                "dropbox"
      +              ],
      +              "type": "string"
      +            },
      +            "type": {
      +              "type": "string"
      +            },
      +            "url": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "name"
      +          ],
      +          "type": "object"
      +        }
      +      ]
      +    },
      +    "type": "array"
      +  }
      +]
    • removedOutput schema / properties / spaceId / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / spaceId / type
      Added value: +[
      +  "number",
      +  "null"
      +]
  2. Changed3 schema fields changed
    • addedOutput schema / properties / sheetId
      Added value: +{
      +  "description": "Sheet the row was created in",
      +  "type": "number"
      +}
    • addedOutput schema / properties / spaceId
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Space of that sheet; null for a sheet outside a space"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "itemId",
      -  "url"
      -]New value: +[
      +  "itemId",
      +  "url",
      +  "sheetId",
      +  "spaceId"
      +]
  3. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already flag a non-idempotent, non-destructive, closed-world write, so the description only needs to add failure and resolution behavior — and it does: best-match resolution of select/status/member values, an error listing valid options instead of guessing, and markdown stored as rich text. It stops short of covering unknown attribute names, permission requirements, or whether creation is all-or-nothing.

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?

Dense and front-loaded — the core verb and the human-values premise come first, then field-type semantics, then the return value. It is a single run-on paragraph, so a short list for field-type rules would scan better, 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 two-parameter nested-object mutation with annotations and an output schema, the description covers the resolution rules, error behavior, markdown handling, and dependency field formats that an agent could not infer from the schema. Remaining gaps (permissions, unknown-attribute handling) are minor.

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?

With schema coverage at 50%, the description compensates well: it explains that `fields` is attribute name→human value, that special field types are resolved, that Blocking/Blocked By accept titles, Index notation, or ids, and that document fields take markdown. Only `sheetId` receives no added meaning, but its purpose is self-evident.

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 opens with a specific verb and resource ('Create a row (item) in any sheet') and immediately scopes the mechanism ('using HUMAN VALUES for its fields — you don't need ids'), which separates it from id-based creation paths an agent might otherwise pick.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: 'you don't need ids' hints at when this is preferable, but no sibling is named (e.g. item.create_many, item.update_humanized) and there are no explicit exclusions or prerequisites such as required sheet access or mandatory attributes.

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