# rhino_orient

Orient objects from one plane to another (PlaneToPlane transform).

Agent View of the PolicyLayer registry record for `rhino_orient`. HTML page: https://policylayer.com/tools/easehee-rhino-mcp/rhino-orient

## Facts

- Tool: `rhino_orient`
- Server: Rhino (`easehee/rhino-mcp`) — https://policylayer.com/tools/easehee-rhino-mcp.md
- Homepage: https://github.com/EaseHee/rhino-mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "rhino_orient",
    "arguments": {}
  }
}
```

## Why rhino_orient is rated Medium

The tool transforms geometric objects by reorienting them in 3D space. This is a modification operation (Write) rather than Read (it changes state), Execute (it's not running arbitrary code based on user input), or Destructive (the original objects remain and the operation is reversible—users can undo or re-orient back).

From the tool's own definition: "Tool description states 'Orient objects from one plane to another (PlaneToPlane transform)' - this modifies the position and rotation of geometry objects in Rhino without deleting them, making it a reversible transformation operation."

## Use case

AI agents use rhino_orient to create or update resources in Rhino, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Rhino environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Rhino:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "rhino_orient": {
      "limits": [
        {
          "counter": "rhino_orient_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Rhino (244)

- `gh_delete_component` — Destructive — https://policylayer.com/tools/easehee-rhino-mcp/gh-delete-component.md
- `gh_reset` — Destructive — https://policylayer.com/tools/easehee-rhino-mcp/gh-reset.md
- `rhino_bim_pset_delete` — Destructive — https://policylayer.com/tools/easehee-rhino-mcp/rhino-bim-pset-delete.md
- `rhino_layer_delete` — Destructive — https://policylayer.com/tools/easehee-rhino-mcp/rhino-layer-delete.md
- `rhino_object_delete` — Destructive — https://policylayer.com/tools/easehee-rhino-mcp/rhino-object-delete.md
- `rhino_render_queue_cancel` — Destructive — https://policylayer.com/tools/easehee-rhino-mcp/rhino-render-queue-cancel.md
- `gh_new_canvas` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/gh-new-canvas.md
- `gh_run` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/gh-run.md
- `gh_run_template` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/gh-run-template.md
- `rhino_annotation_scale_bar` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-annotation-scale-bar.md
- `rhino_attractor_displace_points` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-attractor-displace-points.md
- `rhino_axis_ribs` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-axis-ribs.md
- `rhino_batch_call` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-batch-call.md
- `rhino_boolean_intersection` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-boolean-intersection.md
- `rhino_boolean_union` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-boolean-union.md
- `rhino_bridge_select_instance` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-bridge-select-instance.md
- `rhino_display_mode_set` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-display-mode-set.md
- `rhino_drawing_section_cut` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-drawing-section-cut.md
- `rhino_execute_csharp` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-execute-csharp.md
- `rhino_execute_python` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-execute-python.md
- `rhino_mesh_boolean_union` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-mesh-boolean-union.md
- `rhino_network_surface` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-network-surface.md
- `rhino_object_select` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-object-select.md
- `rhino_render_queue_submit` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-render-queue-submit.md
- `rhino_render_to_file` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-render-to-file.md
- `rhino_section` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-section.md
- `rhino_section_at_axis` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-section-at-axis.md
- `rhino_shell` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-shell.md
- `rhino_skin_from_sections` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-skin-from-sections.md
- `rhino_taper` — Execute — https://policylayer.com/tools/easehee-rhino-mcp/rhino-taper.md
- …and 214 more: https://policylayer.com/tools/easehee-rhino-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=easehee-rhino-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/easehee-rhino-mcp
