Rhino

245 tools. 192 can modify or destroy data without limits.

6 destructive tools with no built-in limits. Policy required.

Last updated:

192 can modify or destroy data
53 read-only
245 tools total

Community server · catalogue entry checked 29/06/2026

How to control Rhino ↓

What Rhino exposes to your agents

Read (53) Write / Execute (186) Destructive / Financial (6)
Critical Risk

The most dangerous Rhino tools

192 of Rhino's 245 tools can modify, destroy, or commit something on every call — and an agent calls them with no built-in limits.

How to control Rhino

PolicyLayer is an MCP gateway — it sits between your AI agents and Rhino, and nothing reaches the server without passing your rules. These are the rules we recommend:

Deny destructive operations
{
  "gh_delete_component": {
    "deny_if": [
      {
        "conditions": [],
        "on_deny": "Blocked by default. Requires approval."
      }
    ]
  }
}

Destructive tools should never be available to autonomous agents without human approval.

Rate limit write operations
{
  "gh_add_component": {
    "limits": [
      {
        "counter": "gh_add_component_per_hour",
        "window": "hour",
        "max": 30,
        "scope": "grant"
      }
    ]
  }
}

Prevents bulk unintended modifications from agents caught in loops.

Cap read operations
{
  "gh_component_list": {
    "limits": [
      {
        "counter": "gh_component_list_per_minute",
        "window": "minute",
        "max": 60,
        "scope": "grant"
      }
    ]
  }
}

Controls API costs and prevents retry loops from exhausting upstream rate limits.

  1. Create a free account and register Rhino — nothing to install.
  2. Add these rules — paste them, or build them visually. Tune the limits to your setup.
  3. Point your MCP client (Claude, Cursor, anything) at your gateway URL.
ENFORCE POLICY ON RHINO →

Instant setup, no code required.

All 245 Rhino tools

