MeshMend
io.github.Keith-CYPublished by GitHub account Keith-CYv0.1.0Updated Oct 30, 2026
Check and repair STL and 3MF meshes on your own computer: holes, flipped faces, inside-out shells.
Overview
Local MCP server that lets an assistant inspect and repair STL and 3MF 3D-printing meshes on your own computer, reporting holes, flipped faces and inside-out…
- What you can do
- Check a mesh file and report size, triangle and shell counts, every defect with counts, and a verdict on whether automatic repair would help
- Repair a mesh by removing duplicate and zero-area faces, fixing winding and turning inside-out shells outward, optionally capping flat holes
- Convert a 3MF file to binary STL in millimetres, applying build transforms and units
- Return results as readable text plus structured JSON, and write repaired or converted copies next to the original without overwriting it
- When to use it
- Useful when you work with 3D-printing files and want an assistant to tell you why a slicer rejects a model, whether a repair is likely to succeed, or to produce a cleaned STL copy from an STL or 3MF file.
- Requirements
- Runs as a local stdio process; needs Node.js 18+ (npx), or git when installing from the GitHub source, or the one-click Claude Desktop bundle. No accounts, API keys or network access are used. Give the assistant absolute file paths.
Installation
In SourceWeft
- Open MeshMend in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
MeshMend — MCP server
English · 中文
Check and repair 3D-printing meshes (STL and 3MF) from an AI assistant that can run tools on your computer: Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Codex CLI, Gemini CLI or any other MCP client that starts local servers.
Ask “is ~/prints/bracket.stl watertight?”, “why does my slicer say this model has holes?” or “把这个 3MF 转成 STL”: the assistant reads the file on your machine, tells you exactly what is wrong (holes, flipped faces, inside-out shells, non-manifold edges, duplicate triangles), says honestly whether an automatic repair will fix it, and writes a repaired copy next to the original.
Your files never leave your computer. The server runs locally, reads and writes only the files you name, makes no network requests and has no telemetry. The original file is never overwritten. It is the same mesh code as the free in-browser tool at mesh-mend.pages.dev.
Status: version 0.1.0, on npm as
meshmend-mcp:npx -y meshmend-mcp(needs Node.js 18+).npx -y github:Keith-CY/meshmend-mcp(also needs git) runs the same build, and Claude Desktop users can install the one-click bundle from Releases.
Tools
Every result comes as readable text and as structured JSON (structuredContent, with an outputSchema). check_mesh is marked read-only; the other two only create new files (destructiveHint: false).
Where results go: next to the input, as <name>.repaired.stl (or <name>.stl for a conversion), then -2, -3, … rather than replacing anything. With output_path, an existing file is replaced only with overwrite: true, and the input file can never be the output.
Connect it
Claude Desktop
One click: download meshmend-mcp-0.1.0.mcpb from Releases and open it (or Settings → Extensions → Advanced settings → Install extension…). Claude Desktop runs it with its built-in Node.js.
Or by hand: Settings → Developer → Edit config and add to claude_desktop_config.json:
Claude Code
Cursor
~/.cursor/mcp.json (or .cursor/mcp.json in a project):
VS Code (GitHub Copilot)
.vscode/mcp.json:
Windsurf
~/.codeium/windsurf/mcp_config.json: the same mcpServers block as Cursor.
Codex CLI
~/.codex/config.toml:
Gemini CLI
~/.gemini/settings.json:
Any other client
Any MCP client that starts local (stdio) servers can run npx -y github:Keith-CY/meshmend-mcp, or node /path/to/meshmend-mcp/dist/meshmend-mcp.js from a checkout (the file has no dependencies). Ready-made files are in examples/clients/.
Give the assistant absolute paths (~ is expanded). Relative paths are resolved from the server’s working directory, which in desktop apps is often not your project folder.
Real files, before and after
From this repository’s tests and a local run (npm test repeats all but the bunny and the sphere):
What it fixes, and what it doesn’t
It fixes:
- duplicate faces and zero-area (degenerate) faces;
- inconsistent face winding (flipped normals) across ordinary shared edges;
- closed shells that are inside out, when they don’t overlap other shells;
- with
fill_holes: true: simple flat holes (3–128 boundary vertices) whose bounding-box diagonal is withinmax_hole_span_mm.
It does not:
- weld nearby vertices (only exactly equal coordinates are joined), so it can’t close seams between surfaces;
- split non-manifold edges or vertices, remesh, or rebuild a solid;
- repair self-intersections, union overlapping parts, or check wall thickness, overhangs or supports;
- cap curved holes, nested openings or holes wider than the span;
- guarantee that a model prints. Open the result in your slicer.
Because some openings are intentional, hole filling is off unless asked for. check_mesh runs the repair in memory first, so its verdict says whether repair_mesh will actually help before anything is written.
Limits: 30 MiB per file and 250,000 triangles (the same as the website). 3MF: the primary build, components, transforms, production-extension part references and units; ZIP64, unsupported required extensions, mixed units across parts and G-code-only packages are refused with an explanation. Colours, materials and print settings are not carried into STL.
Privacy
MeshMend’s MCP server works only on your computer. It reads the files you or your assistant name and writes new STL files; it sends nothing anywhere, has no analytics or telemetry, and keeps no logs. Your AI assistant sees the tool results (counts, sizes, file paths and messages) like any other tool output, under that assistant’s own privacy terms.
Development
src/core/ is MeshMend’s mesh code, copied unchanged from the website so both give the same answers. dist/meshmend-mcp.js is a single bundled file (committed, so npx github: needs no build step); NOTICE lists the bundled packages and their licences.
Licence
MIT. The three trimesh test files are MIT-licensed by their authors (details).
The in-browser version, with a 3D preview and before/after comparison: mesh-mend.pages.dev.
Source: README.md at commit c0df49a
Tools
0Version history
1- v0.1.0LatestOct 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts