MCP Server for CAD — Model Context Protocol

Twenty-eight MCP tools that let Claude Code, Claude Desktop or Cursor build, check and export print-ready 3D models. Streamable HTTP, bearer-token auth.

The OwlCAD MCP server

An MCP endpoint that gives an agent a real CAD kernel: author a parametric tree, evaluate it, render it, check it prints, export it, and save it as a project. Stateless Streamable HTTP — every call is a self-contained POST.

https://mcp.owlcad.com · Pro plan required · No AI credits spent

Connecting

Any MCP client that speaks HTTP works. Claude Code, Claude Desktop and Cursor are the ones we test against. Claude Desktop takes a different block from the other two, so the config panel carries a tab for each.

In OwlCAD, open Account → Access tokens and create one. Give it only the scopes you need; read alone is the default. Copy it immediately; only a hash is stored.

Add the server to your MCP client’s config. Claude Code and Cursor take the URL directly, with the token in an Authorization header. Claude Desktop’s config file cannot hold a remote server at all, so its block runs the mcp-remote bridge instead — or skip the file entirely and use the Desktop connector below.

Restart the client, then have the agent read owlcad://schema/primitives before it builds anything.

Claude Code · Cursor — .mcp.json

{ "mcpServers": { "owlcad": { "url": "https://mcp.owlcad.com", "headers": { "Authorization": "Bearer owlcad_pat_…" } } } }

Claude Desktop — claude_desktop_config.json

{ "mcpServers": { "owlcad": { "command": "npx", "args": [ "-y", "mcp-remote", "https://mcp.owlcad.com", "--header", "Authorization:${AUTH_HEADER}" ], "env": { "AUTH_HEADER": "Bearer owlcad_pat_…" } } } }

Using Claude Desktop? The Desktop connector section below is easier — no file, no token. This block is for anyone who would rather keep a credential in a config file. Claude Desktop’s config file understands only locally launched servers, so mcp-remote is what carries the connection out to us. Copy that block exactly: the colon in “Authorization:” is followed by no space, and the token belongs in env rather than inline, because Claude Desktop on Windows drops the escaping around spaces inside args and mangles the header. It needs Node installed, and the first run downloads the bridge.

Desktop connector

Claude Desktop can reach the server through its own Connectors screen, with no config file at all. Nothing to edit, no token to copy, no Node to install — you sign in to OwlCAD in a browser and approve what the application may do.

In Claude Desktop, open Settings → Connectors → Add custom connector.

Paste the server URL and continue.

A browser opens. Sign in to OwlCAD, read what the application is asking for, and approve it.

URL

https://mcp.owlcad.com

The mcp-remote block above still works and is still supported. Use it if you would rather keep a token in a config file, or if your client has no Connectors screen — Claude Code and Cursor take the URL directly and are unaffected either way.

Connected applications are listed under Account → Access tokens, alongside your personal access tokens but in their own card. Disconnecting one stops it on its very next request.

Conventions

Stated in the initialize instructions and in owlcad://schema/conventions, because getting them wrong fails silently rather than loudly.

Millimetres for every dimension and coordinate.

Z-up — the build plate is the XY plane.

Rotations in DEGREES, not radians. A tree authored in radians renders as almost no rotation at all.

Exactly one geometry input per call: nodes, scad, or projectId.

Tools

Twenty-eight, covering the whole loop from authoring to a print-ready file. Each needs the scope shown; a token that lacks it gets a readable error naming the missing scope.

evaluate

Runs the real CSG kernel: watertight or not, triangle count, bounding size, printability warning.

print_check

Overhang area, thinnest wall, and whether it fits a named printer’s build volume.

measure

Volume, surface area, centre of mass and body count, plus the filament a print would use and what it would cost.

check_interference

Which top-level parts physically overlap, and by how much volume. The assembly check no render can show you.

render

PNG images of the model from named views — the tool that lets an agent see its own work.

export

Evaluates and returns a base64 STL, 3MF or OBJ.

export_step

STEP B-rep for CAD interchange, on a saved project. OCCT takes minutes, so it runs as a job: you get a handle and poll it.

job_status

Reports on a job handle. A slow analysis on a saved project is finished in the background rather than refused, and answers with one.

export_2d

Flattens the model to DXF or SVG: either its footprint, or a horizontal section at a height you choose.

save_project

Saves a model as a project on your account and returns its id and editor link.

list_projects

Your projects, newest first. How an agent finds an id.

get_project

Loads one of your projects and lists its nodes, with the version needed to update it.

create_upload

Hands back a URL to upload a local file to, so import_model and import_2d can take it without the bytes passing through the model’s context. If the client cannot upload, it also returns a link for the person to do it in their browser.

import_model

Imports an STL, OBJ or 3MF file as a new project, detecting the unit and reporting whether the mesh is watertight.

