Skip to main content
Glama
lvncer

vrmcp

by lvncer

VRMCP (VRM MCP Server)

VRM モデルを AI が自然言語で制御できる MCP サーバー。 Claude Desktop から自然言語で指示するだけで、Web ブラウザで VRM モデルがリアルタイムに動きます。

セットアップ

このプロジェクトは 2 つの運用モードをサポートしています:

  1. ローカルモード: ローカル環境で MCP サーバーを起動(従来の方法)

  2. リモートモード: Vercel にデプロイして、どこからでもアクセス(推奨)

Related MCP server: VRMCP

使い方

利用可能なツールと使い方をまとめています。

利用可能なツール

Tool

説明

使用例

list_vrm_files

利用可能な VRM/VRMA ファイル一覧

「どんな VRM がある?」

load_vrm_model

VRM モデル読み込み

「character.vrm を読み込んで」

set_vrm_expression

表情設定

「嬉しい表情にして」

set_vrm_pose

ポーズ設定

「右を向いて」

animate_vrm_bone

ボーン操作

「右手を上げて」

load_vrma_animation

VRMA アニメーション読み込み

「greeting.vrma を読み込んで」

play_vrma_animation

アニメーション再生

「挨拶して」

stop_vrma_animation

アニメーション停止

「止めて」

get_vrm_status

状態取得

「現在の状態は?」

プロジェクト構造

vrm-mcp/
├── src/
│   ├── mcp-server.ts          # MCPサーバー実装(stdio + SSE)
│   ├── redis-client.ts
│   └── gateway.ts             # stdio↔SSEゲートウェイ(Claude Desktop用)
├── api/
│   ├── mcp/
│   │   ├── sse.ts             # MCP SSEエンドポイント
│   │   └── messages.ts        # MCP POSTエンドポイント
│   └── viewer/
│       └── sse.ts             # Viewer SSEエンドポイント
├── public/
│   ├── index.html             # VRMビューア(SSE対応)
│   ├── models/                # VRMモデル配置(デフォルト)
│   └── animations/            # VRMAアニメーション配置(デフォルト)
├── package.json
└── README.md

Available Tools

9 tools
animate_vrm_boneB

指定されたボーンを回転させる

ParametersJSON Schema
NameRequiredDescriptionDefault
boneNameYesボーン名(例: leftUpperArm, rightUpperArm, head, spine)
rotationYesクォータニオン回転

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description is too brief to disclose behavioral traits such as rotation space (local/world), animation vs immediate set, or effects on model state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but it sacrifices useful detail. It is front-loaded but incomplete.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description should provide more context about return values, side effects, and required model state. It currently lacks completeness for a tool with nested parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains boneName and rotation. The description adds no extra value beyond confirming the purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'rotate' and the target 'specified bone', distinguishing it from sibling tools that load models, set expressions, poses, or animations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like set_vrm_pose, nor any prerequisites or limitations mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vrm_statusB

VRMモデルの現在の状態を取得する

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. The description is minimal: it only states that the tool retrieves state. It does not disclose any side effects (likely none), performance, or the scope of 'state'. However, for a simple status getter, the description is arguably adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that immediately communicates the tool's purpose. It is front-loaded with the essential verb and resource, and contains no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description is relatively complete for a simple read tool. However, it does not specify what the returned status includes or any behavioral details. A brief mention of the return value would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema coverage is 100%. According to the rubric, baseline score is 4 for 0 parameters. The description does not need to add parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get the current state of the VRM model'. It uses a verb ('取得する' = get) and resource (VRM model state). However, it does not explicitly differentiate from siblings like 'load_vrm_model' or 'set_vrm_expression', though the unique purpose is inferable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs. alternatives. There is no mention of prerequisites, context, or exclusions. The agent receives no help in deciding between this and other VRM-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_vrm_filesC

利用可能なVRMモデルとVRMAアニメーションファイルの一覧を取得する

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo取得するファイルの種類(デフォルト: all)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description bears full responsibility. It only states the action (listing files) but does not disclose any behavioral traits such as caching, latency, access permissions, or side effects. For a read-only listing tool, more transparency would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that immediately conveys the core function. It is front-loaded and efficient, though it could be slightly more informative without sacrificing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool, the description covers the basic purpose. However, without an output schema, it does not hint at the return format (e.g., file names, paths, URIs). Given the minimal context and no annotations, it is adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (one parameter 'type' with enum and description). The description does not add any additional meaning beyond the schema—it only restates the tool's purpose. Baseline of 3 applies since the schema is self-sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves a list of VRM models and VRMA animation files ('利用可能なVRMモデルとVRMAアニメーションファイルの一覧を取得する'). This is specific enough to distinguish from sibling tools like load_vrm_model or set_vrm_expression, but lacks explicit differentiation phrasing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, context of use, or when not to use it. With siblings focusing on loading and animation, the listing function is implied but not explicitly contrasted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_vrma_animationB

VRMAファイルからアニメーションを読み込む

ParametersJSON Schema
NameRequiredDescriptionDefault
animationNameYesアニメーション識別名(再生時に使用)
animationPathYesVRMAファイル名(例: greeting.vrma)環境変数 VRMA_ANIMATIONS_DIR からの相対パス

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden but only states the basic action without revealing side effects, return values, or state changes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded and contains no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks information about what happens after loading (e.g., return value, impact on state) and how it integrates with sibling tools, leaving gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3; the description adds no additional parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it loads an animation from a VRMA file, using a specific verb and resource, and distinguishes from siblings like load_vrm_model and play_vrma_animation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance provided; does not indicate prerequisites, when to use this tool versus alternatives, or any context for invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_vrm_modelB

