What the surfcad MCP server does
The surfcad MCP server repository provides the building blocks for connecting an agent workflow to SurfCAD, a web CAD application built on a custom Manifold kernel. Its main usable package is packages/surfcad, a helper library that re-exports functions for loading the kernel, running CAD scripts, creating a helper scope, and exporting models.
The repository also contains a Claude-oriented skill under plugins/surfcad/skills/surfcad. That skill gives an agent instructions and reference material for working with the SurfCAD workflow. The project does not provide API keys and does not invoke a hosted language model; the agent supplies its own model.
The MCP package itself is pre-release. packages/mcp-server is currently a placeholder rather than a completed stdio implementation, so the repository should not be treated as a ready-to-install MCP tool provider.
How it works
The helper library includes a vendored manifold.wasm file. It resolves that WebAssembly module relative to the installed package, allowing use from node_modules/surfcad without depending on the current process directory. The bundled kernel is the custom version shipped with 3dculos, not the npm manifold-3d package.
CAD operations are expressed through scripts and evaluated with the helper runtime. The repository tests exercise a filleted box, a two-body assembly, and a bent sheet. They check operation status, bounding boxes, volume, body count, and whether STL, 3MF, and STEP exports contain data.
The repository pins an upstream 3dculos commit in packages/surfcad/UPSTREAM. A synchronization script copies the listed runtime and catalog files into vendor/ and creates vendor/MANIFEST.json; continuous integration checks that the vendored tree remains reproducible.
Setup and configuration
The repository is not published in the package versions referenced by its plugin configuration. The plugin points to surfcad-mcp@0.1.0, but that version is not yet available from the npm registry. The existing surfcad and surfcad-mcp npm names only have 0.0.1 placeholders, described as coming soon.
For repository development, run the test command from the project directory:
The documented Claude Code setup adds the marketplace from GitHub and installs the SurfCAD plugin. A standalone stdio command is also shown, but it depends on the unpublished surfcad-mcp@0.1.0 package. Grok Build and Hermes have equivalent documented commands using the same package reference.
Claude.ai and Cowork can receive the skill through the marketplace or by uploading the plugin folder, but this revision only supplies stdio MCP configuration. As a result, chat use receives the skill without working tools unless a remote HTTP server is provided. The Claude API path supports uploading the skill directory.
Tools and capabilities
The surfcad MCP server repository supports these library-level capabilities:
- Load the vendored Manifold WebAssembly kernel with
loadManifold.
- Execute CAD scripts with
runScript.
- Create the runtime helper environment with
helperScope.
- Export generated geometry as STL, 3MF, or STEP.
- Use the packaged SurfCAD skill and its generated reference files.
These are repository and helper-library capabilities, not a confirmed list of callable MCP tools. The MCP server package has not reached the implementation stage described for a working stdio process.
Limitations and notes
This is version 0.1.0 pre-release material. The MCP server, registry metadata, registry publishing flow, and npm publication are incomplete in this revision. There is one skill directory, with no copies under .claude/skills or .agents/skills.
The project does not include a hosted model, remote service, or documented API-key configuration. Agents must provide their own model and execution environment. If you need a currently published MCP server with discoverable tools, this repository does not yet establish that capability.
The Apache-2.0 license applies to the project. The repository also vendors files from a pinned upstream source and provides a sync check to detect changes.