onshape-mcp
onshape-mcp
Servidor MCP que impulsa OnShape CAD desde Claude Code: modelado paramétrico (bocetos, extrusiones, revoluciones, empalmes, patrones), consultas de FeatureScript y exportación/verificación de STL, mediante la API REST de OnShape.
Configuración inicial
uv sync --no-editable
uv run --no-editable onshape-mcp setup # writes ~/.config/onshape-mcp/.env (chmod 600); no-op if it exists
uv run --no-editable onshape-mcp doctor # auth smoke test against the live API (4 calls)¿Por qué
--no-editableen todas partes? macOS marca de forma asíncrona los archivos bajo.venvcon el atributohidden, y Python ≥3.13.8 omite los archivos.pthocultos — las instalaciones editables dejan de importar silenciosamente minutos después de una sincronización. Las instalaciones no editables no usan.pthy son inmunes.
Related MCP server: MCP 3D Printer Server
Credenciales
Las claves de API provienen de https://dev-portal.onshape.com/keys (clave de acceso y clave secreta). Las credenciales viven SOLO en ~/.config/onshape-mcp/.env, creado por onshape-mcp setup con permisos 600 (solo lectura/escritura del propietario) — nunca en carpetas del proyecto, nunca en el repositorio, nunca se imprimen. Consulta .env.example para los nombres de las variables; el entorno del proceso (ONSHAPE_ACCESS_KEY / ONSHAPE_SECRET_KEY) tiene prioridad sobre el archivo si ambos existen.
Registro por proyecto
Desde la carpeta del proyecto CAD donde quieras que el servidor esté disponible (sustituye /path/to/onshape-mcp por donde hayas clonado este repositorio):
/path/to/onshape-mcp/install.sho de forma equivalente:
claude mcp add --scope project onshape -- \
uv run --quiet --no-editable --project /path/to/onshape-mcp onshape-mcpo regístralo manualmente en el .mcp.json del proyecto:
{
"mcpServers": {
"onshape": {
"command": "uv",
"args": ["run", "--quiet", "--no-editable", "--project", "/path/to/onshape-mcp", "onshape-mcp"]
}
}
}(--project, no --directory: el servidor resuelve el venv de este repositorio pero conserva el directorio actual del llamador. Los parámetros de rutas de archivo de las herramientas deben ser rutas absolutas de todos modos.)
Las servidores de proyecto muestran “Pendiente de aprobación” en la primera sesión interactiva: aprueba cuando se te solicite.
Referencia rápida de uso (para el LLM que maneja las herramientas)
Flujo típico de construcción
create_document (parentId = folder id) -> documentId, workspaceId, partStudioElementId
import_cad (ABSOLUTE path to .zip/STEP) -> foreign CAD into an existing workspace [async, +quota]
set_variable (optional, e.g. wall_thk) -> use "#wall_thk" in later expressions
create_sketch (plane {"default":"TOP"}) -> featureId [one closed profile per sketch]
extrude (sketchFeatureId, NEW, depth) -> base solid
create_sketch + extrude REMOVE THROUGH_ALL [holes: skip native hole feature]
find_entities (EDGE, radiusBetween) -> transient ids for fillet/chamfer
fillet_or_chamfer (entityIds) -> check featureStatus == OK after EVERY feature
pattern / revolve / boolean_parts as needed
export_stl (ABSOLUTE path) -> compare_stl(candidate, reference) [mesh: 3D-print, verify]
export_step (ABSOLUTE path) -> editable STEP B-rep solid [CAD/prototyping; async, +quota]Reglas de hierro
Los IDs transitorios caducan DESPUÉS de cualquier mutación. Llama siempre a
find_entitiesinmediatamente antes de la herramienta que consuma dichos IDs. Los IDs de features (decreate\_sketch/extrude/...) son estables — úsalos donde se acepten (regiones de extrude, semillas de patrón, cuerpos booleanos).Unidades: los parámetros y resultados de las herramientas están en pulgadas por defecto (parámetro
unitspara cambiar). Las cadenas de dimensión se pasan tal cual:"1.53 in","25 mm","#wall_thk * 2". Los ángulos se miden en grados. Los resultados crudos deeval_featurescriptestán en METROS/radianes.featureStatus es el bucle de regeneración:
OKsignifica continuar;ERRORsignifica que el feature se añadió pero falló — corrige los parámetros conupdate_featureodelete_featurey reintenta. Compruébalo después de cada llamada de modelado.extrude REMOVE resta de TODOS los sólidos del estudio (defaultScope). Mantén una sola pieza por estudio salvo que esa sea tu intención.
Un solo perfil cerrado por sketch mantiene clara la selección de la región de extrude.
Las rutas de archivo deben ser ABSOLUTAS (el cwd del servidor no es el del proyecto).
Sé prudente: ~2,500 llamadas de API al AÑO. No hagas polling ni vuelvas a listar sin necesidad; de todas formas
analyze\_stl/compare\_stlcuestan cero llamadas.
Aviso de cuota
Las cuentas EDU/Free de OnShape tienen una cuota anual de API (~2,500 llamadas/usuario/año); al agotarse devuelve 402 y ningún backoff lo soluciona. Este servidor mantiene un contador persistente en ~/.config/onshape-mcp/call_log y un total acumulado por stderr. Supervisa el uso en OnShape en Mi cuenta → Desarrollador.
Desarrollo
uv run --no-editable pytest # offline tests (no API calls, no credentials needed)
uv run --no-editable onshape-mcp doctorLicencia
MIT — consulta LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables programmatic CAD modeling with Onshape's REST API, offering 45 tools for parametric sketches, feature management, assemblies, analysis, variables, and exports.45126
- AlicenseNot gradedqualityDmaintenanceEnables users to connect Claude with various 3D printer management systems, allowing tasks like printer status monitoring, file management, print job control, and STL file manipulation.103GPL 2.0
- AlicenseBqualityCmaintenanceEnables Claude to drive Rhino 8 and Grasshopper for geometry creation, manipulation, and analysis via natural language.1003MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to create 3D-printable CAD models using build123d, with tools for modeling, modification, analysis, and publishing to platforms like Thingiverse and GitHub.11Creative Commons Attribution Non Commercial No Derivatives 4.0 International
Related MCP Connectors
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Read, edit, publish, and preview your pepita websites from Claude.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kyle-nelson-berkeley/onshape-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server