Skip to main content
Glama

Add company to collection

exim__collection__items__add

Adds a company to a collection by company id or website URL (creating the company record if needed), with optional priority and product.

Input Schema

NameRequiredDescriptionDefault
eventNoBooth or event attached to this row
productNoRow product
priorityNoPriority bucket
companyIdNocompany UUID. EITHER this OR companyUrl required.
companyUrlNoCompany website URL (e.g. https://<company-domain>). Provide this or companyId.
companyNameNoCompany display name when providing a website URL.
collectionIdNoCollection ID (e.g. mn7abc...)
collectionNameNoCollection name.

Output Schema

NameRequiredDescriptionDefault
dataYes
statsNo
_debugNo
summaryYes
warningsNo
nextActionsYes
correlationIdNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changed
    • addedInput schema / not
      Added value: +{
      +  "anyOf": [
      +    {
      +      "not": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "collectionId": {
      +                "minLength": 1,
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "collectionId"
      +            ]
      +          },
      +          {
      +            "properties": {
      +              "collectionName": {
      +                "minLength": 1,
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "collectionName"
      +            ]
      +          }
      +        ]
      +      }
      +    },
      +    {
      +      "not": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "companyId": {
      +                "minLength": 1,
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "companyId"
      +            ]
      +          },
      +          {
      +            "properties": {
      +              "companyUrl": {
      +                "minLength": 1,
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "companyUrl"
      +            ]
      +          }
      +        ]
      +      }
      +    }
      +  ]
      +}
    • removedInput schema / properties / --collectionId
      Removed value: -{
      -  "description": "Collection ID (e.g. mn7abc...)",
      -  "type": "string"
      -}
    • removedInput schema / properties / --collectionName
      Removed value: -{
      -  "description": "Collection name. Resolved to ID server-side.",
      -  "type": "string"
      -}
    • removedInput schema / properties / --companyId
      Removed value: -{
      -  "description": "company UUID. EITHER this OR companyUrl required.",
      -  "type": "string"
      -}
    • removedInput schema / properties / --companyName
      Removed value: -{
      -  "description": "Company display name (used when upserting from companyUrl). Optional but recommended.",
      -  "type": "string"
      -}
    • removedInput schema / properties / --companyUrl
      Removed value: -{
      -  "description": "Company canonical URL (e.g. https://<company-domain>). Triggers upsert into companies. EITHER this OR companyId required.",
      -  "type": "string"
      -}
    • removedInput schema / properties / --event
      Removed value: -{
      -  "description": "Booth or event attached to this row",
      -  "type": "string"
      -}
    • removedInput schema / properties / --priority
      Removed value: -{
      -  "description": "Priority bucket",
      -  "enum": [
      -    "high",
      -    "medium",
      -    "low"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / --product
      Removed value: -{
      -  "description": "Row product",
      -  "type": "string"
      -}
    • addedInput schema / properties / collectionId
      Added value: +{
      +  "description": "Collection ID (e.g. mn7abc...)",
      +  "maxLength": 8000,
      +  "type": "string"
      +}
    • addedInput schema / properties / collectionName
      Added value: +{
      +  "description": "Collection name.",
      +  "maxLength": 8000,
      +  "type": "string"
      +}
    • addedInput schema / properties / companyId
      Added value: +{
      +  "description": "company UUID. EITHER this OR companyUrl required.",
      +  "format": "uuid",
      +  "maxLength": 8000,
      +  "type": "string"
      +}
    • addedInput schema / properties / companyName
      Added value: +{
      +  "description": "Company display name when providing a website URL.",
      +  "maxLength": 8000,
      +  "type": "string"
      +}
    • addedInput schema / properties / companyUrl
      Added value: +{
      +  "description": "Company website URL (e.g. https://<company-domain>). Provide this or companyId.",
      +  "maxLength": 8000,
      +  "type": "string"
      +}
    • addedInput schema / properties / event
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 8000,
      +      "type": "string"
      +    },
      +    {
      +      "type": [
      +        "null",
      +        "boolean",
      +        "number",
      +        "string",
      +        "array",
      +        "object"
      +      ]
      +    }
      +  ],
      +  "contentSchema": {
      +    "type": [
      +      "null",
      +      "boolean",
      +      "number",
      +      "string",
      +      "array",
      +      "object"
      +    ]
      +  },
      +  "description": "Booth or event attached to this row"
      +}
    • addedInput schema / properties / priority
      Added value: +{
      +  "description": "Priority bucket",
      +  "enum": [
      +    "high",
      +    "medium",
      +    "low"
      +  ],
      +  "maxLength": 8000,
      +  "type": "string"
      +}
    • addedInput schema / properties / product
      Added value: +{
      +  "description": "Row product",
      +  "maxLength": 8000,
      +  "type": "string"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$defs": {
      +    "value0": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "companyId": {
      +          "type": "string"
      +        },
      +        "itemId": {
      +          "type": "string"
      +        },
      +        "matchedExisting": {
      +          "type": "boolean"
      +        },
      +        "membershipOutcome": {
      +          "type": "string"
      +        },
      +        "resolvedName": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "companyId",
      +        "itemId",
      +        "matchedExisting",
      +        "membershipOutcome",
      +        "resolvedName"
      +      ],
      +      "type": "object"
      +    },
      +    "value1": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": [
      +              "null",
      +              "boolean",
      +              "number",
      +              "string",
      +              "array",
      +              "object"
      +            ]
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value2": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "$ref": "#/$defs/value3"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value3": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "command": {
      +          "type": "string"
      +        },
      +        "cost": {
      +          "type": "string"
      +        },
      +        "label": {
      +          "type": "string"
      +        },
      +        "rationale": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "command",
      +        "cost",
      +        "label",
      +        "rationale"
      +      ],
      +      "type": "object"
      +    },
      +    "value4": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {
      +            "type": "number"
      +          },
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value5": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "$ref": "#/$defs/value6"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "value6": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "code": {
      +          "type": "string"
      +        },
      +        "message": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "code",
      +        "message"
      +      ],
      +      "type": "object"
      +    },
      +    "value7": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {
      +            "type": [
      +              "null",
      +              "boolean",
      +              "number",
      +              "string",
      +              "array",
      +              "object"
      +            ]
      +          },
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "additionalProperties": false,
      +  "properties": {
      +    "_debug": {
      +      "$ref": "#/$defs/value7"
      +    },
      +    "correlationId": {
      +      "type": "string"
      +    },
      +    "data": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "context": {
      +          "type": [
      +            "null",
      +            "boolean",
      +            "number",
      +            "string",
      +            "array",
      +            "object"
      +          ]
      +        },
      +        "cursor": {
      +          "type": "string"
      +        },
      +        "has_more": {
      +          "type": "boolean"
      +        },
      +        "items": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "$ref": "#/$defs/value0"
      +              },
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [
      +        "context",
      +        "has_more",
      +        "items"
      +      ],
      +      "type": "object"
      +    },
      +    "nextActions": {
      +      "$ref": "#/$defs/value2"
      +    },
      +    "stats": {
      +      "$ref": "#/$defs/value4"
      +    },
      +    "summary": {
      +      "type": "string"
      +    },
      +    "warnings": {
      +      "$ref": "#/$defs/value5"
      +    }
      +  },
      +  "required": [
      +    "data",
      +    "nextActions",
      +    "summary"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=false, so the safety profile is largely covered. The description usefully adds the implicit side effect that a company record is created when only a URL is supplied, but it omits that repeated calls are non-idempotent and can produce duplicate collection rows.

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?

A single front-loaded sentence that packs the verb, resource, identifier options, side effect, and optional fields without filler. It is efficient, though the omission of the collection-identifier requirement is a content gap rather than verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter write tool with complex not/anyOf schema constraints and zero formally required parameters, the description covers the company side but never mentions that either collectionId or collectionName is mandatory. An agent relying on it alone could easily submit a call with no collection identifier, which the opaque schema would then reject.

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 description coverage is 100%, so the schema already documents all eight parameters, giving a baseline of 3. The description restates the companyId/companyUrl choice and the optional priority and product fields but adds no format or constraint detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear specific verb+resource: adds a company to a collection, and it names the two acceptable company identifiers plus the implicit-create behavior. It does not explicitly distinguish itself from siblings like exim__collection__create or exim__collection__items__list, so it falls short of a 5.

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?

The description implies usage via 'by company id or website URL', which hints at the alternative acceptance paths, but it never states when to prefer one over the other, when not to call it, or how it relates to sibling tools such as collection copy-to or create.

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.