rhino-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| rhino_pointB | Add a single point to the document. |
| rhino_lineB | Add a line between two points. |
| rhino_polylineB | Add a polyline through the given points; optionally closed. |
| rhino_arcA | Add an arc by centre, radius, and sweep angle (in degrees). |
| rhino_circleB | Add a circle by centre and radius (optionally on a custom plane). |
| rhino_ellipseB | Add an ellipse on the world XY plane (rhino3dm builds it as a NURBS approximation). |
| rhino_rectangleA | Add a rectangle as a closed polyline on the XY plane. |
| rhino_polygonB | Add a regular polygon (inscribed or circumscribed) on the XY plane. |
| rhino_helixC | Add a helix sampled into a NURBS curve. |
| rhino_spiralC | Add a tapered spiral sampled into a NURBS curve. |
| rhino_nurbs_curveB | Add a NURBS curve from a control polygon. |
| rhino_interpolate_curveC | Add an interpolated NURBS curve passing through the given points. |
| rhino_rebuild_curveB | Rebuild an existing curve with a new point count and degree. |
| rhino_curve_lengthB | Return the curve's parametric domain and approximate length. |
| rhino_curve_point_atA | Evaluate position and tangent at a parameter on the curve. |
| rhino_curve_splitB | Split a curve at the given parameters; original is preserved. |
| rhino_boxC | Add a rectangular box (axis-aligned in standalone mode). |
| rhino_sphereC | Add a sphere primitive. |
| rhino_cylinderC | Add a cylinder; in standalone mode the axis must be world Z. |
| rhino_coneB | Add a cone primitive (bridge required for non-Z axes). |
| rhino_torusC | Add a torus primitive (mesh approximation in standalone mode). |
| rhino_boolean_unionC | Boolean-union the given Brep groups. Bridge required. |
| rhino_boolean_differenceB | Subtract |
| rhino_boolean_intersectionB | Intersect |
| rhino_shellA | Hollow a closed Brep, optionally leaving the listed faces open. |
| rhino_cap_holesC | Cap all open holes of a Brep. |
| rhino_plane_surfaceC | Add a finite plane (rectangular trim) on the given plane. |
| rhino_extrudeA | Linearly extrude a profile curve by |
| rhino_revolveC | Revolve a profile curve about an axis. |
| rhino_loftC | Loft a sequence of profile curves into a surface. |
| rhino_sweep1C | Sweep profiles along a single rail. |
| rhino_sweep2C | Sweep profiles along two rails. |
| rhino_network_surfaceC | Build a surface from a network of crossing curves. |
| rhino_patchC | Patch a region defined by boundary curves. |
| rhino_blend_surfaceC | Create a blend surface between two edges. |
| rhino_fillet_surfaceC | Create a constant-radius fillet between two surfaces. |
| rhino_offset_surfaceA | Offset a surface by |
| rhino_mesh_boxB | Add a quad mesh box with the given subdivisions. |
| rhino_mesh_from_surfaceC | Mesh a surface (bridge only). |
| rhino_mesh_from_brepC | Mesh a Brep (bridge only). |
| rhino_weld_meshC | Weld coincident vertices in a mesh. |
| rhino_unweld_meshC | Unweld vertices to break mesh smoothing. |
| rhino_reduce_meshB | Reduce a mesh to a target face count. |
| rhino_mesh_boolean_unionC | Boolean-union meshes. |
| rhino_mesh_boolean_differenceB | Boolean-difference meshes (a - b). |
| rhino_moveC | Translate (or copy) the given objects by a vector. |
| rhino_rotateC | Rotate objects about an axis through a centre point. |
| rhino_scaleC | Scale objects non-uniformly about a centre. |
| rhino_mirrorC | Mirror objects across a plane (copies by default). |
| rhino_array_linearC | Array objects along a vector with constant spacing. |
| rhino_array_polarC | Array objects in a polar pattern. |
| rhino_array_rectangularC | Array objects in a 3D rectangular grid. |
| rhino_orientC | Orient objects from one plane to another (PlaneToPlane transform). |
| rhino_selection_bboxC | Return the union bounding box of all objects in the document. |
| rhino_flowC | Flow objects from one curve onto another (bridge only). |
| rhino_cage_editC | Deform objects with a control cage (bridge only). |
| rhino_place_gridA | Replicate a source object on a count_x x count_y grid with given spacing. |
| rhino_stack_floorsA | Replicate a source object N times along world +Z with constant spacing. |
| rhino_scatterB | Scatter |
| rhino_replicate_along_curveB | Distribute copies of a source object along a curve at evenly-spaced parameters. |
| rhino_text_dotA | Add a small label that always faces the camera in Rhino. |
| rhino_textA | Add 3D text annotation. Bridge mode honours the active dim style; standalone uses text-dot fallback. |
| rhino_annotation_north_arrowA | Draw a north arrow centred on |
| rhino_annotation_scale_barA | Draw a divided scale bar with a label. |
| rhino_annotation_revision_cloudC | Draw a revision cloud (bumpy polyline) around a region of interest with a revision label. |
| rhino_annotation_calloutB | Add a callout (leader + balloon or boxed label). |
| rhino_dimension_linearC | Add a linear dimension between two points. |
| rhino_dimension_alignedB | Add an aligned dimension between two points. |
| rhino_dimension_angularB | Add an angular dimension at a vertex. |
| rhino_leaderB | Add a multi-point leader (with optional text). |
| rhino_hatchB | Add a hatch over the given closed curves. |
| rhino_clipping_planeC | Add a clipping plane to all viewports. |
| rhino_annotation_dimension_styleB | Register a reusable dimension style (bridge only — Rhino DimStyle table). |
| rhino_layer_createB | Create a layer with optional colour and visibility. |
| rhino_layer_deleteA | Delete a layer by name (in standalone mode the layer is hidden + name-prefixed). |
| rhino_layer_set_colorC | Change a layer's display colour. |
| rhino_layer_set_materialA | Bind a render material to a layer so layer-source objects inherit it. |
| rhino_object_move_to_layerB | Reassign one or more objects to a different layer (creating it if absent). |
| rhino_object_selectA | Select objects by ID and/or attribute filters. |
| rhino_object_deleteC | Delete the given objects from the document. |
| rhino_groupC | Group objects together under a (named) group. |
| rhino_material_createB | Create a material with diffuse colour, transparency, and glossiness. |
| rhino_material_assignC | Assign an existing material to one or more objects. |
| rhino_material_preset_listA | List physical-material presets bundled with rhino-mcp. |
| rhino_material_preset_createA | Create a document material from a bundled physical preset. Standalone uses rhino3dm's basic Material (diffuse / transparency / shine). Bridge mode also pushes the matching Rhino PBR render content + IOR for photoreal output. |
| rhino_render_viewportC | Render the active viewport to an image file (bridge required). |
| rhino_environment_setC | Attach an HDRI/EXR environment used for lighting + background (bridge only). |
| rhino_openB | Open a .3dm file and bind it to a doc_id. |
| rhino_saveC | Write the document to disk. |
| rhino_export_objC | Export selected (or all) objects to a Wavefront OBJ file (mesh-only). |
| rhino_export_stlC | Export meshes to an ASCII STL file. |
| rhino_importA | Import an external file into the active document (bridge required for non-3DM). |
| rhino_export_stepC | Export to STEP (bridge required). |
| rhino_export_igesC | Export to IGES (bridge required). |
| rhino_export_dxfC | Export to DXF (bridge required). |
| rhino_screenshotA | Capture a viewport screenshot (bridge required). |
| rhino_viewport_previewA | Capture a viewport preview restricted to a selection or layer set. |
| rhino_areaA | Compute the surface area of a mesh (Brep area requires bridge). |
| rhino_volumeA | Compute the volume of a closed mesh (Brep volume requires bridge). |
| rhino_bounding_boxB | Return the union bounding box of one or more objects. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| general_strategy | High-level decision tree for driving Rhino through rhino-mcp. |
| rhinoscript_workflow | Mandatory steps before invoking rhino_execute_python. |
| viewport_workflow | Visual verification workflow (bridge mode). |
| parametric_workflow | Iterative parametric exploration workflow (sliders, sweeps, comparisons). |
| bim_authoring_workflow | Layer / grouping / metadata conventions for architectural authoring. |
| design_dialogue_workflow | Multi-turn, user-in-the-loop design checkpoints. |
| freeform_workflow | Free-form architectural authoring workflow. |
| drawing_documentation | Drawing-set authoring workflow (sheets, views, title block, PDF). |
| quantity_takeoff | Quantity / BOM workflow (per-layer / per-material / per-user_text). |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/EaseHee/rhino-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server