gridfinity-mcp

gridfinity-mcp

Turns natural-language requests into printable Gridfinity STL/STEP files for bins, baseplates, and drawer spacers using CadQuery.

Category
Visit Server

README

Gridfinity MCP

A local MCP server that turns natural-language requests into printable Gridfinity STL/STEP files. No more dragging sliders on a website — ask Claude for "a 6×1 tray split into 3, 4 units tall" and get an STL.

It wraps the cqgridfinity geometry engine (CadQuery / OpenCascade).

Tools

Tool What it makes Key inputs
gridfinity_generate_box A bin length_u, width_u, height_u, length_div, width_div, holes, scoops, labels, no_lip, solid
gridfinity_generate_baseplate A baseplate grid length_u, width_u, corner_screws, ext_depth
gridfinity_generate_drawer_spacer Edge fillers to fit baseplates into a real drawer drawer_width_mm, drawer_depth_mm, tolerance

Units: 1 grid unit = 42 mm (X/Y), 1 height unit = 7 mm (Z). All geometry is standard 42 mm Gridfinity, so everything is cross-compatible with off-the-shelf Gridfinity parts. Files are written to GRIDFINITY_OUTPUT_DIR (default ~/Gridfinity_STL).

Install

cd gridfinity-mcp
python3 -m venv .venv && source .venv/bin/activate   # recommended
pip install -r requirements.txt
python3 smoke_test.py        # confirms the CAD kernel renders on your machine

cqgridfinity pulls a matched CadQuery + OpenCascade (cadquery-ocp) automatically. CadQuery also needs nlopt, which has prebuilt wheels for normal desktop platforms.

Add it to Claude

Add to your MCP config (Claude Desktop: claude_desktop_config.json; Claude Code / Cowork: .mcp.json). Use absolute paths.

{
  "mcpServers": {
    "gridfinity": {
      "command": "python3",
      "args": ["/ABSOLUTE/PATH/TO/gridfinity-mcp/gridfinity_mcp.py"],
      "env": { "GRIDFINITY_OUTPUT_DIR": "/ABSOLUTE/PATH/TO/Gridfinity_STL" }
    }
  }
}

If you used a venv, point command at that venv's python, e.g. /ABSOLUTE/PATH/TO/gridfinity-mcp/.venv/bin/python.

Fitting a 42 mm grid into a non-grid drawer

Real drawers are rarely a multiple of 42 mm. The standard Gridfinity approach (and what this server does) is: lay the largest whole-cell baseplate that fits, then fill the leftover lip with spacers. Call gridfinity_generate_drawer_spacer with the interior drawer size — its summary tells you the baseplate cell count to generate.

Worked example — the kitchen drawer (335 × 500 mm interior)

This keeps the freestanding utensil organizer and fills the rest:

  • Catch-all area (front-left, ~257.5 × 100 mm): baseplate 6 × 2 (252 × 84 mm) + a 6 × 2 box, or two 3 × 2 boxes.
  • Back strip (~257.5 × 45 mm): baseplate 6 × 1 + a 6 × 1 box.
  • Spatula strip (right wall, ~77.5 × 500 mm): baseplate 1 × 11 (split for the bed) + boxes; the 77.5 mm width leaves a ~35 mm lip — fill it with a drawer spacer.
  • Lip everywhere: run gridfinity_generate_drawer_spacer(drawer_width_mm=335, drawer_depth_mm=500) to take up the slack so nothing slides.

Note on the trade-off vs. gridfinitygenerator.com: that website can set a custom grid unit and custom outer size to fill odd widths exactly, but those bins no longer interchange with standard 42 mm parts. This server keeps the true 42 mm standard and absorbs odd drawer dimensions with spacers instead. Pick based on whether cross-compatibility matters to you (it does for the toolbox project).

Notes / limits

  • v1 covers box, baseplate, and drawer spacer. GridfinityRuggedBox (lidded cases) and a custom grid-unit option are easy follow-ups.
  • Generation is CPU-bound; large/complex models take a few seconds.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured