Vantage Code Mode MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Vantage Code Mode MCP Serverlist all objects in the current scene"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vantage Code Mode MCP Server
The Vantage Code Mode MCP Server lets Claude, Codex, Gemini, and other LLM clients work with Vantage: inspect and modify scene state, open and save files, probe and modify properties of scene objects, and run VScript payloads through the Scratchpad.
The LLM client sees named tools such as vantage_status, vantage_scene_inventory,
and vantage_eval, plus Code Mode's execute tool for multi-step work.
Walking along a request path, from Server config to request's end
Stage | What happens |
1 | The modified Vantage installer installs the MCP server runtime and writes managed MCP entries for Claude, Codex, and Gemini. |
2 | Vantage is already running and exposes its native bridge. When an LLM needs it, the MCP client starts |
3 | Before tools become available, MCP lifespan asks the bridge to load the minimal MCP-owned VScript when needed and waits for VScript readiness. Bridge, bootstrap, or readiness failure aborts the connection. |
4 | After that gate, MCP initialization supplies the stable Vantage/VScript operating model; the client can read targeted |
5 | The MCP server turns a tool call into a compact JSON bridge request. Code Mode can wrap several tool calls in one Python |
6 | The bridge request goes over the native Win32 named pipe with explicit framing, readiness checks, payload guards, and structured pacing for racing control. |
7 | The native bridge receives the command inside the running Vantage process. |
8 | App-level operations use |
9 | VScript eval uses |
10 | Utility helpers such as |
11 | Large results, such as 10k scene instances plus metadata, return through chunked native response frames, are reassembled in Python, then reduced to counts, samples, hashes, or filtered subsets before the LLM sees them. |
That is the whole shape: MCP client, installed server, VScript-aware tools, pipe transport, Vantage-side execution, VScript/helpers, and a controlled response path back to the model.
Related MCP server: Maya MCP
Install and client setup
The modified Vantage installer owns the setup. Client machines do not need Python, pip, virtual environments, PyInstaller, or a source checkout.
Piece | Owner |
Runtime payload | Vantage installer |
Claude config entry | Vantage installer |
Codex config entry | Vantage installer |
Gemini config entry | Vantage installer |
MCP server launch | The MCP client, through |
Manual diagnostics |
|
You normally do not run the helper commands by hand. Install and uninstall are
installer hooks. --stdio is launched by the MCP client when an LLM uses
Vantage MCP.
A first stdio connection is deliberately strict: Vantage must already expose
the native bridge, and the server must establish a ready VScript before FastMCP
serves tools or callbacks. Successful MCP status calls therefore run after that
readiness proof. Standalone --diagnose reads raw native status and may observe
the pre-bootstrap scriptingEnabled or vscriptLoaded flags instead.
Knowledge up front, references on demand
Agents do not have to guess the Vantage surface from memory or spend the hot path rediscovering its basic rules. The MCP initialization instructions include the stable VScript execution model, scene collections, object lookup rules, write-proof protocol, value-shape rules, and canonical failure tokens.
vantage://reference/index
vantage://reference/vscript-surface/camera/fov
vantage://reference/return-values/Vector.vThose MCP resources provide deterministic routing and exact SDK facts without
creating another domain tool or duplicating VScript as a typed mutation API.
Code Mode can use the same direct tools inside execute:
await call_tool(name, params)Use direct tools for direct actions. Use Code Mode when the agent needs loops, polling, retries, filtering, hashes, or several Vantage calls before returning a small final value. Code Mode orchestrates VScript; it does not replace it.
Pipe and protocol
The pipe is the strong local transport under the MCP server.
Behavior | Why it matters |
Native bridge readiness is a chain: process, ready event, then ping/status. | The ready event alone is treated as a hint, not proof. |
MCP connection readiness additionally requires a ready VScript. | The server loads the minimal bootstrap when needed and aborts startup if bridge, bootstrap, or readiness fails. |
Requests are length-prefixed JSON frames. | Python and native code agree on explicit frame boundaries. |
Request frames have a | Oversized requests are rejected before accidental whole-buffer JSON allocation. |
Responses up to | Ordinary responses stay simple. |
Larger responses are chunked. | Big native results can return without pretending the pipe frame is infinite. |
Chunk reassembly is validated and capped at | Ordering, encoding, final flags, base64 data, and aggregate allocation are checked. |
Raw pipe races can return | The one native pipe instance is serving or recycling; that is pacing, not a scene failure. |
The native bridge currently passes 1 MiB as the advisory input and output
buffer size to CreateNamedPipeW. Windows owns the actual pipe-buffer
allocation and backpressure behavior. That advisory setting is not the protocol
frame size.
Vantage-side execution
Vantage owns the scene, renderer, and VScript runtime. Apart from ping,
commands are posted back onto the Vantage app thread before they touch host
state.
LavinaApp is used for app-level work: get_status reads async app state and
scene/script flags, open_scene enqueues Vantage's normal scene-load task,
save_scene_as calls the product .vantage save entry point, open_script
uses Vantage's script loader, and request_quit follows the normal main-window
close path.
VScript eval is narrower. After the bridge gets the interactive core from
LavinaApp, it fetches the scene's VScriptManager and runs
VScriptManager::executeAdHocSnippet(...) through Vantage's Scratchpad path.
The Scratchpad boundary supplies the MCP-owned mcpSceneObj alias from the
loaded script's engine-owned scene object, so reads do not replace a running
behavior script. Loaded script files themselves define MyLogic; VScript calls
its constructor with sceneObj.
The MCP result includes structured fields for success/failure, stdout, stderr,
result capture, errors, and whether the scene changed.
The helper tools are there to avoid waste. For example,
vantage_scene_inventory can return counts plus sampled cameras, lights, and
nodes in one call. That saves the agent from making a chain of ad-hoc VScript
queries and from dumping a full production scene into chat just to answer a
small question.
Tool and reference surface
Area | Tool | What it is for |
Bridge |
| Runtime state, scene-load state, scripting state, and VScript readiness. |
Bridge |
| Cheap bridge health check. |
Bridge |
| Start the installed one-up Vantage for recovery after an established MCP session loses its host. |
Scene |
| Open a |
Scene |
| Save a |
Discovery |
| Return normalized camera/light/node counts and sampled entries. |
Discovery |
| Inspect the live VScript surface of one camera, light, or node. |
VScript |
| Load a Python script into Vantage's VScript runtime. |
VScript |
| Run ad-hoc VScript and capture structured output. |
VScript |
| Run VScript and parse a marked JSON result server-side. |
Session |
| Close Vantage through its normal Save/Discard/Cancel path. |
Code Mode |
| Run async Python orchestration around Vantage tool calls. |
Code Mode |
| Compact tool discovery for the Code Mode surface. |
Vantage reference material is exposed as MCP resources rooted at
vantage://reference/index, including deterministic routing, VScript surface
members, and return-value shapes. get_schema belongs only to Code Mode's
compact discovery surface; there is no duplicate vantage_get_schema tool.
Mechanically provable failures return a small structural envelope with a stable failure token, evidence, next action, and—when useful—the targeted reference URI. The server does not keep a catalog of task recipes or model-specific mistakes; the LLM remains responsible for authoring the VScript.
vantage_quit follows Vantage's normal dirty-scene prompt. The no-prompt
shutdown command is kept for development and is not exposed as an LLM-facing
tool.
vantage_start cannot rescue the first connection when Vantage is absent:
lifespan must succeed before any tool can be called. It remains useful after an
established server session loses Vantage because the MCP process stays alive
and can launch the installed one-up executable with Home skipped.
Large responses without context flooding
The bridge can move large local payloads, but the MCP layer should return compact answers. A 10,000-node scene may have enough names and metadata to be large on the wire; the useful answer may only need counts, hashes, samples, or a filtered subset.
That is the intended path:
Vantage data -> native response chunks -> Python reassembly -> helper summary -> compact LLM answerThe latest stress report (below) measured large payload bodies inside tools and returned
byte counts, lengths, hashes, timings, and samples instead of raw bodies. The
reported visible token cost for the full stress ledger was low: 407 estimated
LLM input tokens and 1,039 estimated output tokens.
Stress evidence
The latest recorded live battery passed 29 / 29 checks against an open
Vantage instance.
Signal | Result |
Installed runtime live against open Vantage | PASS |
Vantage host process + native ready event | PASS |
Scene probe | 10,000 nodes, 1 light, 1 camera |
Full node-list representation | 478,898 chars in 0.053 s |
Largest Code Mode payload | 1,024 MiB in 16.637 s |
1,024 MiB effective rate | 61.6 MiB/s |
Code Mode timeout | Did not trip; 1 GiB completed under 60 s |
Public MCP concurrency | 400 / 400 served |
Raw VScript race pacing | 43 served, 257 |
Final bridge health | PASS, VScript OKScript |
Estimated LLM tokens, all reported rows | 407 in / 1,039 out |
Repository notes
File | Purpose |
| Builder-facing release, packaging, patch, and verification details. |
| Installed-user notes copied into the frozen runtime. |
| Latest live load-test evidence. |
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/EmanueleLecchi/vantage-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server