EXECUTE 30 tools
Execute gh_new_canvas Create a fresh empty Grasshopper canvas. Execute gh_run Run the current solution. Execute gh_run_template Force a fresh solution and (optionally) bake the declared outputs. Execute rhino_annotation_scale_bar Draw a divided scale bar with a label. Execute rhino_attractor_displace_points rhino_attractor_displace_points Execute rhino_axis_ribs Generate two orthogonal sets of section ribs (waffle-style fabrication, bridge only). Execute rhino_batch_call rhino_batch_call Execute rhino_boolean_intersection Intersect a_ids with b_ids. Bridge required. Execute rhino_boolean_union Boolean-union the given Brep groups. Bridge required. Execute rhino_bridge_select_instance rhino_bridge_select_instance Execute rhino_display_mode_set Switch the active viewport's display mode. Execute rhino_drawing_section_cut Cut a section through objects with a plane and place the trace on a sheet (bridge only). Execute rhino_execute_csharp rhino_execute_csharp Execute rhino_execute_python rhino_execute_python Execute rhino_mesh_boolean_union Boolean-union meshes. Execute rhino_network_surface Build a surface from a network of crossing curves. Execute rhino_object_select rhino_object_select Execute rhino_render_queue_submit rhino_render_queue_submit Execute rhino_render_to_file Execute the configured render and write the result to output_path. Execute rhino_section Slice the listed objects with a plane (bridge required). Execute rhino_section_at_axis Slice a surface (or Brep / mesh in bridge) into count section curves. Execute rhino_shell Hollow a closed Brep, optionally leaving the listed faces open. Execute rhino_skin_from_sections rhino_skin_from_sections Execute rhino_taper Taper objects along an axis with start/end radii. Execute rhino_turntable_render Render a turntable sequence (camera orbits around target) to output_dir. Execute rhino_view_set Activate a saved named view. Execute rhino_zebra Run zebra-stripe surface continuity analysis (bridge required). Execute rhino_zoom_extent Zoom the active view to the extent of selected (or all) objects. Execute rhino_zoom_layer Zoom the active viewport to fit every object on layer. Execute rhino_zoom_object Zoom the active viewport to fit the given object ids exactly.
WRITE 156 tools
Write gh_add_component Drop a Grasshopper component onto the active canvas. Write gh_bake_to_rhino Bake the output of one or more components into the active Rhino document. Write gh_bind_template_parameter Set a single named parameter on a loaded template (slider / panel / toggle). Write gh_cluster_create Group components into a named cluster. Write gh_cluster_expand Expand a cluster back into its constituent components. Write gh_connect_components Create a wire from one component output to another component input. Write gh_connect_many Add multiple wires in a single round-trip. Write gh_data_tree_set Push a DataTree into a component input. Write gh_data_tree_set_batch gh_data_tree_set_batch Write gh_load_template Open a bundled template on the canvas and return its template_id + parameter map. Write gh_open_file Open a Grasshopper definition. Write gh_place_slider Create a Number Slider on the canvas with bounds and initial value. Write gh_save_file Save the active Grasshopper definition. Write gh_set_panel Set the text contents of a Panel component. Write gh_set_parameter Push a value into a component parameter. Write gh_set_slider Set a Number Slider component to a numeric value. Write gh_set_toggle Set a Boolean Toggle component to true or false. Write rhino_annotation_callout Add a callout (leader + balloon or boxed label). Write rhino_annotation_dimension_style Register a reusable dimension style (bridge only — Rhino DimStyle table). Write rhino_annotation_north_arrow Draw a north arrow centred on location. Write rhino_annotation_revision_cloud Draw a revision cloud (bumpy polyline) around a region of interest with a revision label. Write rhino_arc Add an arc by centre, radius, and sweep angle (in degrees). Write rhino_array_linear Array objects along a vector with constant spacing. Write rhino_array_polar Array objects in a polar pattern. Write rhino_array_rectangular Array objects in a 3D rectangular grid. Write rhino_batch_modify rhino_batch_modify Write rhino_bend Bend objects along an axis through a specified point. Write rhino_bim_metadata_set Tag objects with IFC entity + property-set metadata. Write rhino_bim_pset_set Persist a PropertySet block on an object. Write rhino_blend_surface Create a blend surface between two edges. Write rhino_blend_surface_edges Create a blend surface connecting two surface edges with continuity control. Write rhino_block_define rhino_block_define Write rhino_block_explode Explode a block instance into individual objects (bridge only). Write rhino_block_insert rhino_block_insert Write rhino_block_redefine Replace a block definition's geometry, propagating to every instance (bridge only). Write rhino_boolean_difference Subtract b_ids from a_ids. Bridge required. Write rhino_box Add a rectangular box (axis-aligned in standalone mode). Write rhino_cage_edit Deform objects with a control cage (bridge only). Write rhino_camera_set Position the active viewport's camera (location + target + lens length). Write rhino_cap_holes Cap all open holes of a Brep. Write rhino_circle Add a circle by centre and radius (optionally on a custom plane). Write rhino_clipping_plane Add a clipping plane to all viewports. Write rhino_cone Add a cone primitive (bridge required for non-Z axes). Write rhino_contour Generate equally spaced section curves (bridge required). Write rhino_create_subd Create a SubD object from an existing mesh. Write rhino_create_uv_grid Create a point grid on a surface at even UV intervals. Write rhino_curve_split Split a curve at the given parameters; original is preserved. Write rhino_cylinder Add a cylinder; in standalone mode the axis must be world Z. Write rhino_daylight_factor BRE simplified daylight factor for a side-lit room. Write rhino_dimension_aligned Add an aligned dimension between two points. Write rhino_dimension_angular Add an angular dimension at a vertex. Write rhino_dimension_linear Add a linear dimension between two points. Write rhino_document_settings Bundled units / tolerances / base point in one call. Write rhino_document_units_set Set the document unit system, optionally scaling existing geometry. Write rhino_draft_angle Compute draft angles relative to the world Z axis (bridge required). Write rhino_drawing_export_pdf Export a sheet to PDF (bridge only). Write rhino_drawing_sheet_create rhino_drawing_sheet_create Write rhino_drawing_title_block_add Add the bottom-right title block, north arrow, and scale bar to a sheet. Write rhino_dup_edge Extract edge curves from a Brep (all or specific indices). Write rhino_ellipse Add an ellipse on the world XY plane (rhino3dm builds it as a NURBS approximation). Write rhino_environment_set Attach an HDRI/EXR environment used for lighting + background (bridge only). Write rhino_export_dxf Export to DXF (bridge required). Write rhino_export_gbxml Export thermal / structural BIM payload to gbXML (bridge only). Write rhino_export_ifc Export the active document (or a subset) to IFC2x3 / IFC4 / IFC4x3 (bridge only). Write rhino_export_iges Export to IGES (bridge required). Write rhino_export_obj Export selected (or all) objects to a Wavefront OBJ file (mesh-only). Write rhino_export_step Export to STEP (bridge required). Write rhino_export_stl Export meshes to an ASCII STL file. Write rhino_extrude Linearly extrude a profile curve by distance along direction. Write rhino_fillet_surface Create a constant-radius fillet between two surfaces. Write rhino_flow Flow objects from one curve onto another (bridge only). Write rhino_flow_along_curve Reposition objects from a base curve onto a target curve. Write rhino_group Group objects together under a (named) group. Write rhino_hatch Add a hatch over the given closed curves. Write rhino_helix Add a helix sampled into a NURBS curve. Write rhino_import Import an external file into the active document (bridge required for non-3DM). Write rhino_import_ifc Import an IFC file, mapping each entity to a layer under target_layer_root (bridge only). Write rhino_interpolate_curve Add an interpolated NURBS curve passing through the given points. Write rhino_isocurve Extract an isocurve from a surface at a specific U or V parameter. Write rhino_layer_create Create a layer with optional colour and visibility. Write rhino_layer_set_color Change a layer's display colour. Write rhino_layer_set_material Bind a render material to a layer so layer-source objects inherit it. Write rhino_leader Add a multi-point leader (with optional text). Write rhino_light_add Add a point / spot / directional / rectangular / linear light to the document. Write rhino_line Add a line between two points. Write rhino_loft Loft a sequence of profile curves into a surface. Write rhino_make2d Generate a 2D drawing projection of 3D objects. Write rhino_match_surface Adjust a surface edge to match the continuity of a target surface. Write rhino_material_assign Assign an existing material to one or more objects. Write rhino_material_create Create a material with diffuse colour, transparency, and glossiness. Write rhino_material_preset_create Create a document material from a bundled physical preset. Write rhino_merge_surfaces Merge multiple surfaces into a single surface. Write rhino_mesh_boolean_difference Boolean-difference meshes (a - b). Write rhino_mesh_box Add a quad mesh box with the given subdivisions. Write rhino_mesh_from_brep Mesh a Brep (bridge only). Write rhino_mesh_from_surface Mesh a surface (bridge only). Write rhino_mirror Mirror objects across a plane (copies by default). Write rhino_move Translate (or copy) the given objects by a vector. Write rhino_named_view_save Save the current camera as a named view. Write rhino_nurbs_curve Add a NURBS curve from a control polygon. Write rhino_object_move_to_layer Reassign one or more objects to a different layer (creating it if absent). Write rhino_offset_surface Offset a surface by distance along its normal. Write rhino_open Open a .3dm file and bind it to a doc_id. Write rhino_orient Orient objects from one plane to another (PlaneToPlane transform). Write rhino_origin_set Set the model base point. Write rhino_panel_frames Generate oriented frames (planes) at panel centres for construction. Write rhino_panel_planarity rhino_panel_planarity Write rhino_panelize_surface Subdivide a surface into panels (quad, triangle, or diamond). Write rhino_patch Patch a region defined by boundary curves. Write rhino_place_grid Replicate a source object on a count_x x count_y grid with given spacing. Write rhino_plane_surface Add a finite plane (rectangular trim) on the given plane. Write rhino_point Add a single point to the document. Write rhino_polygon Add a regular polygon (inscribed or circumscribed) on the XY plane. Write rhino_polyline Add a polyline through the given points; optionally closed. Write rhino_probe_intersection Cast a ray and report intersection points against Breps/Extrusions. Write rhino_rebuild_curve Rebuild an existing curve with a new point count and degree. Write rhino_rebuild_surface Rebuild a surface with new point counts and degrees in U/V. Write rhino_rectangle Add a rectangle as a closed polyline on the XY plane. Write rhino_redo Redo the last undone operation(s) in the Rhino document. Write rhino_reduce_mesh Reduce a mesh to a target face count. Write rhino_render_setup Set render resolution / samples / engine / transparency on the active render context. Write rhino_render_viewport Render the active viewport to an image file (bridge required). Write rhino_replicate_along_curve rhino_replicate_along_curve Write rhino_revolve Revolve a profile curve about an axis. Write rhino_rotate Rotate objects about an axis through a centre point. Write rhino_save Write the document to disk. Write rhino_scale Scale objects non-uniformly about a centre. Write rhino_scatter Scatter count copies of a source inside a 2-D AABB with optional Z-rotation jitter. Write rhino_schedule_export_csv Write rows produced by any rhino_schedule_ tool to CSV. Write rhino_set_control_points Replace control points of a NURBS curve or surface. Write rhino_set_user_text Attach a key-value user text entry to an object. Write rhino_shadow_project Project objects' bounding-box corners along sun_vector to the ground plane. Write rhino_smooth_polyline rhino_smooth_polyline Write rhino_solar_exposure_estimate rhino_solar_exposure_estimate Write rhino_sphere Add a sphere primitive. Write rhino_spiral Add a tapered spiral sampled into a NURBS curve. Write rhino_stack_floors Replicate a source object N times along world +Z with constant spacing. Write rhino_subd_to_nurbs Convert a SubD object to a NURBS polysurface (Brep). Write rhino_sun_path Draw monthly sun-path polylines on a hemisphere of given radius around center_point. Write rhino_surface_developable_score rhino_surface_developable_score Write rhino_surface_from_points Create a NURBS surface from a 2D grid of control points. Write rhino_sweep1 Sweep profiles along a single rail. Write rhino_sweep2 Sweep profiles along two rails. Write rhino_text Add 3D text annotation. Bridge mode honours the active dim style; standalone uses text-dot fallback. Write rhino_text_dot Add a small label that always faces the camera in Rhino. Write rhino_tolerance_set Set absolute / angle / (optional) relative tolerances on the document. Write rhino_torus Add a torus primitive (mesh approximation in standalone mode). Write rhino_turntable Render a turntable animation to output_path (PNG sequence or GIF). Write rhino_twist Twist objects around an axis by a specified angle. Write rhino_undo Undo the last operation(s) in the Rhino document. Write rhino_unroll Unroll a developable surface or polysurface flat. Write rhino_unweld_mesh Unweld vertices to break mesh smoothing. Write rhino_uv_grid_panels rhino_uv_grid_panels Write rhino_viewport_image Save the current viewport pixels to a PNG file. Write rhino_viewport_preview rhino_viewport_preview Write rhino_weld_mesh Weld coincident vertices in a mesh.
READ 53 tools
Read gh_component_list List components currently on the active canvas (optionally filtered). Read gh_components_search gh_components_search Read gh_data_tree_get Read a component output as a DataTree (list of branches). Read gh_data_tree_get_batch Read multiple component outputs in a single bridge round-trip. Read gh_get_parameter Read the current value of a component parameter. Read gh_plugin_list gh_plugin_list Read gh_preview_toggle Toggle preview on/off for a list of components (or all). Read gh_template_list List bundled Grasshopper templates with their parameter contracts. Read rhino_area Compute the surface area of a mesh (Brep area requires bridge). Read rhino_bim_pset_get Read PropertySet entries off an object. Read rhino_block_list List every block definition with a per-definition object + instance count. Read rhino_bounding_box Return the union bounding box of one or more objects. Read rhino_bridge_list_instances Enumerate live Rhino bridge endpoints discovered via announcement files. Read rhino_check_naked_edges Enumerate naked edges of a Brep with their lengths (bridge only). Read rhino_curvature_analysis Sample Gaussian/mean curvature of a surface (bridge required). Read rhino_curve_continuity Curve sanity — span count, closed flag, planarity, periodic, validity log. Read rhino_curve_length Return the curve's parametric domain and approximate length. Read rhino_curve_point_at Evaluate position and tangent at a parameter on the curve. Read rhino_direct_irradiance Direct Normal Irradiance (W/m^2) clear-sky estimate via Bird + Kasten-Young air mass. Read rhino_distance Euclidean distance between two points. Read rhino_document_summary Get a high-level summary of the document (object counts, layers, etc.). Read rhino_document_units_get Read the current document unit system. Read rhino_drawing_view_place Project objects to a 2-D view (Make2D) and place the result on a sheet (bridge only). Read rhino_dup_border Extract border curves from a surface or mesh. Read rhino_evaluate_surface Evaluate a surface at UV parameters to get 3D point, normal, and tangents. Read rhino_get_control_points Get all control points (and weights) of a NURBS curve or surface. Read rhino_get_module_functions Get all functions in a specific RhinoScript module with signatures. Read rhino_get_rhinoscript_docs Get comprehensive RhinoScript documentation for a topic. Read rhino_get_selected_objects Get information about the currently selected objects in Rhino. Read rhino_get_user_text Read user text (key-value metadata) attached to an object. Read rhino_layer_list List all layers with their properties (color, visibility, object count). Read rhino_list_objects rhino_list_objects Read rhino_list_rhinoscript_modules List all available RhinoScript modules with function counts. Read rhino_material_preset_list List physical-material presets bundled with rhino-mcp. Read rhino_object_info Get detailed info about a single object (geometry type, layer, bbox, etc.). Read rhino_object_quantity Per-object measurement table — one row per object_id with the requested fields. Read rhino_panel_curvature_classify Classify each UxV panel by curvature class (planar / single_ / synclastic / anticlastic). Read rhino_render_queue_list List recent render jobs and their progress. Read rhino_render_queue_status Inspect a queued render job's status, progress, and completed frames. Read rhino_report_mesh_health Mesh health — closed, manifold, vertex/face counts, validity log. Read rhino_schedule_by_layer Aggregate objects per layer with optional filter and sublayer merging. Read rhino_schedule_by_material Aggregate objects grouped by assigned material name. Read rhino_schedule_by_user_text Aggregate objects grouping by user_text[group_key] value. Read rhino_screenshot Capture a viewport screenshot (bridge required). Read rhino_search_rhinoscript_functions rhino_search_rhinoscript_functions Read rhino_selection_bbox Return the union bounding box of all objects in the document. Read rhino_sun_position Compute solar azimuth + altitude for a location/time. Pure calculation, no doc edits. Read rhino_surface_closest_point Find the UV parameters and 3D point closest to a test point on a surface. Read rhino_surface_curvature_at Evaluate true Gaussian / mean / principal curvatures at (u, v) (bridge only). Read rhino_surface_normal_at Evaluate the surface unit normal at a normalised (u, v). Read rhino_tolerance_get Read absolute / angle / relative model tolerances. Read rhino_validate_brep Validate a Brep — closed/solid/manifold, face/edge counts, log of issues. Read rhino_volume Compute the volume of a closed mesh (Brep volume requires bridge).

