Skip to main content
Glama

Replace Shoot Board

mcp_replace_context
DestructiveIdempotent

Replace the Uwear Shoot Board items.

Input Schema

NameRequiredDescriptionDefault
board_idYesThe open Shoot Board's board_id, from Open Shoot Board or your context.
board_versionNoPass 2 to receive board v2 state, including the board's output settings
context_itemsNoShoot Board items that replace the current list when context_state is omitted
context_stateNoComplete Shoot Board state to sanitize and persist; takes precedence over context_items
expected_revisionYesBoard revision this write is based on; a stale revision returns a revision_conflict error with the current board instead of overwriting it

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changed
    • addedInput schema / properties / board_id
      Added value: +{
      +  "description": "The open Shoot Board's board_id, from Open Shoot Board or your context.",
      +  "type": "string"
      +}
    • addedInput schema / properties / board_version
      Added value: +{
      +  "description": "Pass 2 to receive board v2 state, including the board's output settings",
      +  "enum": [
      +    2
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / context_items / items / properties / description
      Added value: +{
      +  "maxLength": 500,
      +  "type": "string"
      +}
    • addedInput schema / properties / context_items / items / properties / gender
      Added value: +{
      +  "maxLength": 40,
      +  "type": "string"
      +}
    • addedInput schema / properties / context_items / items / properties / intake
      Added value: +{
      +  "description": "Board v2: intake state of an item still being sorted; absent means ready",
      +  "properties": {
      +    "candidates": {
      +      "items": {
      +        "enum": [
      +          "clothing",
      +          "models",
      +          "outfits",
      +          "generations",
      +          "files",
      +          "locations",
      +          "art_directions",
      +          "automations"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "source_hash": {
      +      "description": "sha256 hex of the source file",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "status": {
      +      "enum": [
      +        "sorting",
      +        "needs_answer",
      +        "ready"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status"
      +  ],
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / context_items / items / properties / meta
      Added value: +{
      +  "description": "Short display facts, e.g. ['female', 'ID 7']",
      +  "items": {
      +    "type": [
      +      "string",
      +      "number",
      +      "boolean"
      +    ]
      +  },
      +  "maxItems": 8,
      +  "type": "array"
      +}
    • changedInput schema / properties / context_items / items / properties / type / enum
      Previous value: -[
      -  "clothing",
      -  "models",
      -  "outfits",
      -  "generations",
      -  "files",
      -  "locations"
      -]New value: +[
      +  "clothing",
      +  "models",
      +  "outfits",
      +  "generations",
      +  "files",
      +  "locations",
      +  "art_directions",
      +  "automations"
      +]
    • addedInput schema / properties / context_state / properties / items / items / properties / description
      Added value: +{
      +  "maxLength": 500,
      +  "type": "string"
      +}
    • addedInput schema / properties / context_state / properties / items / items / properties / gender
      Added value: +{
      +  "maxLength": 40,
      +  "type": "string"
      +}
    • addedInput schema / properties / context_state / properties / items / items / properties / intake
      Added value: +{
      +  "description": "Board v2: intake state of an item still being sorted; absent means ready",
      +  "properties": {
      +    "candidates": {
      +      "items": {
      +        "enum": [
      +          "clothing",
      +          "models",
      +          "outfits",
      +          "generations",
      +          "files",
      +          "locations",
      +          "art_directions",
      +          "automations"
      +        ],
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "source_hash": {
      +      "description": "sha256 hex of the source file",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "status": {
      +      "enum": [
      +        "sorting",
      +        "needs_answer",
      +        "ready"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status"
      +  ],
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / context_state / properties / items / items / properties / meta
      Added value: +{
      +  "description": "Short display facts, e.g. ['female', 'ID 7']",
      +  "items": {
      +    "type": [
      +      "string",
      +      "number",
      +      "boolean"
      +    ]
      +  },
      +  "maxItems": 8,
      +  "type": "array"
      +}
    • changedInput schema / properties / context_state / properties / items / items / properties / type / enum
      Previous value: -[
      -  "clothing",
      -  "models",
      -  "outfits",
      -  "generations",
      -  "files",
      -  "locations"
      -]New value: +[
      +  "clothing",
      +  "models",
      +  "outfits",
      +  "generations",
      +  "files",
      +  "locations",
      +  "art_directions",
      +  "automations"
      +]
    • addedInput schema / properties / context_state / properties / output
      Added value: +{
      +  "description": "Board v2: the shoot's output settings; omitted keys keep their current value",
      +  "properties": {
      +    "aspect_ratio": {
      +      "description": "e.g. \"3:4\"",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "model_slug": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "num_images": {
      +      "minimum": 1,
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "resolution": {
      +      "description": "e.g. \"2K\"",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / expected_revision
      Added value: +{
      +  "description": "Board revision this write is based on; a stale revision returns a revision_conflict error with the current board instead of overwriting it",
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedInput schema / required
      Previous value: -[]New value: +[
      +  "board_id",
      +  "expected_revision"
      +]
  2. First observed

TDQS

C2.2/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is partly covered. However, the description omits important behavior the schema implies: that this is a full-list replacement, that context_state takes precedence over context_items, and that a stale expected_revision returns a revision_conflict error rather than overwriting. It adds essentially nothing beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is short but this is under-specification rather than conciseness. For a destructive, nested, five-parameter tool, one sentence cannot carry the necessary information, and there is nothing to front-load.

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

Completeness2/5

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

Given a destructive full-replace tool with nested item objects, a context_state precedence rule, and a revision-conflict mechanism, the description leaves the agent without any of that. Annotations cover only the generic safety profile and there is no output schema, so the description should have done far more.

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 fully documents board_id, board_version, context_items, context_state, and expected_revision (including the revision_conflict behavior). The description adds no parameter meaning of its own, so the baseline 3 applies.

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

Purpose2/5

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

The description "Replace the Uwear Shoot Board items" is essentially a restatement of the title "Replace Shoot Board" plus the word "items". It gives a verb and resource but offers no scope or differentiation from close siblings like modify_shoot_board, mcp_add_context, and mcp_clear_context, which an agent would need to tell apart.

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

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative is named, despite obvious candidates in the sibling list (modify_shoot_board for partial edits, mcp_add_context for appends, mcp_clear_context for wiping). The only implied guidance comes from the verb "replace".

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