anatomy-mcp
by Muwei-TA
README.md
# anatomy-mcp
MCP server wrapping the [Anatomy](https://github.com/Muwei-TA/anatomy) skill
(crafted, interactive isometric figures that explain an idea as a real,
working object) using [FastMCP](https://github.com/PrefectHQ/fastmcp).
Anatomy is a Claude *skill*, not a CLI: instructions (`SKILL.md`),
references, a Node drawing kit (`kit/`), verification scripts
(`scripts/capture.mjs`, `drive.mjs`, `lines.mjs`) and eight example figures.
This server exposes that surface as MCP tools, so any MCP client can read the
skill's knowledge, study examples, build and audit figures, capture and check
them in headless Chrome, and prepare a gallery publish.
## Prerequisites
- Python 3.10+
- Node.js 20.10+ on PATH (the kit and scripts use only built-in modules)
- A checkout of the Anatomy repo — set `ANATOMY_REPO_DIR` to its path
- Chrome or Chromium (only for the capture / drive / line-check tools; the
scripts find it via `CHROME_PATH` or a system install)
## Install
```bash
pip install -e .
```
## Run
```bash
export ANATOMY_REPO_DIR=/path/to/anatomy
anatomy-mcp # stdio, for MCP clients
anatomy-mcp --transport http --host 0.0.0.0 --port 8000
```
## Tools
Knowledge (no Chrome needed):
- `anatomy_skill_instructions` — full SKILL.md; read before any figure
- `anatomy_reference(name)` — one of craft, kit, motion, react, verify,
webgl, walkthrough, 3d, publish (or SKILL)
- `anatomy_list_references` / `anatomy_list_examples` — inventories
- `anatomy_example_source(name, file?)` — an example's build script, or a
React example's figure.tsx / geometry.ts / rig.ts / live.tsx / view.ts
- `anatomy_repo_file(path)` — any file in the repo (kit/, scripts/, ...)
Build and audit (Node, no Chrome):
- `anatomy_build_example(name, light?, audit?)` — run an example's
`build.mjs` (`--light`, `--audit` must end `audit passed`)
- `anatomy_build_figure(build_script, light?, audit?)` — run any figure's
own build script from its folder
Verification (need Chrome):
- `anatomy_capture(page, out, ...)` — headless-Chrome screenshot with zoom,
hover and key options (`scripts/capture.mjs`)
- `anatomy_drive(page, actions, ...)` — scripted interaction: move, click,
drag, key, slow motion, until, eval, shot, lines, turn, orbit, sheet
(`scripts/drive.mjs`)
- `anatomy_line_check(page, out?)` — every texture line must end on
something; `line ends: 0` (`scripts/lines.mjs`)
Publish:
- `anatomy_publish_prep(...)` — copy a finished figure into a local clone of
the community gallery and print the PR commands; nothing is pushed
(`scripts/publish.mjs`)
All tools return JSON; command output and exit codes are passed through
unchanged so failures stay diagnosable.
### Typical workflow
1. `anatomy_skill_instructions`, then the closest example's source
2. Write the figure's build script against `kit/iso-kit.mjs`
3. `anatomy_build_figure` with `audit=true` until `audit passed`
4. `anatomy_capture` (dark + light, desktop + 390px phone, zoom close-ups)
and `anatomy_line_check` until `line ends: 0`
5. `anatomy_publish_prep` only when the user asks to publish
## License
MIT
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues