{
  "name": "knytstudio",
  "version": "1.0.0",
  "description": "KnytStudio is a pattern design and discovery platform for knitting, cross-stitch, crochet, beading and pixel art. These read-only tools let AI agents browse the public community: discover patterns, look up maker profiles, and read public comments and finished-project photos.",
  "tools": [
    {
      "name": "list_patterns",
      "description": "Browse public patterns on KnytStudio. Filter by tag or craft type and sort by newest, popular or trending. Returns a page of patterns with title, craft type, dimensions, tags, engagement counts, a preview image URL and the author. Note: this lists and filters patterns; it does not do free-text keyword search.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "sort": {
            "type": "string",
            "enum": ["newest", "popular", "trending"],
            "description": "Sort order for results. Defaults to newest."
          },
          "type": {
            "type": "string",
            "enum": ["KNITTING", "CROSS_STITCH", "CROCHET", "BEADING", "PIXEL_ART"],
            "description": "Filter to a single craft type."
          },
          "tag": {
            "type": "string",
            "description": "Filter to patterns carrying this tag (max 50 characters)."
          },
          "cursor": {
            "type": "string",
            "description": "Pagination cursor (a pattern id) returned as nextCursor from a previous call."
          },
          "limit": {
            "type": "number",
            "description": "Number of patterns to return, 1-50. Defaults to 20."
          }
        }
      },
      "endpoint": "/api/discover",
      "method": "GET"
    },
    {
      "name": "get_user_profile",
      "description": "Get a public maker profile by user id: username, avatar, bio, social links, follower/following counts, completed-project count, and their list of public patterns.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "description": "The id of the user whose public profile to retrieve."
          }
        },
        "required": ["userId"]
      },
      "endpoint": "/api/users/:userId",
      "method": "GET"
    },
    {
      "name": "get_user_completed_projects",
      "description": "List a maker's completed projects (with the pattern and a finished-project photo when available), newest first, cursor paginated.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "description": "The id of the user whose completed projects to retrieve."
          },
          "cursor": {
            "type": "string",
            "description": "Pagination cursor returned as nextCursor from a previous call."
          },
          "limit": {
            "type": "number",
            "description": "Number of projects to return, up to 50. Defaults to 20."
          }
        },
        "required": ["userId"]
      },
      "endpoint": "/api/users/:userId/completed",
      "method": "GET"
    },
    {
      "name": "get_pattern_comments",
      "description": "Read the public comments on a pattern, newest first, cursor paginated. Returns comment text, timestamps and the commenting user.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "patternId": {
            "type": "string",
            "description": "The id of the pattern whose comments to read."
          },
          "cursor": {
            "type": "string",
            "description": "Pagination cursor returned as nextCursor from a previous call."
          },
          "limit": {
            "type": "number",
            "description": "Number of comments to return, up to 50. Defaults to 20."
          }
        },
        "required": ["patternId"]
      },
      "endpoint": "/api/comments/:patternId",
      "method": "GET"
    },
    {
      "name": "get_pattern_finishes",
      "description": "Read the community finished-project photos for a pattern (makers who completed it and shared a photo), newest first, cursor paginated.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "patternId": {
            "type": "string",
            "description": "The id of the pattern whose community finishes to read."
          },
          "cursor": {
            "type": "string",
            "description": "Pagination cursor returned as nextCursor from a previous call."
          },
          "limit": {
            "type": "number",
            "description": "Number of finishes to return, up to 50. Defaults to 20."
          }
        },
        "required": ["patternId"]
      },
      "endpoint": "/api/finishes/:patternId",
      "method": "GET"
    }
  ],
  "inPageTools": {
    "documentation": "https://www.knytstudio.com/chatgpt",
    "description": "WebMCP tools the pages register in the browser (document.modelContext.registerTool), for an agent browsing KnytStudio such as ChatGPT's built-in browser. They run in the page as the signed-in user; every pattern or design edit is one Undo step and is saved like a manual edit.",
    "pages": [
      {
        "page": "https://www.knytstudio.com/",
        "scope": "Every marketing page",
        "tools": ["search_patterns", "start_pattern", "start_amigurumi", "start_knitting", "open_my_patterns"]
      },
      {
        "page": "https://www.knytstudio.com/dashboard",
        "scope": "The user's dashboard and its other views (Library, Inspiration, Discover inside the app)",
        "tools": ["list_my_patterns", "open_pattern", "start_new_pattern", "open_publish", "open_stash", "start_amigurumi", "search_patterns", "show_public_pattern", "list_saved_patterns", "start_knitting"]
      },
      {
        "page": "https://www.knytstudio.com/stash",
        "scope": "The user's stash: the embroidery floss and yarn they own, their to-buy list and wishlist (signed-in users)",
        "tools": ["get_stash", "check_pattern_against_stash", "add_threads", "set_thread_skeins", "move_thread", "remove_thread", "add_yarn", "update_yarn", "remove_yarn"]
      },
      {
        "page": "https://www.knytstudio.com/project/{id}",
        "scope": "The pattern editor (cross stitch, needlepoint, diamond painting, fuse beads, knitting and crochet charts; backstitch lines on cross-stitch charts) and its stitch tracker (progress, the thread to stitch, marking stitches done). On a knitting chart it adds the knitting tools (stitch symbols, chart setup, written row-by-row instructions with the chart check, colourwork motifs, even shaping along an edge, the tracker's row counter); on a knitted sweater, hat or scarf its garment tools (size, fit, yarn, gauge, the written pattern, colourwork motifs); on a knitting design its piece tools (pieces, shaping from measurements, sizes, motifs anchored to a part of a shaped piece, and how the pieces join: seams, pick-ups and the finishing; the written pattern in every size; on someone else's sized design, the size it is shown at). On someone else's pattern that allows remixing, a remix: a copy of the user's own, a sized design drawn at the size shown",
        "tools": ["get_pattern", "read_cells", "find_colors", "paint_cells", "replace_color", "merge_colors", "add_colors", "remove_unused_colors", "resize_pattern", "set_title", "set_view_mode", "undo", "redo", "open_pdf_export", "open_export", "open_photo_import", "open_publish", "read_backstitches", "add_backstitches", "remove_backstitches", "get_progress", "read_progress", "choose_color", "show_next_stitch", "mark_stitches", "undo_mark", "open_tracker", "close_tracker", "get_knitting_chart", "read_stitches", "paint_stitches", "read_knitting_instructions", "open_knitting_instructions", "set_chart_setup", "list_motifs", "add_motif", "get_row_counter", "set_row_counter", "mark_rows_knitted", "shape_piece_edge", "get_garment", "show_garment_piece", "read_garment_pattern", "set_garment", "place_garment_motif", "move_garment_motif", "remove_garment_motif", "get_design_pieces", "show_design_piece", "add_design_piece", "update_design_piece", "duplicate_design_piece", "mirror_design_piece", "unlink_design_piece", "remove_design_piece", "shape_design_piece", "set_design_size", "place_piece_motif", "move_piece_motif", "remove_piece_motif", "list_joins", "add_join", "remove_join", "choose_view_size", "read_design_pattern", "remix_pattern"]
      },
      {
        "page": "https://www.knytstudio.com/amigurumi/{id}",
        "scope": "The amigurumi designer: an amigurumi written as stitch code, checked and simulated into a stitch-by-stitch 3D model, with the pattern's settings as sliders",
        "tools": ["get_stitch_language", "get_stitch_code", "set_stitch_code", "get_settings", "set_settings"]
      },
      {
        "page": "https://www.knytstudio.com/amigurumi/studio/{id}",
        "scope": "The amigurumi designer: an amigurumi written as stitch code, checked and simulated into a stitch-by-stitch 3D model, with the pattern's settings as sliders",
        "tools": ["get_stitch_language", "get_stitch_code", "set_stitch_code", "get_settings", "set_settings"]
      },
      {
        "page": "https://www.knytstudio.com/tools/fabric-size-calculator",
        "scope": "Fabric size calculator (the same tool on every language's version of the page)",
        "tools": ["calculate_fabric_size"]
      },
      {
        "page": "https://www.knytstudio.com/tools/fabric-conversion-calculator",
        "scope": "Fabric conversion calculator (the same tool on every language's version of the page)",
        "tools": ["convert_fabric_count"]
      },
      {
        "page": "https://www.knytstudio.com/tools/count-comparison",
        "scope": "Fabric count comparison (the same tool on every language's version of the page)",
        "tools": ["compare_fabric_counts"]
      },
      {
        "page": "https://www.knytstudio.com/tools/skein-calculator",
        "scope": "Floss skein calculator (the same tool on every language's version of the page)",
        "tools": ["calculate_skeins"]
      },
      {
        "page": "https://www.knytstudio.com/tools/thread-conversion",
        "scope": "DMC, Anchor and J&P Coats thread converter (the same tool on every language's version of the page)",
        "tools": ["convert_thread_colors"]
      },
      {
        "page": "https://www.knytstudio.com/tools/dmc-color-chart",
        "scope": "DMC colour chart (the same tool on every language's version of the page)",
        "tools": ["find_dmc_colors"]
      },
      {
        "page": "https://www.knytstudio.com/tools/cross-stitch-graph-paper",
        "scope": "Cross stitch graph paper generator (the same tool on every language's version of the page)",
        "tools": ["make_graph_paper"]
      },
      {
        "page": "https://www.knytstudio.com/tools/image-to-thread-palette",
        "scope": "Picture to DMC thread palette (the same tool on every language's version of the page)",
        "tools": ["get_thread_palette"]
      },
      {
        "page": "https://www.knytstudio.com/tools/needlepoint-canvas-calculator",
        "scope": "Needlepoint canvas calculator (the same tool on every language's version of the page)",
        "tools": ["calculate_needlepoint_canvas"]
      },
      {
        "page": "https://www.knytstudio.com/tools/diamond-painting-size-calculator",
        "scope": "Diamond painting size calculator (the same tool on every language's version of the page)",
        "tools": ["calculate_diamond_painting_size"]
      },
      {
        "page": "https://www.knytstudio.com/tools/bead-size-calculator",
        "scope": "Fuse bead size calculator (the same tool on every language's version of the page)",
        "tools": ["calculate_bead_size"]
      },
      {
        "page": "https://www.knytstudio.com/tools/hama-color-chart",
        "scope": "Hama bead colour chart (the same tool on every language's version of the page)",
        "tools": ["find_bead_colors"]
      },
      {
        "page": "https://www.knytstudio.com/tools/perler-color-chart",
        "scope": "Perler bead colour chart (the same tool on every language's version of the page)",
        "tools": ["find_bead_colors"]
      },
      {
        "page": "https://www.knytstudio.com/tools/gauge-calculator",
        "scope": "Knitting gauge calculator (the same tool on every language's version of the page)",
        "tools": ["calculate_cast_on"]
      },
      {
        "page": "https://www.knytstudio.com/tools/yarn-calculator",
        "scope": "Knitting yarn calculator (the same tool on every language's version of the page)",
        "tools": ["estimate_yarn_for_project", "calculate_yarn_from_swatch"]
      },
      {
        "page": "https://www.knytstudio.com/tools/increase-decrease-evenly-calculator",
        "scope": "Increase and decrease evenly calculator (the same tool on every language's version of the page)",
        "tools": ["space_increases_evenly"]
      },
      {
        "page": "https://www.knytstudio.com/tools/knitting-row-counter",
        "scope": "Knitting row counter, kept on the user's device (the same tool on every language's version of the page)",
        "tools": ["get_row_count", "update_row_counter"]
      },
      {
        "page": "https://www.knytstudio.com/tools/knitting-graph-paper",
        "scope": "Knitting graph paper generator (the same tool on every language's version of the page)",
        "tools": ["make_knitting_graph_paper"]
      },
      {
        "page": "https://www.knytstudio.com/pattern/{id}",
        "scope": "A public pattern's page (charts, amigurumi, and knitting designs with the sizes they come in)",
        "tools": ["get_pattern_details", "open_pattern_in_app", "remix_pattern"]
      },
      {
        "page": "https://www.knytstudio.com/u/{id}",
        "scope": "A designer's public profile: who they are and the patterns they published",
        "tools": ["get_designer_patterns"]
      }
    ]
  }
}