import_2d

Imports a DXF as a new project, turning every closed outline into an editable parametric extrude.

list_parts

The parametric, datasheet-dimensioned parts OwlCAD ships: brackets, fasteners, board and motor bodies.

update_project

Replaces an existing project’s geometry, keeping its id and link. Requires the version you read.

edit_nodes

The same edits against a tree you pass in, returned edited, with nothing saved. Iterate on a model without re-sending it, then evaluate or export the result.

edit_project

A targeted change: set a parameter, move, add or remove a node, group into a boolean, set a variable.

remix_project

Forks a public project into a new one you own, keeping the lineage link back to the original.

organize_project

Files a project into one of your folders, or takes it back out.

list_folders

Folders you own or belong to, where organize_project can file a project.

delete_project

Permanently deletes a project and its geometry.

repair_project

Welds cracks, closes holes and fixes face directions on any imported mesh that is not watertight.

split_for_printing

Cuts a body too big for the bed into two halves at a plane, with a joint — pins, keys, dowels or bolted — so they go back together. Both halves stay parametric.

share_project

Turns public link sharing on or off and returns the read-only link, which is what you hand to another person.

open_in_editor

The link that opens a project in the OwlCAD editor — usually the best thing to hand a person.

ask_help

Asks the OwlCAD documentation, in plain language, which tool does a thing, returning prose plus the ids of the guides it drew on. Answers from the docs only, and says so when they do not cover something.

Resources

Read-only, generated at runtime from the same registry the validator enforces — so what an agent reads and what gets applied cannot disagree.

owlcad://schema/primitives

Every shape, modifier and generator, with the valid range of every parameter. Read this first.

owlcad://schema/conventions

Units, axes, rotation units, smoothness tiers and the limits below.

owlcad://schema/fasteners

Screw, nut and heat-set-insert dimensions, so a hole matches the hardware you actually have.

owlcad://printers

Printer profiles and build volumes, for the printerId argument to print_check.

owlcad://materials

Filament materials with density and price — what measure’s weight and cost estimate is built on.

owlcad://project/{projectId}

A URI template: reads one of your projects as a resource, the same content get_project returns.

Limits

Bounds, not product quotas — an interactive session is tens of calls. Each is enforced per request.

Calls per token per day

2,000 (a batch counts once per message)

Projects created per account per day

100

Messages per JSON-RPC batch

32

Request budget

45 seconds

Inline export size

8 MB · 200,000 triangles

Imported mesh file

6 MB

Tokens per account

10

Point your agent at it.

Create a token, add the server to your client, and ask for a part. Pro plan required; no AI credits are spent.

Frequently asked questions

What is the OwlCAD MCP server?

An MCP (Model Context Protocol) endpoint at https://mcp.owlcad.com that gives an AI agent twenty-eight tools for building, checking, and exporting print-ready 3D models. Transport is Streamable HTTP and stateless — every call is a self-contained POST authenticated with a personal access token.

Which MCP clients work with it?

Any client that speaks MCP over HTTP — Claude Code, Claude Desktop, and Cursor are the ones we test. Claude Code and Cursor take https://mcp.owlcad.com directly, with your token in an Authorization header as a bearer credential. Claude Desktop is different: claude_desktop_config.json accepts only servers launched on your own machine, so it reaches the endpoint through the mcp-remote bridge, configured as a command with arguments rather than a URL. Copy that block from the MCP server page rather than typing it, because two details that look like mistakes are load-bearing: no space after the colon in the Authorization argument, and the token in env.

What are the units and conventions?

Millimetres, Z-up, and rotations in DEGREES. These are stated in the initialize instructions and in the owlcad://schema/conventions resource, because getting them wrong is the classic silent error — a rotation authored in radians renders as almost no rotation at all.

How do I know what shapes and parameters are valid?

Read the owlcad://schema/primitives resource first. It is generated at runtime from the same registry the validator enforces, so the ranges it publishes are the ranges that will actually be applied — an agent never has to guess a parameter name or a bound.

What are the limits?

2,000 calls per token per day, 100 projects created per account per day, up to 32 messages in a JSON-RPC batch, and a 45-second budget per request. Tokens are Pro-only and are re-checked on every request, so a lapsed subscription stops one immediately.

OwlCAD · Features · Pricing · Gallery · For schools · AI agents · MCP server · STL editor · STL viewer · 3MF editor · 3MF viewer · OBJ editor · DXF editor · STEP viewer · OBJ viewer · GLB viewer · AI 3D generator · Model customizer · Customizers gallery · Compare all · vs TinkerCAD · vs Onshape · vs Fusion 360 · vs FreeCAD · vs SelfCAD · vs OpenSCAD · All resources · Getting started · Video tutorials · Help center · Buy me a coffee ☕ · Contact · Open editor · Credits · Privacy · Terms