Skip to main content
Glama

Dayze — Life Context

Link Inventory Person

link_inventory_person

Link one owned contact to one owned Inventory item as its provenance: inherited_from, gifted_by, purchased_from, co_owned_with, borrowed_from or loaned_to. ($0.10; API key required)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
notesNo
person_idYesContact id (from get_people or resolve_person).
request_idNoClient idempotency key (retries return original result).
inventory_idYesThe item id from add_inventory_item, get_inventory or search_inventory.
relationshipYes
idempotency_keyNoAlias for request_id.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
linkNo
accountNoThe Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.
messageNo
person_idNo
provenanceNoWhich connector wrote the record and which connected Dayze account received it.
inventory_idNo
idempotent_replayNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / account
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.",
      +  "properties": {
      +    "display_name": {
      +      "description": "Account display name.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "handle": {
      +      "description": "Account handle, e.g. @goh.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "note": {
      +      "description": "How to disclose the account to the user.",
      +      "type": "string"
      +    },
      +    "qa_fixture": {
      +      "description": "True for a known QA test account: its records are fixture data, not a real life.",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "handle",
      +    "display_name",
      +    "qa_fixture",
      +    "note"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / provenance
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Which connector wrote the record and which connected Dayze account received it.",
      +  "properties": {
      +    "account": {
      +      "additionalProperties": false,
      +      "description": "The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.",
      +      "properties": {
      +        "display_name": {
      +          "description": "Account display name.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "handle": {
      +          "description": "Account handle, e.g. @goh.",
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "note": {
      +          "description": "How to disclose the account to the user.",
      +          "type": "string"
      +        },
      +        "qa_fixture": {
      +          "description": "True for a known QA test account: its records are fixture data, not a real life.",
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "handle",
      +        "display_name",
      +        "qa_fixture",
      +        "note"
      +      ],
      +      "type": "object"
      +    },
      +    "channel": {
      +      "description": "Always mcp_connector.",
      +      "type": "string"
      +    },
      +    "connector": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "kind": {
      +          "description": "oauth or api_key.",
      +          "type": "string"
      +        },
      +        "name": {
      +          "description": "The connected app or API-key label shown to the account owner.",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "kind",
      +        "name"
      +      ],
      +      "type": "object"
      +    },
      +    "source": {
      +      "description": "chatgpt for ChatGPT OAuth writes; mcp for another OAuth app or API key.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "source",
      +    "channel",
      +    "connector",
      +    "account"
      +  ],
      +  "type": "object"
      +}
  2. Changed8 schema fields changed
    • changedInput schema / additionalProperties
      Previous value: -trueNew value: +false
    • addedInput schema / properties / inventory_id / description
      Added value: +"The item id from add_inventory_item, get_inventory or search_inventory."
    • addedInput schema / properties / notes
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / person_id / description
      Added value: +"Contact id (from get_people or resolve_person)."
    • addedInput schema / properties / relationship / enum
      Added value: +[
      +  "inherited_from",
      +  "gifted_by",
      +  "purchased_from",
      +  "co_owned_with",
      +  "borrowed_from",
      +  "loaned_to"
      +]
    • addedOutput schema / properties / idempotent_replay
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / inventory_id
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / person_id
      Added value: +{
      +  "type": "string"
      +}
  3. Changed2 schema fields changed
    • addedInput schema / properties / idempotency_key
      Added value: +{
      +  "description": "Alias for request_id.",
      +  "type": "string"
      +}
    • addedInput schema / properties / request_id
      Added value: +{
      +  "description": "Client idempotency key (retries return original result).",
      +  "type": "string"
      +}
  4. Added

TDQS

A4/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, closed-world write. The description adds genuinely new behavioral facts beyond them: a $0.10 cost per call and an API key requirement, plus the constraint that both sides must be 'owned' entities. It does not say whether re-linking overwrites prior provenance or how to undo it.

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?

Two compact sentences with the core action front-loaded and the cost/auth note kept short in parentheses. The trailing enumeration of all six relationship values is somewhat redundant with the schema enum, costing a little density without adding information.

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?

An output schema exists, so return values need no prose. For a linking tool the description covers the resource pair, ownership constraint, relationship taxonomy, cost and auth — everything needed to call it correctly, with only edge-case error behavior left unspecified.

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 67%, and the one parameter the description does discuss (relationship) is simply the enum already fully enumerated in the schema, so no meaning is added. The undocumented notes, request_id and idempotency_key parameters get no compensating explanation in the description, leaving the baseline 3 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?

States a specific verb (link), the exact resources (one owned contact to one owned Inventory item), the cardinality, and the semantic role ('as its provenance'). The enumerated relationship values make it immediately distinguishable from generic linkers like link_people or link_entities.

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 by the provenance framing, which tells the agent this is for attaching a person as the source/owner of an item. However, it never states when NOT to use it versus link_entities or update_people_link, nor any prerequisites such as both records already existing and being owned.

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.