Plasticity MCP
Control and inspect a local Plasticity CAD session through MCP, using core tools plus a catalog dispatcher for the full operation set.
Connect to an explicitly selected Plasticity window and list available windows.
Read document status, revision, body bounds, topology counts, and Undo/Redo state.
Inspect current user selection, including bodies, faces, edges, groups, instances, and regions.
Capture scene snapshots and get structured diffs/changes since a baseline.
List exact B-Rep body details with topology IDs, or inspect one body.
Save viewport screenshots to PNG without overwriting files.
Reconcile the scene after a timeout or disconnect before further mutations.
Browse the bounded tool catalog and invoke registered Plasticity MCP operations by exact name with their original validation and safety checks.
Via the full catalog/README scope: create and edit native CAD geometry, import/export, take document actions, use optional Workbench review/measurement/annotation tools, and optionally prepare print jobs with explicit confirmation.
Provides an optional Creality Print workflow for slicing and print-job preparation, with the agent waiting for explicit user confirmation before starting a print.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Plasticity MCP create a 20mm cube and export as STEP"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Plasticity MCP
Control Plasticity from an MCP client: inspect and measure native CAD geometry, create and edit models, and export the result. An optional Workbench supports model review, dimensional feedback, and print preparation.
Runs locally on macOS Apple Silicon with Plasticity 26.1.3, with experimental adapter support for a separately prepared 26.2.1 copy. The MCP server connects to a Plasticity window selected by the user; it cannot run as a standalone cloud CAD service.
CAD workflow | What the server provides |
Inspect | Scene state, precise B-rep measurements, and references to bodies, faces, and edges |
Model | Native creation and editing with document history, Undo, and Redo |
Deliver | Document operations, import/export, and camera screenshots |
Review | Optional local Workbench with measurement tables, dimensional feedback, and tablet annotations |
The server uses Plasticity's own command factories and document history through a loopback-only Electron CDP endpoint. It does not patch or re-sign the application. MCP geometry inputs use millimeters and degrees; native edits support Plasticity Undo and Redo.
What it provides
Native Plasticity scene inspection, precise B-rep measurements, and revision-bound references to bodies, faces, and edges.
Native CAD creation and editing, document operations, import/export, and camera screenshots.
Agent guidance and workflows for image/sketch-driven design, functional clarification, fasteners, and practical strength screening.
Optional Workbench for viewing models and measurement tables, submitting validated dimensional feedback, and tablet annotations on the same local network.
Optional Creality Print workflow for slicing and print-job preparation. The agent waits for explicit user confirmation before starting a print.
See the full tool reference, acceptance matrix, and Workbench operations guide for details and current verification status.
Related MCP server: CadKitty
Requirements
macOS on Apple Silicon
Plasticity 26.1.3 installed at
/Applications/Plasticity.appNode.js 24 or newer
Codex CLI for the Git-backed plugin installation below
This is an early, version-specific project. Live CAD and slicer operations depend on the installed applications and are not covered by mock tests alone. Check the acceptance matrix before relying on a specific operation.
Install and run
git clone https://github.com/Mesteriis/plasticity-mcp.git
cd plasticity-mcp
npm install
npm run start:plasticity
npm run setup:codexsetup:codex adds this GitHub repository as a Codex plugin marketplace and installs the plasticity-mcp plugin from Git. It records this checkout's path in a private file under ~/.plasticity-mcp so the two MCP servers can run the checked-out code and its installed dependencies. No machine-specific paths are committed. Open a new Codex chat after installation.
To use the MCP server without the plugin, register it directly instead:
codex mcp add plasticity -- npm --prefix "$PWD" startAsk the agent to call plasticity_list_windows, then connect to an explicitly selected window with plasticity_connect.
The default MCP catalog shows the core connect, inspection, change-tracking, and screenshot tools plus plasticity_call. For any other operation, use plasticity_call with toolName: "catalog" and a search query to get its name and input schema, then call it through the same dispatcher. The full catalog remains available with npm run start:full; existing handlers and validation are the same in both modes.
The launcher does not terminate an existing Plasticity process to add MCP access. If it reports that a restart is needed, save your documents, close Plasticity yourself, then rerun the command. CDP listens on loopback only.
Before starting a new process, the launcher reads the Electron framework's fuse
configuration. It requires EnableNodeCliInspectArguments; builds that disable
or remove it fail immediately with a compatibility error instead of an inspector
timeout. The official Plasticity 26.2.1 build disables this fuse, so its
unmodified bundle remains unsupported by this startup method. An unreadable or
unrecognized fuse configuration also stops the launch with a diagnostic. The
check only reads the framework; it does not change application security settings.
The adapter can use a separately prepared experimental 26.2.1 copy with an available inspector. It handles the Electron 42 startup pause, native binding discovery, stores, selection, and changed factory contracts while preserving the 26.1.3 path. Select that copy explicitly and use a fresh temporary profile:
npm run start:plasticity-isolated -- --application /absolute/Experimental/Plasticity.appUse the returned renderer endpoint as PLASTICITY_CDP_URL, then explicitly select
its window through MCP. The launcher does not prepare, patch, or sign the copy.
See the 26.2.1 compatibility report for the
security prerequisites, exact live coverage on both versions, and remaining
validation limits. See Electron's fuse documentation
for the inspector flag's behavior.
Optional Workbench
The Workbench is not required for chat-based use. Start it on the local machine with:
npm run start:workbenchIn another terminal on the same Mac, run npm --workspace workbench run open:owner to open an authenticated owner session. The server address alone does not grant owner access.
To make it reachable by a tablet on the same private network, run npm run start:workbench -- --lan; the server prints its local address. Do not expose it to the public internet. Follow the Workbench guide for registration, sharing, backup, and recovery.
Development
npm test
npm run typecheck
npm --prefix workbench test
npm --prefix workbench run typecheck
npm --prefix workbench run buildLive acceptance checks use a real Plasticity session and can mutate a document. Read the corresponding acceptance guide and explicitly select a disposable test document before running them; they are not part of the default test suite.
Safety and scope
Mutations are serialized and checked against the current document revision; stale references are rejected.
After a timeout or lost connection during a mutation, inspect/reconcile the scene before issuing another change.
Workbench dimensional inputs are validated in the browser and again on the server.
Print submission and starting a print are separate actions; starting requires explicit user confirmation.
This project does not replace Plasticity, provide certified engineering analysis, or guarantee printability or part strength. Strength tools are screening calculations whose assumptions and limitations must be reviewed.
Contributing and support
Read CONTRIBUTING.md before opening a pull request. Report security issues using the private reporting process in SECURITY.md. See SUPPORT.md for bug reports, feature requests, and usage questions. Contributions are released under the MIT License, with copyright attributed to Aleksand Meshchriakov.
Available Tools
11 toolsplasticity_body_infoBRead-only
Read one body from the current document revision.
Inputs: id (required).
plasticity_callPlasticity tool catalog and dispatcherADestructive
Browse the bounded catalog of registered Plasticity MCP operations or invoke one by its exact tool name. Use toolName='catalog' with query/offset/limit to read descriptions and JSON input schemas; set toolName to a returned operation name and pass its arguments object to invoke it. Only registered MCP operations are callable; the selected operation's original Zod schema and safety checks are applied. This is not JavaScript execution.
Inputs: limit, query, offset, toolName, +1 more.
plasticity_capture_snapshotARead-only
Capture an in-memory scene baseline before manual edits. Returns only the snapshot ID, document/revision identity and object counts; use that ID with plasticity_changes_since or plasticity_wait_for_change.
Inputs: label.
plasticity_changes_sinceARead-only
Return a structured diff from a captured scene baseline. Exact changed-body B-Rep descriptors are summarized and paginated (bodyOffset default 0, bodyLimit default 20, maximum 100); follow bodyPagination.nextOffset with expectedRevision set to current.revision. Use plasticity_body_info for detailed topology of selected bodies. The diff also reports sketch Regions, construction planes, materials, visibility, instances, groups, and selection. Check sceneChanged for a reportable scene edit; revisionChanged can be true without a reportable scene diff.
Inputs: snapshotId (required), bodyLimit, bodyOffset, expectedRevision.
plasticity_connectADestructive
Connect this MCP process to one explicit Plasticity window and return its compact initial scene summary. Body bounds/counts are paginated; use plasticity_body_info for exact topology of a selected body.
Inputs: targetId (required).
plasticity_current_selectionARead-only
Read bodies, linked instances, approximate reference meshes, groups, faces, edges, regions, and native Wire boundary/control handles currently selected by the user in Plasticity.
Inputs: no named parameters.
plasticity_list_bodiesARead-only
List exact native B-Rep body details with topology IDs. Results are paginated (bodyOffset default 0, bodyLimit default 10, maximum 100); follow bodyPagination.nextOffset and pass the previous page's revision as expectedRevision so edits cannot mix pages. Prefer plasticity_body_info when only one body is needed. Cone faces also report native basis radius, axis origin/direction, and semi-angle in radians when Plasticity provides them.
Inputs: bodyLimit, bodyOffset, expectedRevision.
plasticity_list_windowsBRead-only
List Plasticity document windows exposed on loopback CDP.
Inputs: no named parameters.
plasticity_reconcileARead-only
Read the document after a timeout or disconnect and allow later mutations without retrying the uncertain command.
Inputs: no named parameters.
plasticity_screenshotA
Save a PNG screenshot of the visible Plasticity renderer viewport to a new file without overwriting. Refuses hidden windows to avoid stale frames.
Inputs: path (required).
plasticity_statusARead-only
Read a compact document summary with identity, revision, exact body bounds, topology counts, and Undo/Redo state. Body summaries are paginated with bodyOffset/bodyLimit (default 0/50, maximum 200); follow bodyPagination.nextOffset and pass the prior page's revision as expectedRevision so scene edits cannot mix pages. Use plasticity_body_info for exact face/edge/vertex geometry of one body, or plasticity_list_bodies for paginated topology details.
Inputs: bodyLimit, bodyOffset, expectedRevision.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Many tools have overlapping read purposes: plasticity_status, plasticity_list_bodies, plasticity_body_info, plasticity_current_selection, and plasticity_changes_since all return document/body info. Descriptions provide guidance to distinguish them, but an agent could easily pick the wrong read tool. plasticity_call adds a meta-tool that can invoke other operations, further blurring boundaries.
All tools use the plasticity_ prefix and mostly follow verb_noun or clear noun patterns (list_windows, connect, status, capture_snapshot, changes_since, list_bodies, body_info, reconcile, screenshot, call). Minor deviations like 'status' and 'connect' being verb-only, and 'call' being a generic meta-verb, but overall consistent.
11 tools is well within the 3-15 sweet spot and the set appears scoped to a 3D modeling session lifecycle plus a generic operation invoker. Each tool covers a distinct phase (connect, snapshot, diff, inspect, reconcile) without obvious redundancy in count.
The surface covers connection, status, selection, snapshots, diffs, body listing, body info, screenshot, and a generic call mechanism. It lacks explicit mutation tools, but plasticity_call may invoke registered operations, and reconcile handles uncertain mutations, so core lifecycle is mostly covered with a minor gap around direct mutation discovery.
Maintenance
Related MCP Connectors
Parametric 3D CAD for AI agents: build print-ready parts, check them, export STL, 3MF or STEP.
CAD in ChatGPT and Claude: editable parts, STEP/STL/drawings, in-chat 3D, automatic checks.
Connect your AI to your own devices, 3D printers, factory tools and a shared agent task pool.
Text-to-CAD: build exact STEP or 3MF/STL on the server, each stated requirement measured.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables people and general-purpose AI agents to inspect, model, edit, verify, and export local 3D projects through MCP tools, including print preparation, without requiring a hosted 3D service key.10MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to build and edit native CAD parts and assemblies, inspect saved geometry and measurements, retain revisions, run mechanism and interference checks, and export STEP/STL/GLB artifacts through MCP tools.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to drive desktop CAD software through natural language with verified execution, failure recovery, and traceable results across modeling, assemblies, drawings, exports, motion, FEA, and related engineering workflows.MIT
- FlicenseBqualityCmaintenanceEnables AI agents to drive SolidWorks for parametric modelling, aerospace part generation, sheet metal, weldments, assemblies, drawings, simulation, inspection, and file export. It provides approval-gated operations, verification tools, and journaling for safe, recoverable design automation.94-