Make punch needle patterns from images, browse patterns, estimate yarn, resize and match materials.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Estimates the yarn for a punch needle design from its size, the share of each colour and the needle and loop height, or from a measured swatch. Returns metres, grams and whole skeins for each colour.
Unit of the width and height; the default is cm.
Shape of the design; the default is rectangle.
Width of the design, or the diameter of a circle, in the chosen unit.
Same value as extra_percent.
Same value as colours.
Height of a rectangular design in the chosen unit; a circle needs none.
Oxford needle such as #14 fine, #13 fine, #10 fine, #10 regular, #9 regular or #8 regular. The default is #14 fine.
Colours with their share of the design area in percent; the shares add up to 100. A single colour at 100 percent is the default.
Extra yarn for tails and finishing in percent, from 0 to 100. The default is 15.
Metres of yarn used in the measured swatch.
Loop height in mm: 3.2, 4.8, 6.4, 9.5 or 12.7.
Length in metres of one skein of the project yarn.
Width in cm of a measured filled swatch; the four swatch values come together.
Height in cm of the measured swatch.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http punchneedle-ai https://punchneedle.ai/api/mcp
Estimates the yarn for a punch needle design from its size, the share of each colour and the needle and loop height, or from a measured swatch. Returns metres, grams and whole skeins for each colour.
| Argument | Type | Description |
|---|---|---|
| unit | string | Unit of the width and height; the default is cm. |
| shape | string | Shape of the design; the default is rectangle. |
| width | number | Width of the design, or the diameter of a circle, in the chosen unit. |
| buffer | number | Same value as extra_percent. |
| colors | array | Same value as colours. |
| height | number | Height of a rectangular design in the chosen unit; a circle needs none. |
| needle | string | Oxford needle such as #14 fine, #13 fine, #10 fine, #10 regular, #9 regular or #8 regular. The default is #14 fine. |
| colours | array | Colours with their share of the design area in percent; the shares add up to 100. A single colour at 100 percent is the default. |
| extra_percent | number | Extra yarn for tails and finishing in percent, from 0 to 100. The default is 15. |
| swatch_yarn_m | number | Metres of yarn used in the measured swatch. |
| loop_height_mm | number | Loop height in mm: 3.2, 4.8, 6.4, 9.5 or 12.7. |
| skein_length_m | number | Length in metres of one skein of the project yarn. |
| swatch_width_cm | number | Width in cm of a measured filled swatch; the four swatch values come together. |
| swatch_height_cm | number | Height in cm of the measured swatch. |
{
"type": "object",
"required": [],
"properties": {
"unit": {
"enum": [
"mm",
"cm",
"in"
],
"type": "string",
"description": "Unit of the width and height; the default is cm."
},
"shape": {
"enum": [
"rectangle",
"circle"
],
"type": "string",
"description": "Shape of the design; the default is rectangle."
},
"width": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Width of the design, or the diameter of a circle, in the chosen unit."
},
"buffer": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Same value as extra_percent."
},
"colors": {
"type": "array",
"items": {
"type": "object",
"required": [],
"properties": {
"name": {
"type": "string",
"maxLength": 40,
"minLength": 0,
"description": "Name of the colour."
},
"share": {
"type": "number",
"maximum": 100,
"minimum": 0.001,
"description": "Same value as percent."
},
"percent": {
"type": "number",
"maximum": 100,
"minimum": 0.001,
"description": "Share of the design area in percent."
}
},
"additionalProperties": false
},
"maxItems": 32,
"minItems": 1,
"description": "Same value as colours."
},
"height": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Height of a rectangular design in the chosen unit; a circle needs none."
},
"needle": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Oxford needle such as #14 fine, #13 fine, #10 fine, #10 regular, #9 regular or #8 regular. The default is #14 fine."
},
"colours": {
"type": "array",
"items": {
"type": "object",
"required": [],
"properties": {
"name": {
"type": "string",
"maxLength": 40,
"minLength": 0,
"description": "Name of the colour."
},
"share": {
"type": "number",
"maximum": 100,
"minimum": 0.001,
"description": "Same value as percent."
},
"percent": {
"type": "number",
"maximum": 100,
"minimum": 0.001,
"description": "Share of the design area in percent."
}
},
"additionalProperties": false
},
"maxItems": 32,
"minItems": 1,
"description": "Colours with their share of the design area in percent; the shares add up to 100. A single colour at 100 percent is the default."
},
"extra_percent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Extra yarn for tails and finishing in percent, from 0 to 100. The default is 15."
},
"swatch_yarn_m": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Metres of yarn used in the measured swatch."
},
"loop_height_mm": {
"type": "number",
"maximum": 50,
"minimum": 0.1,
"description": "Loop height in mm: 3.2, 4.8, 6.4, 9.5 or 12.7."
},
"skein_length_m": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Length in metres of one skein of the project yarn."
},
"swatch_width_cm": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Width in cm of a measured filled swatch; the four swatch values come together."
},
"swatch_height_cm": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Height in cm of the measured swatch."
}
},
"additionalProperties": false
}Lists the original punch needle patterns in the Punchneedle.ai library, filtered by theme and level. Each pattern shows its finished size, number of colours, level and preview image.
| Argument | Type | Description |
|---|---|---|
| level | string | Level of the patterns: beginner for the website's beginner collection, or any for all patterns. |
| query | string | Same value as theme. |
| theme | string | Theme or collection such as flowers, animals, geometric, Christmas, Halloween, hearts, landscapes, rainbows, food or primitive, or a word from a pattern's name. |
| category | string | Same value as theme. |
| collection | string | Same value as theme. |
| difficulty | string | Same value as level. |
{
"type": "object",
"required": [],
"properties": {
"level": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Level of the patterns: beginner for the website's beginner collection, or any for all patterns."
},
"query": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Same value as theme."
},
"theme": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Theme or collection such as flowers, animals, geometric, Christmas, Halloween, hearts, landscapes, rainbows, food or primitive, or a word from a pattern's name."
},
"category": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Same value as theme."
},
"collection": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Same value as theme."
},
"difficulty": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "Same value as level."
}
},
"additionalProperties": false
}Returns the website's guide to one punch needle material: needles, needle sizes, fabric, monk's cloth, yarn, floss, hoops or glue. The guide holds its sections, tables and related pages.
| Argument | Type | Description |
|---|---|---|
| name | string | Same value as material. |
| guide | string | Same value as material. |
| topic | string | Same value as material. |
| material | string | One of needles, needle sizes, fabric, monk's cloth, yarn, floss, hoops or glue. |
{
"type": "object",
"required": [],
"properties": {
"name": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Same value as material."
},
"guide": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Same value as material."
},
"topic": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Same value as material."
},
"material": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "One of needles, needle sizes, fabric, monk's cloth, yarn, floss, hoops or glue."
}
},
"additionalProperties": false
}Returns one library pattern with its size, colours, making steps, materials and the yarn each colour needs in a fine-wool kit and a rug-wool kit.
| Argument | Type | Description |
|---|---|---|
| id | string | Same value as pattern. |
| name | string | Same value as pattern. |
| slug | string | Same value as pattern. |
| pattern | string | Pattern id such as cat or sunflower, the pattern's name, or its page address on Punchneedle.ai. |
{
"type": "object",
"required": [],
"properties": {
"id": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Same value as pattern."
},
"name": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Same value as pattern."
},
"slug": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Same value as pattern."
},
"pattern": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Pattern id such as cat or sunflower, the pattern's name, or its page address on Punchneedle.ai."
}
},
"additionalProperties": false
}Converts a public PNG, JPEG or WebP image into a punch needle pattern with the website's pattern converter. Returns the pattern as a stitch grid preview, its colours and the yarn each colour needs in a fine-wool kit and a rug-wool kit.
| Argument | Type | Description |
|---|---|---|
| url | string | Same value as image_url. |
| size | number | Same value as width. |
| unit | string | Unit of the width; the default is cm. |
| image | string | Same value as image_url. |
| width | number | Finished width of the pattern in the chosen unit: 20 to 2000 mm, 2 to 200 cm or 0.8 to 78.7 in. The default is 20 cm. |
| colors | integer | Same value as colours. |
| colours | integer | Largest number of yarn colours in the pattern, from 2 to 32. The default is 6. |
| imageUrl | string | Same value as image_url. |
| image_url | string | Public web address (https) of a PNG, JPEG or WebP image of at most 4 MB. |
Checks whether a punch needle, a fabric and a yarn work together, using the website's material guidance. Returns the verdict for each part, what to change and the checks to make on a swatch.
| Argument | Type | Description |
|---|---|---|
| yarn* | string | Yarn or fibre: rug yarn, bulky knitting yarn, worsted yarn, sport or sock yarn, or embroidery floss. |
| fabric* | string | Foundation fabric: rug-punching monk's cloth, rug linen, rug warp or punch-embroidery weaver's cloth. |
| needle* | string | Needle family: Oxford regular point, Oxford fine yarn point, or a miniature embroidery punch needle for floss. |
{
"type": "object",
"required": [
"needle",
"fabric",
"yarn"
],
"properties": {
"yarn": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Yarn or fibre: rug yarn, bulky knitting yarn, worsted yarn, sport or sock yarn, or embroidery floss."
},
"fabric": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Foundation fabric: rug-punching monk's cloth, rug linen, rug warp or punch-embroidery weaver's cloth."
},
"needle": {
"type": "string",
"maxLength": 60,
"minLength": 1,
"description": "Needle family: Oxford regular point, Oxford fine yarn point, or a miniature embroidery punch needle for floss."
}
},
"additionalProperties": false
}Rescales a library pattern, or a design of a given size, to a new width or height with the proportions kept. Returns the new dimensions, the number of printed A4 and US Letter sheets and, for a library pattern, the yarn at the new size.
| Argument | Type | Description |
|---|---|---|
| id | string | Same value as pattern. |
| unit | string | Unit of the sizes; the default is cm. |
| width | number | Current width of a design that is not a library pattern, in the chosen unit. |
| height | number | Current height of a design that is not a library pattern, in the chosen unit. |
| pattern | string | Library pattern id such as cat or sunflower, or its name. |
| new_width | number | New width in the chosen unit, from 10 mm to 2000 mm. The height follows the proportions. |
| new_height | number | New height in the chosen unit, up to 2000 mm. The width follows the proportions. |
{
"type": "object",
"required": [],
"properties": {
"id": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Same value as pattern."
},
"unit": {
"enum": [
"mm",
"cm",
"in"
],
"type": "string",
"description": "Unit of the sizes; the default is cm."
},
"width": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Current width of a design that is not a library pattern, in the chosen unit."
},
"height": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "Current height of a design that is not a library pattern, in the chosen unit."
},
"pattern": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Library pattern id such as cat or sunflower, or its name."
},
"new_width": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "New width in the chosen unit, from 10 mm to 2000 mm. The height follows the proportions."
},
"new_height": {
"type": "number",
"maximum": 100000,
"minimum": 0.001,
"description": "New height in the chosen unit, up to 2000 mm. The width follows the proportions."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 11, 2026.
{
"type": "object",
"required": [],
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Same value as image_url."
},
"size": {
"type": "number",
"maximum": 2000,
"minimum": 0.7,
"description": "Same value as width."
},
"unit": {
"enum": [
"mm",
"cm",
"in"
],
"type": "string",
"description": "Unit of the width; the default is cm."
},
"image": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Same value as image_url."
},
"width": {
"type": "number",
"maximum": 2000,
"minimum": 0.7,
"description": "Finished width of the pattern in the chosen unit: 20 to 2000 mm, 2 to 200 cm or 0.8 to 78.7 in. The default is 20 cm."
},
"colors": {
"type": "integer",
"maximum": 32,
"minimum": 2,
"description": "Same value as colours."
},
"colours": {
"type": "integer",
"maximum": 32,
"minimum": 2,
"description": "Largest number of yarn colours in the pattern, from 2 to 32. The default is 6."
},
"imageUrl": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Same value as image_url."
},
"image_url": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Public web address (https) of a PNG, JPEG or WebP image of at most 4 MB."
}
},
"additionalProperties": false
}