Express-based API server that bridges MCP clients to VRChat and Avatar MCP servers via stdio transport. Exposes MCP tool execution and server status endpoints.
Both tools have minimal descriptions (under 100 chars) and lack proper input schema documentation. Tool names are verb-based but descriptions are vague about when/why to use them. No output schemas documented. No error handling guidance. Parameters lack type constraints (enums, ranges). This server exposes internal MCP client management as tools rather than domain-specific functionality, which is architecturally questionable for an agent interface.
Checks the online status and available tools count for a specified MCP server
Establishes or retrieves a cached MCP client connection to a specified server (vrchat or avatar) via stdio transport
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. getMCPClient returns a client object (opaque to LLM); checkServerStatus returns {online, tools, error} but structure is not formally specified.
Parameter 'serverName' lacks enum constraint. Description says 'vrchat or avatar' but no formal enum in schema. LLMs may hallucinate other server names, causing failures.
Descriptions are too brief (under 100 chars) and lack context. 'Establishes or retrieves a cached MCP client' does not explain WHEN to call this vs checkServerStatus, or what the returned client object is used for.
No error handling guidance. If serverName is invalid or connection fails, LLM receives null or error but has no recovery path. Should return actionable error like 'Server not found. Available: vrchat, avatar'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
Architectural mismatch: these tools expose MCP client lifecycle management (internal plumbing) rather than domain functionality. An agent should call VRChat or Avatar tools directly, not manage MCP connections. This breaks the abstraction layer.