npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@parkhill/mcp-server-for-rhino

v0.3.0

Published

MCP server for modeling in Rhino 3D (native geometry + Grasshopper) through AI assistants. Parkhill fork of McNeel's Rhino MCP.

Readme

@parkhill/mcp-server-for-rhino

An MCP server for modeling in Rhino 3D through AI assistants (Claude Desktop, Claude Code, Cursor, and others). It covers Grasshopper, and it also builds geometry directly in the Rhino document.

This is Parkhill's fork of McNeel's Rhino MCP, MIT licensed. The fork adds native geometry tools and installs side by side with the official plugin.

How it works

This npm package is a small launcher. The MCP server itself runs inside a Rhino plugin, the Parkhill-Rhino-MCP yak package. The launcher finds that plugin's router and connects your AI client to it.

AI client ──stdio──▶ npx @parkhill/mcp-server-for-rhino ──▶ router (in the yak) ──HTTP──▶ Rhino

If the Rhino plugin isn't installed yet, the server starts with a single install_parkhill_rhino_mcp tool. That tool installs the plugin from a local .yak file (see below).

Requirements

  • Rhino 8 (Windows or macOS), or Rhino 9 WIP
  • Node.js 18+

1. Install the Rhino plugin

Download parkhill-rhino-mcp-<version>-rh8_*-win.yak from the releases page, or get it from your team share. Then use one of these:

  • Drag the .yak onto an open Rhino window and restart Rhino.
  • Set PARKHILL_RHINO_MCP_YAK to the .yak file, or to the folder that holds it, in the MCP config below. Then ask the assistant to "install the Rhino plugin". The launcher extracts it for you.

2. Add the MCP server to your client

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "rhino-parkhill": {
      "command": "npx",
      "args": ["-y", "@parkhill/mcp-server-for-rhino", "--default-version", "8"],
      "env": {
        "PARKHILL_RHINO_MCP_YAK": "\\\\server\\share\\rhino-mcp"
      }
    }
  }
}

Claude Code:

claude mcp add rhino-parkhill -- npx -y @parkhill/mcp-server-for-rhino --default-version 8

The env block is optional. It's only needed for the automatic plugin install.

Start Rhino, or let the server launch Rhino for you, and ask the assistant to model something.

Tools

Native geometry

| Tool | Operations | |---|---| | create_curve | line, polyline, curve, interpcrv, rectangle, circle, arc, ellipse | | create_solid | plane, box, cylinder, sphere | | create_surface | planar_srf, edge_srf, extrude_crv, extrude_srf, loft, sweep1, sweep2, revolve, cap | | transform_objects | move, rotate, scale, scale1d, mirror, array_linear, array_rect, array_polar | | edit_geometry | break, join, trim, split, extend, explode, offset, offset_srf | | boolean_objects | union, difference, split, boolean_intersection, intersect | | group_objects | group, ungroup |

Every call:

  • is a single undo step in Rhino
  • returns the ids of the objects it created
  • accepts an optional layer and name when it creates objects

Everything from upstream

  • run_command, run_python, run_csharp
  • selection and object queries, viewport capture and camera
  • document open, save and close
  • Grasshopper 1 and 2 canvas tools
  • multi-Rhino slot management

Options

| Flag / env | Meaning | |---|---| | --default-version 8\|9\|WIP | Which Rhino to launch when none is running (default 8) | | PARKHILL_RHINO_MCP_YAK | Path to a .yak file, or a folder of them, used by the install fallback | | PARKHILL_RHINO_MCP_RHINO_EXE_8 / _9 / _WIP | Custom Rhino executable path | | PARKHILL_RHINO_MCP_STARTUP_TIMEOUT | Seconds to wait for a spawned Rhino (default 120) |

Coexisting with McNeel's plugin

The Parkhill plugin uses its own names and state, so both plugins can be installed at the same time:

  • plugin id and command names (PHMCPStart, PHMCPSpawn, …)
  • ports, starting at 10600
  • state in %LOCALAPPDATA%\Parkhill\rhino-mcp
  • MCP config key rhino-parkhill