RhinoMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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_scene_infoA | Get an overview of the current Rhino document: filename, unit system, tolerances, object count by type, layers, and active view. |
| rhino_get_objectsA | List objects in the scene with optional filters by type, layer, or name. Returns guid, name, type, layer, color, and bounding box for each. |
| rhino_get_objectA | Get detailed information about a specific object by GUID, including geometry type, dimensions, area, volume, edge info, material, and user data. |
| rhino_select_objectsB | Select objects in the Rhino viewport by their GUIDs. |
| rhino_create_pointD | Create a point object in Rhino. |
| rhino_create_pointsC | Create multiple point objects at once. |
| rhino_create_lineC | Create a line from start to end point. |
| rhino_create_polylineB | Create a polyline through ordered vertices. Optionally close it into a polygon. |
| rhino_create_curveC | Create an interpolated NURBS curve through control points. |
| rhino_create_circleC | Create a circle with given center, radius, and optional plane normal. |
| rhino_create_arcB | Create an arc from center, radius, and angle range. |
| rhino_create_ellipseC | Create an ellipse with separate X and Y radii. |
| rhino_create_rectangleB | Create a rectangle from origin, width, and height. |
| rhino_create_sphereA | Create a solid sphere with given center and radius. |
| rhino_create_boxB | Create a box/cuboid with origin, width, depth, and height. |
| rhino_create_cylinderB | Create a cylinder with base center, radius, and height. |
| rhino_create_coneC | Create a cone with base center, radius, and height. |
| rhino_create_torusC | Create a torus (donut shape) with major and minor radii. |
| rhino_create_extrusionB | Extrude an existing curve along a direction. Caps closed curves. |
| rhino_create_pipeC | Create a pipe (tube) along an existing rail curve. |
| rhino_create_surface_from_pointsC | Create a NURBS surface from a grid of control points. |
| rhino_create_meshA | Create a mesh from vertices and face indices (triangles or quads). |
| rhino_create_textC | Create a text dot (always-facing label) at a point. |
| rhino_create_loftA | Loft a surface through multiple cross-section curves. Great for creating smooth transitions between different profile shapes. |
| rhino_create_sweep1B | Sweep one or more cross-section curves along a single rail curve. Useful for creating moldings, pipes with varying cross-sections, etc. |
| rhino_create_sweep2A | Sweep cross-section curves along two rail curves. Gives more control over the shape of the resulting surface than single-rail sweep. |
| rhino_create_revolveA | Revolve a profile curve around an axis to create a surface of revolution. Use for creating vases, goblets, turned parts, etc. |
| rhino_create_planar_surfaceA | Create a planar surface from one or more closed planar curves. |
| rhino_create_patchA | Create a patch surface from boundary curves and/or interior points. |
| rhino_moveB | Move objects by a translation vector. |
| rhino_rotateB | Rotate objects around an axis through a center point. |
| rhino_scaleB | Uniformly scale objects from a center point. |
| rhino_scale_non_uniformD | Scale objects with separate X, Y, Z factors. |
| rhino_mirrorC | Mirror objects across a plane, creating copies. |
| rhino_copyB | Duplicate objects with an optional translation offset. |
| rhino_array_linearB | Create a linear array of objects along a direction with even spacing. |
| rhino_array_polarB | Create a polar (circular) array of objects around a center point. |
| rhino_boolean_unionA | Boolean union of two solids (merge into one). |
| rhino_boolean_differenceB | Subtract solid B from solid A. |
| rhino_boolean_intersectionC | Keep only the intersecting volume of two solids. |
| rhino_deleteB | Permanently delete objects by GUID. |
| rhino_set_colorB | Set the display color on objects. |
| rhino_set_materialB | Assign a named material to objects. |
| rhino_set_nameA | Set or change the name of a Rhino object. |
| rhino_set_layerC | Move objects to a specified layer. |
| rhino_groupB | Group objects together with an optional name. |
| rhino_ungroupA | Ungroup a named group, releasing its members. |
| rhino_joinB | Join adjacent curves or surfaces into a single object. |
| rhino_explodeB | Explode compound objects into individual components. |
| rhino_trimB | Trim a curve at its intersection with a cutting object. |
| rhino_splitB | Split a curve at its intersection with a cutting object. |
| rhino_offset_curveC | Create an offset copy of a curve at a given distance. |
| rhino_offset_surfaceB | Offset a surface or brep by a distance. Optionally create a solid. |
| rhino_fillet_edgeA | Apply a fillet (rounded edge) to specified edges of a solid. Use get_object first to see available edge indices. |
| rhino_chamfer_edgeB | Apply a chamfer (beveled edge) to specified edges of a solid. Use get_object first to see available edge indices. |
| rhino_fillet_curvesC | Create a fillet arc between two curves at their intersection. |
| rhino_cap_planar_holesA | Cap all planar openings on an open brep to make it solid. |
| rhino_extend_curveB | Extend a curve by a given length from start, end, or both ends. |
| rhino_rebuild_curveA | Rebuild a curve with a new point count and degree for a smoother result. |
| rhino_project_to_surfaceC | Project curves onto a brep/surface along a direction. |
| rhino_duplicate_edgeC | Duplicate the edges of a brep as individual curves. |
| rhino_duplicate_borderB | Duplicate the border/naked edge curves of a surface, brep, or mesh. |
| rhino_create_blockC | Create a block definition from existing objects. Blocks are reusable geometry instances that save memory and allow batch updates. |
| rhino_insert_blockB | Insert a block instance at a point with optional scale and rotation. |
| rhino_list_blocksA | List all block definitions in the document. |
| rhino_explode_blockA | Explode a block instance into its constituent objects. |
| rhino_set_user_textB | Set a user text key/value pair on objects. Useful for storing metadata, BIM data, cost information, etc. |
| rhino_get_user_textA | Get user text from an object. Returns a specific key or all key/value pairs. |
| rhino_list_layersA | List all layers with colors, visibility, lock state, and object counts. |
| rhino_create_layerC | Create a new layer. Use :: for nesting (e.g., 'Walls::Interior'). |
| rhino_delete_layerA | Delete a layer and its objects. |
| rhino_set_layer_colorC | Change the color of a layer. |
| rhino_set_layer_visibilityB | Show or hide a layer. |
| rhino_set_current_layerC | Set the active/current layer. |
| rhino_list_materialsA | List all render materials in the document. |
| rhino_create_materialB | Create a new render material with color, transparency, and reflectivity. |
| rhino_assign_materialC | Assign an existing material to objects. |
| rhino_get_bounding_boxA | Get the axis-aligned bounding box of an object: min/max points, dimensions, center. |
| rhino_get_areaB | Calculate the surface area of a surface, brep, or mesh. |
| rhino_get_volumeC | Calculate the volume of a closed solid. |
| rhino_get_lengthB | Calculate the length of a curve. |
| rhino_distanceB | Calculate the distance between two objects. |
| rhino_closest_pointA | Find the closest point on an object to a test point. |
| rhino_intersectB | Find intersection between two geometric objects. Creates intersection curves if surfaces/breps intersect. |
| rhino_get_curvatureB | Get curvature at a point on a curve or surface. Returns curvature, radius of curvature, tangent, and (for surfaces) gaussian/mean curvature. |
| rhino_is_point_on_surfaceA | Check if a point lies on a surface within tolerance. |
| rhino_is_point_in_solidA | Check if a point is inside a closed solid. |
| rhino_check_objectsA | Check objects for validity, bad geometry, naked edges, and common problems. Provide specific GUIDs or leave empty to check the entire scene. |
| rhino_get_naked_edgesA | Find and duplicate the naked (unjoined) edges of a brep. These indicate gaps in the surface that prevent it from being a closed solid. |
| rhino_check_meshA | Check mesh quality: closed, normals, degenerate faces, naked edges. |
| rhino_repair_meshA | Attempt to repair common mesh issues: degenerate faces, duplicate vertices, unified normals, and optionally fill holes. |
| rhino_zoom_extentsA | Zoom the active viewport to show the entire scene. |
| rhino_set_viewB | Switch the viewport to a named view (Top, Front, Right, Perspective, etc.). |
| rhino_capture_viewA | Capture the active viewport as a PNG image. Set include_base64=true to get the image data directly in the response. |
| rhino_list_viewsA | List all viewports and named views with their display modes. |
| rhino_set_display_modeA | Set the display mode of the active viewport (Wireframe, Shaded, Rendered, etc.). |
| rhino_exportB | Export objects or the entire scene to a file (.3dm, .obj, .stl, .step, .iges, .fbx). |
| rhino_import_fileB | Import geometry from a file into the current document. |
| rhino_gh_run_scriptB | Execute a GHPython script inside Grasshopper. Has access to all Grasshopper and RhinoCommon APIs. |
| rhino_gh_set_sliderA | Set the value of a Grasshopper slider to drive parametric updates. |
| rhino_gh_get_outputsA | Read current output values from the active Grasshopper definition. |
| rhino_run_pythonA | Execute arbitrary Python code inside Rhino. Has access to rhinoscriptsyntax (rs), RhinoCommon (Rhino.*), and scriptcontext (sc). Use this for advanced operations not covered by other tools. |
| rhino_run_commandC | Execute a Rhino command string as if typed in the command line. |
| rhino_undoA | Undo the last operation in Rhino. |
| rhino_redoB | Redo the last undone operation. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| model-from-description | Guide the AI through creating a 3D model from a natural language description. |
| diagnose-model | Guide the AI through diagnosing problems in a 3D model. |
| parametric-design | Guide the AI through creating parametric designs with Grasshopper. |
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/kbangaru-cyber/Rhino-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server