About Frank
Frank is an MCP server published by robotnealan in the Gaming category: plan, build, and review 3D models with Claude Code — a tool-agnostic plugin for modeling MCPs (Rhino, Houdini). Parametric, idempotent, verified.
The repository has 1 stars and 0 forks, with the last commit 4 months ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/robotnealan/frankThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (2)
**Houdini** (HoudiniMCP)✅ **Wired & hardened** — MCP connection proven; the upstream render-deadlock and install gotchas are fixed and documented (`docs/solutions/`). Full build/review loop validation in progress.
Parameters not published.
**Rhino** (RhinoMCP)✅ **Proven** — full `plan → build → review` validated live (rebuilt a parametric ribbon sculpture end to end, idempotent and scope-isolated).
Parameters not published.
Ask AI
Ask AI about Frank
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 4 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
- !Dependencies pinnedNo lockfile. Installs can pull different code over time.
2 checks have not been run yet.
README
frank
Plan, build, and review 3D models with Claude Code — through a modeling MCP (Rhino or Houdini).
Claude Code plugin · 5 skills · 6 agents
frank is a Claude Code plugin that turns a modeling MCP server into a disciplined design partner. It plans the form before touching geometry, builds it as a re-runnable parametric generator, reviews the result against your reference — and it's frank about what's wrong with your geometry.
Honest about your topology.
Why
LLM-driven CAD usually fails the same ways: hallucinated API calls, magic-number scripts you can't tune, geometry that duplicates or stomps your existing model, and "looks done" with no actual verification. frank encodes the opposite as a workflow:
- Parametric, not one-off — every build is a named parameter block you can re-run and tune.
- Idempotent & scoped — rebuilds clear only their own layer/namespace; your existing model is never touched (a foreign-object-count invariant is checked every run).
- Grounded, not guessed — primitive signatures are confirmed live from the MCP before code is emitted, not recalled from memory.
- Verified, not vibes — a capture → compare → adjust loop with geometric assertions and your sign-off, not "looks good."
- Compounding — every solved gotcha gets written down so the next model doesn't repeat it.
Requirements
frank drives a modeling application through an MCP server — it does nothing on its own. You need:
-
Claude Code (CLI, desktop, or IDE).
-
A modeling MCP server connected to Claude Code — one of:
Modeler MCP server What frank needs Rhino a RhinoMCP server, e.g. jingcheng-chen/rhinomcpmcp__rhino__*tools available; Rhino running with its MCP addon startedHoudini capoomgit/houdini-mcpmcp__houdini__*tools available; Houdini running with the socket server started — see docs/houdini-setup.md for a hardened, step-by-step setup (the upstream has a few install gotchas frank documents and patches)Confirm a server is live with
claude mcp list— you should seerhinoorhoudinias ✓ Connected.
frank is tool-agnostic: the same plan → build → review flow drives whichever modeler is connected, by loading that tool's reference pack.
Install
claude plugin marketplace add robotnealan/frank # add the marketplace from GitHub
claude plugin install frank@frank-marketplace # install the plugin
Then run /reload-plugins in Claude Code to activate the skills and agents — no restart needed. Verify with:
claude plugin details frank@frank-marketplace # lists 5 skills + 6 agents
/reload-pluginsmay print0 skills— that's a delta counter (zero newly added), not a failure; the skills are active. See the install learning for this and other gotchas.
git clone https://github.com/robotnealan/frank
claude plugin marketplace add /path/to/frank # add by local path
claude plugin install frank@frank-marketplace
Re-run /reload-plugins after editing any skill or agent to pick up changes. The plugin's marketplace.json uses "source": "./" (plugin at the marketplace root) — on Claude Code a relative source must start with ./; bare "." is rejected.
Quick start
With a modeling MCP connected, the workflow is five slash commands:
/frank-setup # verify the connection; record units, tolerance, existing layers/networks
/frank-plan # design the form: artifact type, fidelity, primitives, the param block + assertions
/frank-build # emit + run an idempotent, scope-isolated parametric generator; capture the result
/frank-review # capture → compare → adjust against your reference, with your sign-off
/frank-compound # record a solved gotcha so the next model doesn't rediscover it
You don't have to use all five — /frank-build "a parametric helical coil" works on its own. frank-plan and frank-review add rigor for harder or reference-driven forms.
Skills
| Command | Purpose |
|---|---|
/frank-setup |
Verify the modeling MCP is connected; record units, tolerance, existing layers/networks. (User-run: it's a disable-model-invocation skill.) |
/frank-plan |
Produce a structured modeling plan: artifact type, fidelity target, reference intake, primitive selection, parameter-block & verification-assertion design. |
/frank-build |
Confirm primitive signatures live, then write and run an idempotent, scope-isolated, re-runnable parametric generator; capture the result. |
/frank-review |
Capture → compare → adjust loop: pinned-camera capture, two adversarial reviewers, merged findings, parameter tweaks — with you as the acceptance authority. |
/frank-compound |
Capture a solved modeling problem (gotcha + fix) into the learnings store so it compounds. |
Agents
Six agents ship today. frank-fabrication-reviewer (wall thickness, overhangs, watertightness, undercuts) is planned alongside knowledge/fabrication.md.
| Agent | Lens |
|---|---|
frank-silhouette-critic |
Adversarial visual comparison of captured views against the reference (dispatched on a vision-capable model). |
frank-geometry-reviewer |
Units/scale, naked & non-manifold edges, self-intersection, degenerate faces, continuity. |
frank-parametric-architect |
Parameter-block design: named, validated, idempotent, no magic numbers. |
frank-rhino-docs-researcher |
Confirms exact RhinoScript / RhinoCommon signatures (live MCP introspection, or official docs with the evidence tier flagged). |
frank-houdini-docs-researcher |
Confirms Houdini node / VEX usage. |
frank-learnings-researcher |
Retrieves relevant past learnings from docs/solutions/ before each plan/build. |
How it works — three layers of knowledge
frank keeps durable craft separate from volatile API:
- Canon (
knowledge/*.md) — what good looks like (named param blocks, scope isolation, verification discipline). Authored with citations; doesn't go stale. - Reference packs (
references/<tool>-mcp.md) — which calls and which verified policies on this tool. The only place tool-specific detail lives. - Live grounding — the
*-docs-researcheragents confirm exact signatures in-session, so the canon never bakes an API that can rot or hallucinate.
| Canon pack | Status |
|---|---|
parametric-scripting.md |
✅ Authored — named param blocks, idempotent scope-isolated rebuilds, guards that warn, determinism, units/tolerance. |
verification.md |
✅ Authored — which views to capture, pinned-camera discipline, silhouette comparison, geometric assertions, human acceptance. |
geometry-quality.md |
🚧 Stub — continuity, watertightness/manifoldness, mesh quality. Grows via /frank-compound. |
fabrication.md |
🚧 Stub — wall thickness, overhangs, watertight solids, tolerance/clearance, export hygiene. |
And it compounds: every solved gotcha is written to docs/solutions/ (via /frank-compound) and retrieved before future work, so the system gets smarter with use.
Tool support
| Tool | Status |
|---|---|
| Rhino (RhinoMCP) | ✅ Proven — full plan → build → review validated live (rebuilt a parametric ribbon sculpture end to end, idempotent and scope-isolated). |
| Houdini (HoudiniMCP) | ✅ Wired & hardened — MCP connection proven; the upstream render-deadlock and install gotchas are fixed and documented (docs/solutions/). Full build/review loop validation in progress. |
Contributing
Issues and PRs welcome. frank is designed to compound: if you solve a modeling or tooling gotcha, capture it with /frank-compound (or add a docs/solutions/YYYY-MM-DD_<slug>.md learning by hand) so the next person inherits it. Adding a new modeler is mostly a new references/<tool>-mcp.md pack plus a *-docs-researcher agent — the skill spine is already tool-agnostic.
License
MIT © Robert Nealan
README fetched from the repository 4 days ago. The original is authoritative.