← WebMCP Directory

Tool tree

crossword-desk-studio.openai.chatgpt.site

demoMedia & Personal
https://crossword-desk-studio.openai.chatgpt.site/
The Crossword Desk
Explore capabilities
get_puzzle_stateAnswer

View the crossword, word pool, clues, validation, and current size limits.

View tool JSON
{
  "name": "get_puzzle_state",
  "kind": "answer",
  "impl": "imperative",
  "description": "View the crossword, word pool, clues, validation, and current size limits.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "since_revision": {
        "type": "integer",
        "minimum": 0,
        "description": "Include changes made after this puzzle revision."
      }
    },
    "additionalProperties": false
  }
}
set_puzzle_titleAction

Change the crossword title.

View tool JSON
{
  "name": "set_puzzle_title",
  "kind": "act",
  "impl": "imperative",
  "description": "Change the crossword title.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "title": {
        "type": "string",
        "minLength": 1
      },
      "expected_revision": {
        "type": "integer",
        "minimum": 0,
        "description": "Puzzle revision being edited. A newer revision prevents the change from being applied."
      }
    },
    "required": [
      "title",
      "expected_revision"
    ],
    "additionalProperties": false
  }
}
upsert_word_candidatesAction

Add or update answers, clues, and theme labels. Mixed batches keep valid entries and report rejected entries separately. Key theme words are kept; other theme words are alternatives.

View tool JSON
{
  "name": "upsert_word_candidates",
  "kind": "act",
  "impl": "imperative",
  "description": "Add or update answers, clues, and theme labels. Mixed batches keep valid entries and report rejected entries separately. Key theme words are kept; other theme words are alternatives.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "candidates": {
        "type": "array",
        "minItems": 1,
        "description": "For a new theme, about 12–16 related answers of varied lengths, including some 3–5-letter alternatives, give the crossword more ways to fit. These are alternatives, not a placement target; only a compatible subset needs to appear. Small updates can contain fewer words.",
        "items": {
          "type": "object",
          "properties": {
            "word": {
              "type": "string",
              "minLength": 2,
              "description": "Answer letters, within get_puzzle_state.constraints.max_answer_length. Auto size accepts up to 18 letters; fixed sizes and locked answers limit new words to the current dimensions. New oversized answers are skipped without discarding valid entries in the batch."
            },
            "clue": {
              "type": "string"
            },
            "theme": {
              "type": "boolean",
              "description": "Whether this answer is part of the theme. New answers are themed by default; existing labels stay unchanged when omitted."
            },
            "theme_anchor": {
              "type": "boolean",
              "description": "An optional must-include theme answer. Zero or one anchor is usually enough; a short, distinctive answer of 3–7 letters gives more layout choices. Long phrases or multiple anchors make construction harder. The puzzle title need not be an answer. Also marks the word as themed."
            },
            "replaces_candidate_id": {
              "type": "string",
              "description": "ID of the word being replaced; an adjustment note is required."
            }
          },
          "required": [
            "word"
          ],
          "additionalProperties": false
        }
      },
      "expected_revision": {
        "type": "integer",
        "minimum": 0,
        "description": "Puzzle revision being edited. A newer revision prevents the change from being applied."
      }
    },
    "required": [
      "candidates",
      "expected_revision"
    ],
    "additionalProperties": false
  }
}
construct_crosswordAction

Build a crossword from a compatible subset of theme candidates, keeping key theme words and adding ordinary crossing fill. Auto size finds a fitting grid; a fixed size or locked answers keep the current dimensions. A successful construction has met the theme requirements for its grid size. After success, finish missing clues. Do not resize or rebuild solely to increase theme density unless the user asks.

View tool JSON
{
  "name": "construct_crossword",
  "kind": "act",
  "impl": "imperative",
  "description": "Build a crossword from a compatible subset of theme candidates, keeping key theme words and adding ordinary crossing fill. Auto size finds a fitting grid; a fixed size or locked answers keep the current dimensions. A successful construction has met the theme requirements for its grid size. After success, finish missing clues. Do not resize or rebuild solely to increase theme density unless the user asks.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "expected_revision": {
        "type": "integer",
        "minimum": 0,
        "description": "Puzzle revision being edited. A newer revision prevents the change from being applied."
      }
    },
    "required": [
      "expected_revision"
    ],
    "additionalProperties": false
  }
}
update_cluesAction

Edit clues for placed answers without changing their words or positions.

View tool JSON
{
  "name": "update_clues",
  "kind": "act",
  "impl": "imperative",
  "description": "Edit clues for placed answers without changing their words or positions.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "entries": {
        "type": "array",
        "minItems": 1,
        "items": {
          "type": "object",
          "properties": {
            "entry_id": {
              "type": "string"
            },
            "clue": {
              "type": "string",
              "minLength": 1
            }
          },
          "required": [
            "entry_id",
            "clue"
          ],
          "additionalProperties": false
        }
      },
      "expected_revision": {
        "type": "integer",
        "minimum": 0,
        "description": "Puzzle revision being edited. A newer revision prevents the change from being applied."
      }
    },
    "required": [
      "entries",
      "expected_revision"
    ],
    "additionalProperties": false
  }
}