Skip to main content
Glama

Fredenslund workshop tools

Server Details

MFT/3 hole patterns (Shaper-ready SVG) and French cleat wall plans with cut lists. Free, unofficial.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.4/5.0

Scored across 2 tools

Disambiguation5/5

The two tools address completely different domains: a French cleat wall planner and an MFT/3 dog-hole pattern generator. There is no functional overlap whatsoever, so misselection is essentially impossible.

Naming Consistency5/5

Both names use a clean snake_case noun_topic pattern (french_cleat_plan, mft3_hole_pattern) that is predictable and descriptive. The convention is fully consistent across the set.

Tool Count3/5

Only two tools under a broad 'workshop tools' banner feels thin; the server is really two unrelated niche calculators rather than a coherent workshop toolkit. Two tools is borderline for a server claiming a general domain.

Completeness3/5

Each tool is internally self-contained, returning cut lists, images, SVGs and editable links, so no obvious in-tool gaps. However, as a 'workshop tools' surface it is minimal, covering only two specific tasks with no broader workshop operations represented.

Available Tools

2 tools
french_cleat_planFrench cleat wall planA
Read-onlyIdempotent
Inspect

Plan a French cleat wall for a workshop with the Fredenslund cleat system: 90 mm cleat boards and 90 mm gaps (180 mm pitch), hook plate 72 mm including 12 mm material, 30 mm buffer between hangers, a 900 mm table that hangs on its own cleat one hook lower (cleat top 840) with the rows following that cleat, top cleat at least one gap below the ceiling, lowest cleat at least 210 mm above the floor (its underside; rows 300 … 2280 on the default wall). A hanger comes off by lifting it the material + 3 mm, so the hook plate is at most the gap − 3 and the top cleat at least the hook plate + 3 below the ceiling. The default wall is a full plywood sheet, 1220 × 2440 mm. Give the wall size and the hangers to hang (hooks, shelves, boxes, panels: left edge, the cleat row it hangs on, width, extra rows spanned below — a shelf usually spans one row). Returns the cleat rows (cleat top heights from the floor), every hanger with its panel height and whether it fits — and why not (row missing, row off, outside wall, collision) — the cut list with cleat metres, wall coverage, a picture of the wall (a link to a 1200 × 630 PNG) and a link that opens the same plan editable in the tool. All values in mm. Call with no hangers to get the rows for a wall first. Beta.

ParametersJSON Schema
NameRequiredDescriptionDefault
systemNoOverride the Fredenslund system (all in mm). Leave out to use the defaults
hangersNoHangers to place. Each hangs on one cleat row, given by the height of that cleat's top edge from the floor
rows_offNoCleat rows to switch off, by cleat top height from the floor
wall_width_mmNoWall width in mm (200–8000, default 1220 — a full plywood sheet)
wall_height_mmNoWall height in mm (300–4000, default 2440 — a full plywood sheet)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already set readOnlyHint=true and destructiveHint=false, and the description reinforces this by describing a planning/calculation tool. It adds substantial behavioral context: the cleat dimensions, the lifting constraint (hook plate ≤ gap − 3), the table offset logic, and the list of return values (rows, fits, cut list, coverage, PNG, editable link). It explains failure reasons (row missing, row off, outside wall, collision). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense, single paragraph with many numbers and rules. It front-loads the purpose but then flows into a wall of specifications. It is not structured (no bullet points or sections) and includes a trailing 'Beta.' While all information is present, it could be more scannable and concise for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (nested objects, 5 top-level parameters, no output schema), the description covers the full scope: inputs, defaults, constraints, return values, and a usage tip. It explains what the tool does, what it returns, and why hangers might fail. It even notes the default wall size. This is sufficiently complete for an agent to invoke it correctly without additional documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions, so the baseline is 3. The description adds relational meaning beyond the schema: it explains how parameters interact (e.g., hook plate ≤ gap − 3, top cleat ≥ hook plate + 3, table offset = hook plate − material) and provides default values (90, 90, 72, 12, 30, 900) that contextualize the system. It doesn't repeat schema text but enriches understanding of the parameters' roles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it plans a French cleat wall, specifies the exact system (Fredenslund), and enumerates the inputs (wall size, hangers) and outputs (rows, fits, cut list, picture, editable link). It distinguishes itself from the sibling mft3_hole_pattern by focusing on wall planning, not hole patterns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit workflow guidance: 'Call with no hangers to get the rows for a wall first.' It also explains what inputs are expected ('Give the wall size and the hangers to hang') and the purpose of each parameter category. Though it doesn't name alternatives, the sibling is clearly different, and the description gives enough context to select this tool appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mft3_hole_patternMFT/3 hole patternA
Read-onlyIdempotent
Inspect