VRMモデルファイルを読み込む

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesVRMファイル名(例: character.vrm)環境変数 VRM_MODELS_DIR からの相対パス

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavioral traits. It only says 'load', but does not disclose side effects (e.g., model loaded into memory, state changes), error handling, or whether it is destructive. Missing critical behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise single sentence, no redundant information. However, it could include more details without losing conciseness. Front-loading is adequate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should explain return values or success indicators. It does not. Also missing prerequisites (file existence, format). For a load tool with many siblings, more context is needed for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter, filePath, with 100% schema coverage. The description adds meaning: it specifies the file name example and clarifies the path is relative to the environment variable VRM_MODELS_DIR, which is helpful beyond the schema's brief description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool loads a VRM model file (verb+resource) and distinguishes it from siblings like set_vrm_expression, animate_vrm_bone, etc. The Japanese text is specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus siblings, such as when to load a model before setting expressions or poses. No context provided about prerequisites or typical workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

play_vrma_animationB

読み込み済みのVRMAアニメーションを再生する

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNoループ再生するか
animationNameYes再生するアニメーション名
fadeInDurationNoフェードイン時間(秒)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states the action without disclosing side effects, state requirements, or behavior like interrupting other animations. This is insufficient for an agent to understand operational implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, concise and front-loaded. Each word is purposeful, but it lacks additional context that would justify a higher score. No waste, but could be more informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters, no output schema, and no annotations, the description is insufficiently complete. It does not explain how parameters interact, success/failure conditions, or necessary prior steps (e.g., loading the animation). The agent lacks key context to use the tool reliably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear parameter descriptions (loop, animationName, fadeInDuration). The tool description adds no extra meaning beyond the schema, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool plays a loaded VRMA animation ('読み込み済みのVRMAアニメーションを再生する'), distinguishing it from sibling tools like load_vrma_animation (loading) and stop_vrma_animation (stopping). The verb 'play' and resource 'VRMA animation' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not indicate prerequisites (e.g., the animation must be loaded first) or when to use this tool over siblings. The agent is left to infer the context from the tool name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_vrm_expressionA

VRMモデルの表情を設定する

ParametersJSON Schema
NameRequiredDescriptionDefault
weightYes表情の強さ (0.0-1.0)
expressionYes設定する表情(例: happy, angry, sad, surprised, neutral)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral details such as whether the expression overrides previous ones, is additive, or requires a loaded model. Minimal disclosure for a mutation operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence without wasted words, front-loading the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool with 2 parameters and no output schema, the description is adequate but lacks behavioral details that would make it completely clear to an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The tool description adds no extra meaning beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Set expression of VRM model' in Japanese, specifying the verb (set) and resource (expression). It differentiates from sibling tools like set_vrm_pose and animate_vrm_bone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. Context is implied through sibling tool names, but no exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_vrm_poseB

VRMモデルの位置と回転を設定する

ParametersJSON Schema
NameRequiredDescriptionDefault
positionNoモデルの位置
rotationNoモデルの回転

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description should disclose behaviors like whether the pose change is instantaneous, relative or absolute, and what happens if the model isn't loaded. It only restates the tool's purpose, leaving critical behavioral details unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that conveys the core functionality. It is front-loaded and efficient, though it could be expanded slightly with behavioral details without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations, output schema, and sibling differentiation, the description is insufficient for an agent to use the tool correctly. It misses details about coordinate systems, units (only in schema), and interaction with other VRM tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage and already describes each parameter. The description adds no extra meaning beyond the schema, so it meets the baseline of 3 but does not enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool sets the position and rotation of a VRM model. It uses a specific verb-resource pair, and the sibling tools (animate_vrm_bone, set_vrm_expression) are distinct enough that confusion is unlikely.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like animate_vrm_bone or transform functions. An agent would not know whether to use this for direct posing or for setting initial state before animation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_vrma_animationB

再生中のVRMAアニメーションを停止する

ParametersJSON Schema
NameRequiredDescriptionDefault
fadeOutDurationNoフェードアウト時間(秒)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It only states the action without disclosing side effects, idempotency, or what happens if no animation is playing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, clear, no unnecessary words. Effectively front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple action but lacks details about state changes after stopping, no output schema, and could mention interaction with play_vrma_animation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter described. Description adds no extra meaning beyond the schema's parameter description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it stops a currently playing VRMA animation, using a specific verb and resource, distinguishing it from related tools like play_vrma_animation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use or prerequisites (e.g., animation must be playing). No mention of alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updatesv0.1.0
    • First observedanimate_vrm_bone
    • First observedget_vrm_status
    • First observedlist_vrm_files
    • First observedload_vrm_model
    • First observedload_vrma_animation
    • First observedplay_vrma_animation
    • First observedset_vrm_expression
    • First observedset_vrm_pose
    • First observedstop_vrma_animation

TDQS

A3.6/5.0
Disambiguation5/5

Each tool targets a distinct aspect of VRM model manipulation: loading, expressions, pose, bone animation, status retrieval, file listing, and animation control. No overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in English (e.g., load_vrm_model, set_vrm_expression). No mixing of conventions.

Tool Count5/5

Nine tools provide a well-scoped set for VRM model interaction, covering essential operations without unnecessary redundancy.

Completeness4/5

Core lifecycle is covered (load, modify, animate, status), but missing file management (create/delete/rename) or export functionality. Minor gap.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/lvncer/vrmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server