← WebMCP Directory

Tool tree

playground.nottyduck.com

Media & PersonalTools verified
Website
A tiny local-first WebMCP playground where you and an AI agent make harmless mischief together.
Explore capabilities
    playground.get_stateAnswer

    Inspect the current NottyDuck playground: duck, mission progress, toys, and spark locations. This is read-only and uses no account or network storage.

    View tool JSON
    {
      "name": "playground.get_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Inspect the current NottyDuck playground: duck, mission progress, toys, and spark locations. This is read-only and uses no account or network storage.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    playground.move_duckAction

    Move the duck a small number of steps in one cardinal direction. The movement is animated in the same canvas the person sees and may collect nearby sparks.

    View tool JSON
    {
      "name": "playground.move_duck",
      "kind": "act",
      "impl": "imperative",
      "description": "Move the duck a small number of steps in one cardinal direction. The movement is animated in the same canvas the person sees and may collect nearby sparks.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "direction": {
            "type": "string",
            "enum": [
              "up",
              "down",
              "left",
              "right"
            ],
            "description": "Cardinal direction to waddle."
          },
          "steps": {
            "type": "integer",
            "minimum": 1,
            "maximum": 8,
            "description": "Small movement units; use 1-4 for precise play."
          }
        },
        "required": [
          "direction",
          "steps"
        ],
        "additionalProperties": false
      }
    }
    playground.set_targetAction

    Send the duck toward a normalized point in the playground. Coordinates are between 0 and 1. A person can immediately interrupt the movement with keyboard or pointer input.

    View tool JSON
    {
      "name": "playground.set_target",
      "kind": "act",
      "impl": "imperative",
      "description": "Send the duck toward a normalized point in the playground. Coordinates are between 0 and 1. A person can immediately interrupt the movement with keyboard or pointer input.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "x": {
            "type": "number",
            "minimum": 0.08,
            "maximum": 0.92,
            "description": "Horizontal target; 0 is left and 1 is right."
          },
          "y": {
            "type": "number",
            "minimum": 0.16,
            "maximum": 0.9,
            "description": "Vertical target; 0 is top and 1 is bottom."
          }
        },
        "required": [
          "x",
          "y"
        ],
        "additionalProperties": false
      }
    }
    playground.spawn_toyAction

    Add one harmless toy to the shared playground. Toys are visual and local to this browser. At most 12 toys are kept.

    View tool JSON
    {
      "name": "playground.spawn_toy",
      "kind": "act",
      "impl": "imperative",
      "description": "Add one harmless toy to the shared playground. Toys are visual and local to this browser. At most 12 toys are kept.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "ball",
              "donut",
              "paper-plane"
            ],
            "description": "Toy to add."
          },
          "x": {
            "type": "number",
            "minimum": 0.08,
            "maximum": 0.92,
            "description": "Horizontal spawn position."
          },
          "y": {
            "type": "number",
            "minimum": 0.16,
            "maximum": 0.9,
            "description": "Vertical spawn position."
          }
        },
        "required": [
          "kind",
          "x",
          "y"
        ],
        "additionalProperties": false
      }
    }
    playground.quackAction

    Make the duck show a playful text quack in the shared canvas. This does not use audio, a microphone, or an external service.

    View tool JSON
    {
      "name": "playground.quack",
      "kind": "act",
      "impl": "imperative",
      "description": "Make the duck show a playful text quack in the shared canvas. This does not use audio, a microphone, or an external service.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "style": {
            "type": "string",
            "enum": [
              "tiny",
              "loud",
              "question"
            ],
            "description": "The personality of the quack."
          }
        },
        "required": [
          "style"
        ],
        "additionalProperties": false
      }
    }
    playground.customize_duckAction

    Change the local duck's short display name and color. This updates the visible UI and localStorage only.

    View tool JSON
    {
      "name": "playground.customize_duck",
      "kind": "act",
      "impl": "imperative",
      "description": "Change the local duck's short display name and color. This updates the visible UI and localStorage only.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 18,
            "description": "A friendly duck name, up to 18 characters."
          },
          "color": {
            "type": "string",
            "enum": [
              "yellow",
              "coral",
              "mint",
              "purple"
            ],
            "description": "Duck body color."
          }
        },
        "required": [
          "name",
          "color"
        ],
        "additionalProperties": false
      }
    }
    playground.create_surpriseAction

    Create one bounded random playground moment: add a toy, make the duck quack, or give it a nearby destination. It never spends money, contacts anyone, or leaves the page.

    View tool JSON
    {
      "name": "playground.create_surprise",
      "kind": "act",
      "impl": "imperative",
      "description": "Create one bounded random playground moment: add a toy, make the duck quack, or give it a nearby destination. It never spends money, contacts anyone, or leaves the page.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    playground.get_local_memoryAnswer

    Read the recent playful event log stored on this device. It contains only in-game actions and is read-only.

    View tool JSON
    {
      "name": "playground.get_local_memory",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the recent playful event log stored on this device. It contains only in-game actions and is read-only.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    playground.reset_local_worldAction

    Reset the duck, score, toys, and event history in this browser. This is destructive only to this page's local saved game and requires the exact confirmation phrase.

    View tool JSON
    {
      "name": "playground.reset_local_world",
      "kind": "act",
      "impl": "imperative",
      "description": "Reset the duck, score, toys, and event history in this browser. This is destructive only to this page's local saved game and requires the exact confirmation phrase.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "confirmation": {
            "type": "string",
            "const": "reset tiny playground",
            "description": "Must exactly equal: reset tiny playground"
          }
        },
        "required": [
          "confirmation"
        ],
        "additionalProperties": false
      }
    }