# smlibpy > smlibpy is a Python library for 3D CAD modeling on SMLib, the open-source NURBS kernel. It comes with an MCP server: agents write Python with smlibpy, the server runs it, shows the model in a live viewer on 127.0.0.1, renders pictures and saves STEP, STL and glTF files. It needs no account and runs on the user's machine. ## Install the MCP server The server is started with uv (https://docs.astral.sh/uv/). If `uvx` is missing, install uv first. Claude Code, with the plugin (the server and a skill): claude plugin marketplace add awv-informatik/smlibpy claude plugin install smlibpy@smlibpy Claude Code, the server only: claude mcp add smlibpy --scope user -- uvx --from "smlibpy[mcp]" smlibpy-mcp Other hosts (Claude Desktop, Cursor, VS Code, Codex, OpenCode) take the same command. As JSON: { "mcpServers": { "smlibpy": { "command": "uvx", "args": ["--from", "smlibpy[mcp]", "smlibpy-mcp"] } } } After installing, tell the user to start a new session and ask for a part. ## Use - Read the guides first: docs(["SKILL", "recipes/modeling", "recipes/verification"]). - Build with run_script in steps; check volume, bounding box and is_valid() after each; look with snapshot(view="sheet"). - Deliver with save(format="step", path=...). ## Docs - Documentation: https://smlibpy.classcad.ch/docs/ - Agents (MCP): https://smlibpy.classcad.ch/docs/mcp - Source: https://github.com/awv-informatik/smlibpy