KerfScript
Write, check and render parametric laser-cutting designs in KerfScript, as SVG or DXF.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"kerfscript": {
"command": "npx",
"args": [
"@mylasertools/kerfscript-mcp"
]
}
}
}Runnable packages
0.1.1stdioRemote endpoints
https://mcp.mylasertools.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢kerfscript_docs(topic, offset)
Read KerfScript language and JavaScript integration documentation for building laser-cutting generators. Omit topic to list guides. Long guides are paginated with nextOffset.
Input Schema
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"maxLength": 100
},
"offset": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢kerfscript_examples(query, id, offset)
Find working parametric laser-cutting examples by title, id or tags. Supply an id from the results to get its .kerf source.
Input Schema
{
"type": "object",
"properties": {
"query": {
"default": "",
"type": "string",
"maxLength": 200
},
"id": {
"type": "string",
"maxLength": 100
},
"offset": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢kerfscript_parameters(source)
Extract editable settings and customizer ranges from .kerf source to build a generator UI. Parses without rendering geometry.
Input Schema
{
"type": "object",
"properties": {
"source": {
"type": "string",
"maxLength": 64000
}
},
"required": [
"source"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢kerfscript_render(source, params, libraries, format, sheet, ...)
Render .kerf source to SVG or DXF files, one per sheet, with part sizes, layers and warnings. Uses millimetres and bundled Atkinson font. No filesystem or network imports. Bounded to 100 parts and 10 sheets. For production generators install @mylasertools/kerfscript locally.
Input Schema
{
"type": "object",
"properties": {
"source": {
"type": "string",
"maxLength": 64000,
"description": "KerfScript program. Lengths are millimetres; angles are degrees."
},
"params": {
"type": "object",
"propertyNames": {
"type": "string",
"maxLength": 100
},
"additionalProperties": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 2000
},
{
"type": "boolean"
},
{
"maxItems": 100,
"type": "array",
"items": {
"type": "number"
}
}
]
}
},
"libraries": {
"description": "Optional virtual libraries keyed by the exact use/include path. No files or URLs are fetched.",
"type": "object",
"propertyNames": {
"type": "string",
"maxLength": 200
},
"additionalProperties": {
"type": "string",
"maxLength": 64000
}
},
"format": {
"default": "svg",
"type": "string",
"enum": [
"svg",
"dxf"
]
},
"sheet": {
"type": "array",
"items": [
{
"type": "number",
"exclusiveMinimum": 0,
"maximum": 10000
},
{
"type": "number",
"exclusiveMinimum": 0,
"maximum": 10000
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
},
"kerf": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"gap": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"margin": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"layout": {
"default": "pack",
"type": "string",
"enum": [
"pack",
"none"
]
}
},
"required": [
"source"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Community
Evidence