VRM Toolkit
About
Inspect, validate and preview VRM / VRMA avatar and animation files locally. 5 tools, stdio, no network access at runtime.
Details
- Author
- dwarehouse1
- Categories
- Design
Jump to
Setup
Install VRM Toolkit in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/dwarehouse1/vrm-toolkit-mcp
Follow the installation instructions in the repository README, then restart your MCP client.
An MCP (Model Context Protocol) server that lets an AI agent inspect, validate and preview VRM / VRMA files on your machine. Five tools, stdio transport, no network access at runtime.
VRM / VRMAファイルの検品・情報抽出・プレビューをAIエージェントから使えるようにする MCPサーバーです。ツールは5本、stdioトランスポート、実行時のネットワークアクセスなし。
Structural tools (vrm_inspect,vrm_validate,vrma_inspect) parse the GLB/glTF container directly in Node and need no browser. Rendering tools (vrma_preview,vrm_snapshot) use an already-installed Chromium-based browser viapuppeteer-core; nothing is downloaded.
構造系3ツールはNode単体でGLB/glTFを直接パースし、ブラウザ不要。描画系2ツールは インストール済みのChromium系ブラウザをpuppeteer-coreで使います(追加ダウンロードなし)。
Supported inputs: VRM 0.x (extensions.VRM), VRM 1.0 (extensions.VRMC_vrm), VRMA (extensions.VRMC_vrm_animation), GLB container or plain glTF JSON.
- Node.js 20+
- Forvrma_preview/vrm_snapshot: a local Chrome or Edge (auto-detected; override with theVRM_TOOLKIT_CHROMEenvironment variable)
- Input size budget: 512 MiB by default (VRM_TOOLKIT_MAX_BYTESto override)
Register with Claude Code / Claude Codeへの登録:
claude mcp add vrm-toolkit -- npx -y vrm-toolkit-mcp
Other MCP hosts / その他のMCPホスト: commandnpx, args["-y", "vrm-toolkit-mcp"](stdio).
npm install npm run build claude mcp add vrm-toolkit -- node /absolute/path/to/vrm-toolkit/dist/main.js
Real outputs from the local test run (2026-08-05, file paths shortened). ローカルテスト実行(2026-08-05)の実出力です(パスは短縮表記)。
Input: a VRoid Studio-exported VRM 1.0 avatar (15.7 MB).
{ "file": { "path": "...\\V1.vrm", "bytes": 15737992, "container": "glb" }, "vrm": { "specFamily": "vrm1", "specVersion": "1.0" }, "meta": { "name": "V1", "authors": ["D"], "licenseUrl": "https://vrm.dev/licenses/1.0/", "avatarPermission": "onlyAuthor", "commercialUsage": "corporation", "creditNotation": "required", "allowRedistribution": false, "modification": "prohibited" }, "humanoid": { "mappedBoneCount": 54, "bones": [ { "bone": "hips", "node": 1, "nodeName": "J_Bip_C_Hips" }, { "bone": "spine", "node": 34, "nodeName": "J_Bip_C_Spine" } ], "missingRequiredBones": [] }, "expressions": { "presetCount": 14, "presets": ["happy", "angry", "sad", "..."] }, "geometry": { "meshCount": 3, "totalVertices": 103489, "totalTriangles": 33484, "perMesh": [ { "name": "Face (merged)", "vertices": 33640, "triangles": 7308 }, { "name": "Body (merged)", "vertices": 57128, "triangles": 11548 }, { "name": "Hair001 (merged)", "vertices": 12721, "triangles": 14628 } ] }, "textures": { "imageCount": 26, "totalImageBytes": 8033934, "maxDimension": 2048 }, "materials": { "materialCount": 17 } }
(Output truncated for readability; the tool returns the full bone and image lists.)
{ "file": { "path": "...\\motion-walk-forward.vrma", "bytes": 3268, "container": "glb" }, "vrma": { "specVersion": "1.0" }, "humanoid": { "mappedBoneCount": 16, "bones": ["hips", "spine", "chest", "head", "..."] }, "animation": { "animationCount": 1, "channelCount": 2, "channelsByPath": { "translation": 1, "rotation": 1, "scale": 0, "weights": 0 }, "totalKeyframes": 62, "durationSec": 1.25, "fpsEstimate": 24, "frameCountEstimate": 31, "humanoidBoneTracks": [ { "bone": "hips", "paths": ["translation"] }, { "bone": "chest", "paths": ["rotation"] } ] } }
A finding list with stable codes and severities:
{ "ok": false, "errorCount": 1, "warningCount": 1, "findings": [ { "severity": "error", "code": "HUMANOID_REQUIRED_BONE_MISSING", "message": "required humanoid bone is not mapped: leftHand (vrm1 required set)" }, { "severity": "warning", "code": "META_LICENSE_OTHER_URL_MISSING", "message": "licenseName is Other but otherLicenseUrl is empty" } ] }
{ "output_path": "...\\v1-three-quarter-snapshot.png", "format": "png", "bytes": 194005, "width": 768, "height": 1024, "view": "three_quarter", "pose": "rest", "humanoid_bone_count": 54 }
{ "output_path": "...\\v1-walk-preview.webm", "format": "webm", "bytes": 313597, "width": 768, "height": 768, "clip_duration_sec": 1.25, "recorded_duration_sec": 3, "fps": 30 }
Every failure is a structured tool error with one of:FILE_NOT_FOUND,SIZE_BUDGET_EXCEEDED,NOT_A_GLB,NOT_A_VRM,NOT_A_VRMA,BROWSER_NOT_FOUND,RENDER_FAILED,OUTPUT_WRITE_FAILED. The server process never crashes on a bad input file.
All processing is local. The server opens no network connection, sends no telemetry, and writes only the output files you name. / 処理はすべてローカルです。ネットワーク接続・テレメトリ送信は なく、書き込みは指定した出力ファイルのみです。
npm test # build + 25 self-verification tests (structural, boundary, headless rendering)
Rendering tests skip with a notice when no local Chrome/Edge is found.
MIT (seeLICENSE). / MITライセンス(LICENSE参照)。
A lightweight MCP (Model Context Protocol) server for Blender. It offers a natural language interface with Blender’s Python API, improving access to documentation, and allowing users to explore and understand complex setups.
The Lottie Creator MCP brings your AI assistant directly into your animation workflow — giving it full access to LottieFiles Creator so it can build and edit Lottie animations on your behalf through natural language.
AI Video, Image & Audio Generation with over 150 models
Rive MCP let AI handle repetitive tasks, like creating complex View Models, State Machines with hundreds of states/layers, Layouts, Shapes, and more.
Create, edit, and export SVGator animations (SVG, Lottie, GIF, video) from your AI assistant, and keep an editable project you can open in the editor anytime.
You're agent can Chain 60+ AI image and video models on one workflow canvas
Real interaction references and motion recipes for AI coding agents.
Search 1,145 real website designs by style, font, colour, section and measured design tokens.
Render, verify, describe, and safely edit Mermaid diagrams through MCP.
MCP bridge between an AI agent and a live Aseprite session, same machine or agent-in-a-VM
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.
