vrm-toolkit-mcp
Server Quality Checklist
Latest release: v0.1.1
- Disambiguation5/5
Each tool targets a distinct file type and operation: VRM inspect vs validate, VRMA inspect vs preview, and VRM snapshot for rendering. There is no overlap in purpose, making selection unambiguous.
Naming Consistency5/5All tool names follow a consistent pattern of a file-format prefix (vrm/vrma) followed by an action word (inspect, validate, preview, snapshot). The pattern is uniform and predictable, with only a minor noun/verb nuance that does not cause confusion.
Tool Count5/5Five tools is an ideal size for a focused VRM toolkit, covering inspection, validation, and rendering without unnecessary bulk. Each tool appears necessary and well-scoped.
Completeness4/5The toolkit covers the core workflows for VRM/VRMA files: inspecting, validating, previewing animations, and rendering snapshots. The only minor gap is the lack of a dedicated VRMA validation tool, but this does not critically hinder the overall purpose.
Average 4/5 across 5 of 5 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 6 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It does disclose output formats, mode-specific behavior, the 10-second limit, and the local headless Chrome/Edge dependency, but it omits side effects such as overwriting output files, failure modes when Chrome/Edge is absent, and any return/status behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that front-load the core action and resource. Every clause adds useful context: output mode, format, time/duration limits, and the headless browser dependency. There is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, no output schema, and no annotations, the description provides core mode semantics but leaves gaps: it doesn't explain how to use optional view/width/height params, what happens on failure, or whether output_path is overwritten. It is adequate for a simple invocation but not fully complete for a complex 10-parameter render tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers most parameters at 70% coverage, including mode, time_sec, duration_sec, paths, and fps. The description mostly restates these relations (PNG at time_sec, WebM max 10 seconds), adding little beyond the schema. It does not explain under-documented parameters like view, width, or height.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Render a VRMA animation applied to a VRM through a local headless Chrome/Edge.' It specifies the exact resources (VRMA, VRM), the output modes (PNG for image, WebM for video), and distinguishes itself from sibling inspect/snapshot tools by being the render/preview tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives mode-specific usage: 'mode=image writes a PNG at time_sec; mode=video records a short WebM clip (max 10 seconds).' However, it does not explicitly state when to use this tool versus alternatives like vrma_inspect or vrm_snapshot, nor does it mention exclusions or prerequisites beyond the local headless browser.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses a key behavior ('through a local headless Chrome/Edge') and a limitation ('rest pose', though v0.1 supports only rest pose). However, it does not mention side effects like file overwriting, system requirements beyond the browser, or error behavior, leaving gaps for a render tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence with no fluff. It front-loads the core action and then lists key options, earning its place with relevant details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a render tool with no output schema, the description covers the essential behavior: input, output type (PNG), pose, expression, and view presets. It misses details about return values or error handling, but for a utility that writes to an output_path, this is acceptable. The 'local headless Chrome/Edge' requirement adds important operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 43%, so the description must compensate. It adds meaning to 'expression' (with an example) and 'view' (mentions face close-up), but it does not clarify 'width' or 'height' beyond their schema types. This partial compensation matches the baseline for a moderately described schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Render a still PNG'), the resource (a VRM avatar), and specific details like 'rest pose', 'expression weights', and 'view presets'. This distinguishes it from sibling tools like vrm_inspect (inspection) and vrma_preview (VRMA animation), making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when a snapshot of a VRM is needed) but does not explicitly state alternatives or exclusions. It does not compare with sibling tools, so guidance is implied rather than explicitly provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It discloses that output is structured JSON and that no rendering occurs, but it doesn't mention file access requirements, error behavior, or explicitly confirm read-only status. The 'inspect' verb implies non-destructive behavior, but richer context would improve the score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core action, enumerates the inspected attributes, and concludes with output format and a key non-behavior. Every phrase contributes meaning with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple inspection tool with one parameter and no output schema, the description covers the essential aspects: what the tool does, what it returns, and what it doesn't do. It doesn't specify error handling or exact JSON structure, but the listed fields give a strong hint. Given the low complexity, this is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single parameter ('path') with a description 'Local path to a .vrma file'. The tool description adds no additional parameter-specific semantics, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Inspect') and resource ('a local VRMA (VRM animation) file'). It lists the exact information returned (spec version, targeted bones, expression tracks, etc.), which distinguishes it from sibling tools like vrm_inspect (VRM files) and vrma_preview (rendering).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates the tool is for inspecting VRMA files and mentions 'no rendering,' which helps an agent decide when to use it for analysis rather than preview. However, it doesn't explicitly name alternative tools or provide when-not-to-use guidance beyond the rendering exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It enumerates specific checks performed and mentions configurable budget limits, which is more than a generic 'validates.' However, it does not explicitly state read-only behavior or describe the finding list format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the primary action and lists specifics without waste. Every element contributes to understanding the tool's scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 2 params (one nested), no output schema, and no annotations. The description explains what it does and mentions budget checks, but lacks details about the exact structure of the finding list, error cases, or prerequisites. Given the complexity of validation, more return-value detail would be expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by clarifying that 'limits' controls size/triangle/texture/material budget checks, which maps directly to the nested fields. This helps an agent understand the purpose of the limits parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates a local VRM file and enumerates specific validation categories (humanoid bones, node references, meta/license, extensions, budget checks). This distinguishes it from sibling tools like vrm_inspect or vrma_preview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use for validation. However, there is no explicit mention of when not to use it or alternatives (e.g., vrm_inspect for inspection). The verb 'validate' implies usage but does not distinguish from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It specifies that the tool performs inspection (implying read-only), outputs structured JSON, and does not render anything (no rendering). This adequately communicates non-destructive behavior and output format for a simple inspection tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the verb and resource, then efficiently enumerates the inspection contents and output format. Every phrase adds value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no output schema), and the description provides a complete overview of what is inspected, the input type, the output format, and the non-rendering behavior. This is sufficient for an AI agent to select and invoke the tool correctly without needing additional details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'path' fully described as 'Local path to a .vrm file' (coverage 100%). The description adds no extra semantics about the parameter itself, but the schema already covers it. Therefore, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: inspect a local VRM file, and lists specific content areas (meta, humanoid bone map, expressions, statistics). It distinguishes from sibling tools by explicitly targeting VRM files (not VRMA) and the 'inspect' operation versus validate/preview/snapshot, making its scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: to inspect a local VRM file and receive structured metadata and statistics. It does not explicitly mention when not to use it or suggest alternatives like vrm_validate, but the sibling tool names and the description's focus on inspection imply the appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dwarehouse1/vrm-toolkit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server