Festool MFT/3 dog-hole pattern for a table top of any size. The requested width and depth snap to the nearest valid MFT/3 size (46 + 96 × n mm, n = 1–20, i.e. 142–1966 mm): Ø20 mm holes on a 96 mm grid with the first hole centred 71 mm from every edge, plus the four corner screw holes (Ø11 through, Ø15 counterbore). Returns the snapped size, hole count, every hole and screw-hole position, the Shaper export depths, the file name, a link to the true-to-scale SVG for Shaper Origin/Studio, a picture of the top (a link to a 1200 × 630 PNG) and a link that opens the size in the tool. When you present the result, link the SVG file (it is what the person cuts from), the picture and the tool. The original MFT/3 top is 1102 × 718 mm (11 × 7 holes). Unofficial hobby tool, not affiliated with Festool or Shaper.

ParametersJSON Schema
NameRequiredDescriptionDefault
depth_mmYesDesired top depth in mm; snaps to the nearest valid size (142–1966)
width_mmYesDesired top width in mm; snaps to the nearest valid size (142–1966)
include_svgNoAlso return the SVG markup itself (2–15 KB). By default only the link to the SVG is returned
thickness_mmNoBoard thickness in mm (default 19). Through cuts are encoded at thickness + 1 mm overcut
counterbore_mmNoCounterbore depth in mm for the Ø15 screw-hole rings (default 6; 0 omits them; never deeper than the thickness)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds meaningful behavior beyond that: the input-snapping rule (requested size is not honored verbatim), the origin reference (1102 × 718 example), the Shaper export framing, and an unofficial-tool disclaimer. It does not discuss limits on the SVG payload or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and snapping rule are front-loaded, and the long 'Returns ...' enumeration is justified because no output schema exists. The result is a dense single paragraph with a few long clause chains, so it is efficient but not maximally scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the full burden of describing return values and it does so thoroughly (snapped size, hole count, positions, depths, file name, SVG/picture/tool links). Nothing an agent needs to call or relay results is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description exceeds it by spelling out the snapping formula (46 + 96 × n mm, n = 1–20) and the actual hole geometry that width/depth imply, which the terse schema descriptions do not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource combination ('MFT/3 dog-hole pattern for a table top of any size') with concrete geometric detail. It is immediately distinguishable from the single sibling french_cleat_plan without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes clear context (generating a table-top pattern of any size, with the snapping range documented) and even gives post-call presentation guidance. It stops short of naming when NOT to use it or contrasting against the sibling tool, so it is clear context without explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedfrench_cleat_plan2 fields changed
      • changedInput schema / properties / hangers / items / properties / cleat_top_mm / description
        Previous value: -"Height from the floor of the top edge of the cleat the hanger hangs on; must be one of the wall's rows (e.g. 660, 840, 1020, 1200 … with default settings)"New value: +"Height from the floor of the top edge of the cleat the hanger hangs on; must be one of the wall's rows (300, 480, 660, 840, 1020, 1200 … 2280 with default settings)"
      • changedInput schema / properties / system / properties / bottom_limit_mm / description
        Previous value: -"The lowest cleat keeps its underside this far above the floor (default 450)"New value: +"The lowest cleat keeps its underside this far above the floor (default 210)"
  2. 1 tool update
    • Changedfrench_cleat_plan8 fields changed
      • changedInput schema / properties / system / properties / board_mm / description
        Previous value: -"Cleat board height (default 90; gap = board, pitch = 2 × board)"New value: +"Cleat board height (default 90). The gap equals the board unless gap_mm is given"
      • addedInput schema / properties / system / properties / gap_mm
        Added value: +{
        +  "description": "Gap between cleat boards (default = board_mm, as in the Fredenslund system); pitch = board + gap",
        +  "maximum": 200,
        +  "minimum": 40,
        +  "type": "integer"
        +}
      • changedInput schema / properties / system / properties / hook_plate_mm / description
        Previous value: -"Hook plate incl. material (default 72)"New value: +"Hook plate incl. material (default 72); at most the gap − 3, so a hanger can be lifted off"
      • changedInput schema / properties / system / properties / top_clearance_mm / description
        Previous value: -"Clearance below the ceiling (default 90)"New value: +"Clearance below the ceiling (default = the gap, 90); at least the hook plate + 3, so a hanger on the top row can be lifted off"
      • changedInput schema / properties / wall_height_mm / default
        Previous value: -2400New value: +2440
      • changedInput schema / properties / wall_height_mm / description
        Previous value: -"Wall height in mm (300–4000, default 2400)"New value: +"Wall height in mm (300–4000, default 2440 — a full plywood sheet)"
      • changedInput schema / properties / wall_width_mm / default
        Previous value: -3000New value: +1220
      • changedInput schema / properties / wall_width_mm / description
        Previous value: -"Wall width in mm (200–8000, default 3000)"New value: +"Wall width in mm (200–8000, default 1220 — a full plywood sheet)"
  3. 1 tool update
    • Changedfrench_cleat_plan2 fields changed
      • changedInput schema / properties / hangers / items / properties / width_mm / description
        Previous value: -"Width in mm (snap grid is the buffer, 30 mm)"New value: +"Width in whole mm (the planner drags in 10 mm steps; the palette sizes are 50–550)"
      • changedInput schema / properties / system / properties / buffer_mm / description
        Previous value: -"Buffer between hangers, also the snap grid (default 30)"New value: +"Buffer between hangers and above the floor (default 30)"
  4. 1 tool update
    • Changedfrench_cleat_plan3 fields changed
      • changedInput schema / properties / hangers / items / properties / cleat_top_mm / description
        Previous value: -"Height from the floor of the top edge of the cleat the hanger hangs on; must be one of the wall's rows (e.g. 900, 1080, 1260 … with default settings)"New value: +"Height from the floor of the top edge of the cleat the hanger hangs on; must be one of the wall's rows (e.g. 660, 840, 1020, 1200 … with default settings)"
      • changedInput schema / properties / system / properties / table_height_mm / description
        Previous value: -"Table height — the top of a cleat that anchors the rows (default 900)"New value: +"Table height — the top of the table (default 900). The table hangs on a cleat table_offset_mm lower, and that cleat anchors the rows"
      • addedInput schema / properties / system / properties / table_offset_mm
        Added value: +{
        +  "description": "How far below the table height the table's own cleat has its top edge (default 60 = hook plate − material, so the tabletop hangs like a hanger; 0 makes the table height the top of a cleat)",
        +  "maximum": 1000,
        +  "minimum": 0,
        +  "type": "integer"
        +}
  5. 1 tool update
    • Changedfrench_cleat_plan1 field changed
      • changedInput schema / properties / hangers / items / properties / rows_below / description
        Previous value: -"Extra cleat rows spanned below the hook row (0 = one cleat; each adds one pitch, 180 mm, to the panel height)"New value: +"Extra cleat rows spanned below the hook row (0 = one cleat; each adds one pitch, 180 mm, to the panel height). Typical: hooks 0; shelves and boxes 1 (a shelf hangs on its row and rests on the cleat below); deep boxes and panels 2; tall panels 3"
  6. 1 tool update
    • Changedfrench_cleat_plan7 fields changed
      • addedInput schema / properties / hangers / items / properties / cleat_top_mm / maximum
        Added value: +4000
      • addedInput schema / properties / hangers / items / properties / extension_mm / maximum
        Added value: +4000
      • addedInput schema / properties / hangers / items / properties / rows_below / maximum
        Added value: +49
      • addedInput schema / properties / hangers / items / properties / width_mm / maximum
        Added value: +8000
      • changedInput schema / properties / hangers / items / properties / x_mm / description
        Previous value: -"Left edge, mm from the wall's left edge"New value: +"Left edge, mm from the wall's left edge (x + width at most 8000, the widest wall)"
      • addedInput schema / properties / hangers / items / properties / x_mm / maximum
        Added value: +7990
      • changedInput schema / properties / system / properties / top_clearance_mm / maximum
        Previous value: -1500New value: +4000
  7. 2 tool updates
    • First observedfrench_cleat_plan
    • First observedmft3_hole_pattern

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables professional furniture design from dimensions and type to a complete manufacturing package, including structural validation, cut optimization, BOM generation, assembly instructions, interactive HTML report with 3D viewer, and optional FreeCAD export.
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables users to design flat-pack furniture such as bookcases, cabinets, cubes and desks through natural-language conversation, then generates CNC-ready DXFs, cut and hardware lists, printable assembly instructions and a quote request for a fabricator.
    10
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    SmartCut is a hosted cutting-optimisation API. It turns a list of parts and available stock into machine-ready cutting patterns for sheet materials (plywood, MDF, glass, plastic, sheet metal), linear stock (timber, bar, pipe, extrusion) and roll goods. Guillotine and true-shape nesting modes, with grain direction, per-part orientation locks, edge banding, blade kerf and stock trim.
    2
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 2D irregular polygon nesting (bin-packing) with tools to design, preview, get reports, and export DXF files for laser cutting or CNC routing.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources