Skip to content

Releases: Rorical/VaMMCP

VaMMCP 1.0.1

Choose a tag to compare

@Rorical Rorical released this 20 Aug 18:07

Changed

  • Tool payloads carry real JSON types too: counts, coordinates, morph values, parameter
    min/max/default and on/active flags are numbers and booleans instead of quoted strings, and
    a null value is null rather than "null". Timestamps and enum names stay strings, as do the
    parameters sent to the Hub API, which expects them that way.

Fixed

  • Protocol values are now real JSON types. VaM's SimpleJSON quotes everything it serialises,
    so listChanged, subscribe, isError, JSON-RPC error codes and — most importantly — the
    JSON-RPC id all went out as strings. Clients built on the official MCP SDK validate against
    the spec schema and match responses by id, so they rejected the handshake and fell back to the
    legacy SSE transport until they timed out. opencode could not connect at all; it can now.
  • status reported vaMVersion from Application.version, which is the Unity player version
    ("1.0"). It now uses SuperController.GetVersion() and reports the actual VaM build.
  • scripts/deploy.sh and scripts/install-bepinex.sh resolved VAM_ROOT one level too high
    (the scripts already cd to the repo root), so with the repo inside the VaM folder they wrote
    to the parent of the VaM install. Both now resolve it correctly and refuse to run against a
    directory with no VaM_Data in it.

Install: drop VaMMCP.dll into <VaM>\BepInEx\plugins\ (BepInEx 5.4.x x64
required), start VaM, then point your MCP client at http://127.0.0.1:9837/mcp.

VaMMCP 1.0.0

Choose a tag to compare

@Rorical Rorical released this 20 Aug 13:57

First public release: an MCP server that lives inside Virt-A-Mate as a BepInEx plugin.

Added

  • Streamable HTTP MCP transport (spec 2025-06-18) served from inside the VaM process, targeting net35.
  • 63 tools covering scenes, atoms, persons, morphs, clothing, hair, poses, expressions, bone
    controls, camera, simulation, Hub browsing/downloads, skin subsurface colour and VaM plugin
    management (see docs/TOOLS.md).
  • Generic JSONStorable introspection (list_atom_storables, list_storable_params, get_param,
    set_param, call_action) so any VaM UI slider is reachable without a dedicated tool.
  • Preset export/import, .var package asset scanning, and native plugin management.
  • eval_cs escape hatch, disabled by default.
  • MCP resources: vam://status and vam://atoms.
  • capture_view can return the rendered PNG inline as an MCP image with return_image=true.

Security

  • The HTTP listener binds to loopback only and validates the Origin header (DNS-rebinding
    protection); CORS echoes only an already-validated loopback origin instead of *.
  • Concurrent connections are capped and request sizes are bounded.

Install: drop VaMMCP.dll into <VaM>\BepInEx\plugins\ (BepInEx 5.4.x x64
required), start VaM, then point your MCP client at http://127.0.0.1:9837/mcp.