Related servers

Other MCP servers with similar tools — same risk classification, starter policies for each.

Questions about Rhino

Can an AI agent delete data through the Rhino MCP server? +

Yes. The Rhino server exposes 6 destructive tools including gh_delete_component, gh_reset, rhino_bim_pset_delete. These permanently remove resources with no undo. PolicyLayer blocks destructive tools by default so they never reach the upstream server.

How do I prevent bulk modifications through Rhino? +

The Rhino server has 156 write tools including gh_add_component, gh_bake_to_rhino, gh_bind_template_parameter. Set a rate limit in your policy -- for example, 10 calls per hour prevents an agent from making more than 10 modifications per hour. PolicyLayer enforces this at the gateway, before calls reach Rhino.

How many tools does the Rhino MCP server expose? +

245 tools across 4 categories: Destructive, Execute, Read, Write. 53 are read-only. 192 can modify, create, or delete data.

How do I enforce a policy on Rhino? +

Register the Rhino MCP server in PolicyLayer, apply the suggested rules above (adjust the limits to your use case), and point your AI client at the PolicyLayer proxy URL instead of the server directly. Your agents keep the same tools; PolicyLayer evaluates every call against policy before it executes. Nothing to install, live in minutes.

Enforce policy on every Rhino tool call.

Deterministic rules across all 245 Rhino tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Instant setup, no code required.

245 Rhino tools catalogued and risk-classified — across an index of 46,500+ MCP servers.

// WHERE THIS COMES FROM

These policies come from Rhino's registry record.

The record behind this page: verified identity, auth posture, risk grade, every tool classified, recommended policy — re-checked continuously.

Teams ship this data inside their own products. See what a licence covers →

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.