Skip to main content
Glama

spellbook_inventory_management_set

DestructiveIdempotent

Change one seller-owned channel's saved listing scope. Read spellbook_inventory_management_get first. Switching legacy all mode to selected mode clears management for all current listings. On an eligible backfilled account, restore_legacy_all explicitly manages every current and future listing on that connected seller account; saved automation settings remain unchanged. In selected mode, use a named candidateId from current SpellBook Finance rows to manage or stop managing a complete listing. Stopping management leaves its live listing and order history intact. These actions save permission for existing automation and do not enable automation or publish a listing.

Input Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / $defs
      Added value: +{
      +  "__schema0": {
      +    "$ref": "#/$defs/__schema1",
      +    "description": "Optional analytics context: briefly describe the user's underlying goal in one sentence. Do not copy prompts, personal details, credentials, identifiers, or tool arguments. Omit for private tasks."
      +  },
      +  "__schema1": {
      +    "maxLength": 512,
      +    "type": "string"
      +  }
      +}
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "action": {
      -        "const": "switch_to_selected",
      -        "type": "string"
      -      },
      -      "channel": {
      -        "description": "The connected seller channel. Required.",
      -        "enum": [
      -          "tcg",
      -          "manapool"
      -        ],
      -        "type": "string"
      -      },
      -      "context": {
      -        "description": "Optional analytics context: briefly describe the user's underlying goal in one sentence. Do not copy prompts, personal details, credentials, identifiers, or tool arguments. Omit for private tasks.",
      -        "maxLength": 512,
      -        "type": "string"
      -      },
      -      "expectedRevision": {
      -        "description": "The revision returned by the latest scope read. Required.",
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "workspaceId": {
      -        "description": "The seller workspace. Required.",
      -        "maxLength": 100,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "workspaceId",
      -      "channel",
      -      "action",
      -      "expectedRevision"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "action": {
      -        "const": "restore_legacy_all",
      -        "description": "Restore every current and future listing only when spellbook_inventory_management_get reports legacyAllEligible true. Required.",
      -        "type": "string"
      -      },
      -      "channel": {
      -        "description": "The connected seller channel. Required.",
      -        "enum": [
      -          "tcg",
      -          "manapool"
      -        ],
      -        "type": "string"
      -      },
      -      "context": {
      -        "description": "Optional analytics context: briefly describe the user's underlying goal in one sentence. Do not copy prompts, personal details, credentials, identifiers, or tool arguments. Omit for private tasks.",
      -        "maxLength": 512,
      -        "type": "string"
      -      },
      -      "expectedRevision": {
      -        "description": "The revision returned by the latest scope read. Required.",
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "workspaceId": {
      -        "description": "The seller workspace. Required.",
      -        "maxLength": 100,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "workspaceId",
      -      "channel",
      -      "action",
      -      "expectedRevision"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "action": {
      -        "const": "set_candidate",
      -        "type": "string"
      -      },
      -      "candidateId": {
      -        "description": "One exact candidateId returned by spellbook_inventory_management_get for a current existing row. Required.",
      -        "maxLength": 64,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "channel": {
      -        "description": "The connected seller channel. Required.",
      -        "enum": [
      -          "tcg",
      -          "manapool"
      -        ],
      -        "type": "string"
      -      },
      -      "context": {
      -        "description": "Optional analytics context: briefly describe the user's underlying goal in one sentence. Do not copy prompts, personal details, credentials, identifiers, or tool arguments. Omit for private tasks.",
      -        "maxLength": 512,
      -        "type": "string"
      -      },
      -      "expectedRevision": {
      -        "description": "The revision returned by the latest scope read. Required.",
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "managed": {
      -        "description": "True to manage all copies of this listing; false to stop managing it. Required.",
      -        "type": "boolean"
      -      },
      -      "workspaceId": {
      -        "description": "The seller workspace. Required.",
      -        "maxLength": 100,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "workspaceId",
      -      "channel",
      -      "action",
      -      "candidateId",
      -      "managed",
      -      "expectedRevision"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "action": {
      +        "const": "switch_to_selected",
      +        "type": "string"
      +      },
      +      "channel": {
      +        "description": "The connected seller channel. Required.",
      +        "enum": [
      +          "tcg",
      +          "manapool"
      +        ],
      +        "type": "string"
      +      },
      +      "context": {
      +        "$ref": "#/$defs/__schema0"
      +      },
      +      "expectedRevision": {
      +        "description": "The revision returned by the latest scope read. Required.",
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "workspaceId": {
      +        "description": "The seller workspace. Required.",
      +        "maxLength": 100,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "workspaceId",
      +      "channel",
      +      "action",
      +      "expectedRevision"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "action": {
      +        "const": "restore_legacy_all",
      +        "description": "Restore every current and future listing only when spellbook_inventory_management_get reports legacyAllEligible true. Required.",
      +        "type": "string"
      +      },
      +      "channel": {
      +        "description": "The connected seller channel. Required.",
      +        "enum": [
      +          "tcg",
      +          "manapool"
      +        ],
      +        "type": "string"
      +      },
      +      "context": {
      +        "$ref": "#/$defs/__schema0"
      +      },
      +      "expectedRevision": {
      +        "description": "The revision returned by the latest scope read. Required.",
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "workspaceId": {
      +        "description": "The seller workspace. Required.",
      +        "maxLength": 100,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "workspaceId",
      +      "channel",
      +      "action",
      +      "expectedRevision"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "action": {
      +        "const": "set_candidate",
      +        "type": "string"
      +      },
      +      "candidateId": {
      +        "description": "One exact candidateId returned by spellbook_inventory_management_get for a current existing row. Required.",
      +        "maxLength": 64,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "channel": {
      +        "description": "The connected seller channel. Required.",
      +        "enum": [
      +          "tcg",
      +          "manapool"
      +        ],
      +        "type": "string"
      +      },
      +      "context": {
      +        "$ref": "#/$defs/__schema0"
      +      },
      +      "expectedRevision": {
      +        "description": "The revision returned by the latest scope read. Required.",
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "managed": {
      +        "description": "True to manage all copies of this listing; false to stop managing it. Required.",
      +        "type": "boolean"
      +      },
      +      "workspaceId": {
      +        "description": "The seller workspace. Required.",
      +        "maxLength": 100,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "workspaceId",
      +      "channel",
      +      "action",
      +      "candidateId",
      +      "managed",
      +      "expectedRevision"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed1 schema field changed
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "action": {
      -        "const": "switch_to_selected",
      -        "type": "string"
      -      },
      -      "channel": {
      -        "description": "The connected seller channel. Required.",
      -        "enum": [
      -          "tcg",
      -          "manapool"
      -        ],
      -        "type": "string"
      -      },
      -      "expectedRevision": {
      -        "description": "The revision returned by the latest scope read. Required.",
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "workspaceId": {
      -        "description": "The seller workspace. Required.",
      -        "maxLength": 100,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "workspaceId",
      -      "channel",
      -      "action",
      -      "expectedRevision"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "action": {
      -        "const": "restore_legacy_all",
      -        "description": "Restore every current and future listing only when spellbook_inventory_management_get reports legacyAllEligible true. Required.",
      -        "type": "string"
      -      },
      -      "channel": {
      -        "description": "The connected seller channel. Required.",
      -        "enum": [
      -          "tcg",
      -          "manapool"
      -        ],
      -        "type": "string"
      -      },
      -      "expectedRevision": {
      -        "description": "The revision returned by the latest scope read. Required.",
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "workspaceId": {
      -        "description": "The seller workspace. Required.",
      -        "maxLength": 100,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "workspaceId",
      -      "channel",
      -      "action",
      -      "expectedRevision"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "action": {
      -        "const": "set_candidate",
      -        "type": "string"
      -      },
      -      "candidateId": {
      -        "description": "One exact candidateId returned by spellbook_inventory_management_get for a current existing row. Required.",
      -        "maxLength": 64,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "channel": {
      -        "description": "The connected seller channel. Required.",
      -        "enum": [
      -          "tcg",
      -          "manapool"
      -        ],
      -        "type": "string"
      -      },
      -      "expectedRevision": {
      -        "description": "The revision returned by the latest scope read. Required.",
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "managed": {
      -        "description": "True to manage all copies of this listing; false to stop managing it. Required.",
      -        "type": "boolean"
      -      },
      -      "workspaceId": {
      -        "description": "The seller workspace. Required.",
      -        "maxLength": 100,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "workspaceId",
      -      "channel",
      -      "action",
      -      "candidateId",
      -      "managed",
      -      "expectedRevision"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "action": {
      +        "const": "switch_to_selected",
      +        "type": "string"
      +      },
      +      "channel": {
      +        "description": "The connected seller channel. Required.",
      +        "enum": [
      +          "tcg",
      +          "manapool"
      +        ],
      +        "type": "string"
      +      },
      +      "context": {
      +        "description": "Optional analytics context: briefly describe the user's underlying goal in one sentence. Do not copy prompts, personal details, credentials, identifiers, or tool arguments. Omit for private tasks.",
      +        "maxLength": 512,
      +        "type": "string"
      +      },
      +      "expectedRevision": {
      +        "description": "The revision returned by the latest scope read. Required.",
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "workspaceId": {
      +        "description": "The seller workspace. Required.",
      +        "maxLength": 100,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "workspaceId",
      +      "channel",
      +      "action",
      +      "expectedRevision"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "action": {
      +        "const": "restore_legacy_all",
      +        "description": "Restore every current and future listing only when spellbook_inventory_management_get reports legacyAllEligible true. Required.",
      +        "type": "string"
      +      },
      +      "channel": {
      +        "description": "The connected seller channel. Required.",
      +        "enum": [
      +          "tcg",
      +          "manapool"
      +        ],
      +        "type": "string"
      +      },
      +      "context": {
      +        "description": "Optional analytics context: briefly describe the user's underlying goal in one sentence. Do not copy prompts, personal details, credentials, identifiers, or tool arguments. Omit for private tasks.",
      +        "maxLength": 512,
      +        "type": "string"
      +      },
      +      "expectedRevision": {
      +        "description": "The revision returned by the latest scope read. Required.",
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "workspaceId": {
      +        "description": "The seller workspace. Required.",
      +        "maxLength": 100,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "workspaceId",
      +      "channel",
      +      "action",
      +      "expectedRevision"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "action": {
      +        "const": "set_candidate",
      +        "type": "string"
      +      },
      +      "candidateId": {
      +        "description": "One exact candidateId returned by spellbook_inventory_management_get for a current existing row. Required.",
      +        "maxLength": 64,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "channel": {
      +        "description": "The connected seller channel. Required.",
      +        "enum": [
      +          "tcg",
      +          "manapool"
      +        ],
      +        "type": "string"
      +      },
      +      "context": {
      +        "description": "Optional analytics context: briefly describe the user's underlying goal in one sentence. Do not copy prompts, personal details, credentials, identifiers, or tool arguments. Omit for private tasks.",
      +        "maxLength": 512,
      +        "type": "string"
      +      },
      +      "expectedRevision": {
      +        "description": "The revision returned by the latest scope read. Required.",
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "managed": {
      +        "description": "True to manage all copies of this listing; false to stop managing it. Required.",
      +        "type": "boolean"
      +      },
      +      "workspaceId": {
      +        "description": "The seller workspace. Required.",
      +        "maxLength": 100,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "workspaceId",
      +      "channel",
      +      "action",
      +      "candidateId",
      +      "managed",
      +      "expectedRevision"
      +    ],
      +    "type": "object"
      +  }
      +]
  3. Added

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing what is destroyed (switching to selected clears management for all current listings), what survives (stopping management leaves the live listing and order history intact; saved automation settings unchanged), and what the call does NOT do (enable automation or publish a listing). This is precisely the side-effect context destructiveHint=true implies but cannot explain.

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-loaded with purpose and the mandatory read-first step, then ordered by mode. Dense but every sentence carries operational information; a couple of clauses (e.g. the restore_legacy_all sentence) could be tightened, keeping it just short of a 5.

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 destructive, idempotent mutation with no output schema, the definition covers preconditions, blast radius, and non-effects well. It omits what happens when expectedRevision is stale and what the call returns on success, which would matter for a concurrency-guarded write.

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?

Schema coverage is 100%, so the baseline is 3, and the description earns above that: it explains managed true/false as 'manage or stop managing a complete listing' and constrains candidateId to a currently existing row. Minor deduction because it calls the source 'current SpellBook Finance rows' rather than tying candidateId explicitly to the get tool's output as the schema does, creating a small mismatch.

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 ('Change one seller-owned channel's saved listing scope'), bounded to a single channel, and names the read sibling it depends on. An agent can distinguish it from spellbook_inventory_management_get without opening either 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?

Explicitly instructs 'Read spellbook_inventory_management_get first' and gates restore_legacy_all on the account being 'eligible backfilled' with legacyAllEligible true. It also states the mode-switch condition (legacy all -> selected) and when to use candidateId actions, leaving little to inference.

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