MCP Streamable HTTP

VizScript MCP

Remote Model Context Protocol server for VizScript — the scripting language powering Viz Engine broadcast graphics.

by Felipe Iasi

62
Types
960
Properties
809
Methods
164
Functions
41
Callbacks
Connect your AI
Claude Desktop
claude_desktop_config.json
{
  "mcpServers": {
    "vizscript": {
      "url": "https://vizscript.mcp.felipeiasi.dev/"
    }
  }
}
Claude Code
CLI
claude mcp add \
  --transport http \
  vizscript \
  https://vizscript.mcp.felipeiasi.dev/
OpenAI / ChatGPT
MCP-compatible clients
# In any OpenAI MCP client config
{
  "type": "url",
  "server_label": "vizscript",
  "server_url": "https://vizscript.mcp.felipeiasi.dev/"
}
Ollama / Open WebUI
MCP tool server
# In Open WebUI: Settings > Tools
# Add MCP Server URL:
https://vizscript.mcp.felipeiasi.dev/

# Or via mcphost CLI:
mcphost --transport http \
  https://vizscript.mcp.felipeiasi.dev/
Available Tools
lookup_type
Full type reference with all properties and methods
list_types
Browse all 62 VizScript data types
search
Full-text search across the entire documentation
get_global_functions
164 functions: math, easing, strings, parameters
get_callbacks
41 event callbacks: OnInit, OnEnter, OnExecPerField
get_language_ref
Syntax, operators, control structures, procedures
get_examples
Code examples: Planets, Tetris, ClipChannel
Try asking your AI
“How do I find a sub-container by name and change its visibility?”
Use FindSubContainer on any Container. It searches breadth-first. You can chain names with $:

Dim c As Container
c = Scene.FindContainer("MyGroup$Label")
c.Active = True

The Active property controls visibility. You can also use ShowOneChildContainer(index) to show a single child and hide the rest.
“What callbacks can I use for mouse interaction?”
VizScript has rich mouse callbacks:
  • OnEnter / OnLeave — mouse enters/leaves container area
  • OnLButtonDown / OnMButtonDown / OnRButtonDown — button press
  • OnLButtonUp / OnMButtonUp / OnRButtonUp — button release
  • OnMouseMove(x, y) — cursor position in screen coords
  • OnMouseWheel(distance) — scroll wheel
Use ContainsMouseCursor() to check if the mouse is over your container. Note: picking callbacks can impact render performance.
“How do I register custom parameters and react when they change?”
Register parameters in OnInitParameters and handle changes in OnParameterChanged:

Sub OnInitParameters()
  RegisterParameterInt("speed", "Speed", 5, 1, 100)
  RegisterParameterColor("col", "Color", CColor(1,0,0))
End Sub

Sub OnParameterChanged(parameterName As String)
  If parameterName = "speed" Then
    Dim val As Integer = GetParameterInt("speed")
  End If
End Sub

Available types: Int, Double, String, Bool, Color, Container, and more.
“How can I share data between two scripts in the same scene?”
Use SharedMemory maps. Each Scene and the System have a .Map property:

Scene.Map["player_score"] = 42 — set from Script 1
Dim s As Integer = (Integer)Scene.Map["player_score"] — read from Script 2

For reactive updates, register a callback: Scene.Map.RegisterChangedCallback("player_score") then implement OnSharedMemoryVariableChanged(map, mapKey).
“How do I start a director animation from script?”
Find the director by name from the Stage, then control it:

Dim dir As Director
dir = Stage.FindDirector("Default")
dir.StartAnimation()

Other controls: StopAnimation(), ContinueAnimation(), PauseAnimation(), SetAnimationToEnd(), Reverse(). Check dir.IsAnimationRunning to see if it’s playing.
“How do I invoke a plugin button or set plugin parameters via Viz Commands?”
Use System.SendCommand with the INVOKE or SET action. Works for both scene-level and container-level plugins:

Scene plugin:
System.SendCommand("RENDERER*FUNCTION*DataReader*initialize INVOKE")

Container plugin:
System.SendCommand("RENDERER*TREE*$all$base*FUNCTION*Autofollow*distance SET 100.0")

These commands also work in Viz Action Keyframes using THIS_SCENE instead of RENDERER.
“How can I change text, visibility, or materials on any container via external commands?”
Viz external commands let you control any node in the scene tree. Use System.SendCommand from VizScript or send via TCP port 6100:

RENDERER*TREE*$all$title*GEOM*TEXT SET Breaking News
RENDERER*TREE*$all$overlay*ACTIVE SET 1
RENDERER*TREE*$all$bg*MATERIAL*DIFFUSE SET 0.8 0.2 0.1
RENDERER*TREE*$all$logo*TEXTURE*IMAGE SET IMAGE*News/logo

Node paths use $ separator: $all$base$kerne, or branch numbers: 1/3/3, or control channels: @MyControl.
What is this?

VizScript MCP gives any AI assistant instant access to the complete VizScript documentation — the scripting language used in Viz Engine for broadcast graphics and real-time 3D.

It implements the Model Context Protocol (MCP) over Streamable HTTP, so it works with Claude, ChatGPT, Ollama, and any MCP-compatible client. The server runs on the edge with sub-50ms response times worldwide.

Instead of searching through docs manually, your AI can look up types, search properties, find methods, and get code examples in real time.

This is a community project by Felipe Iasi and is not officially affiliated with or endorsed by Vizrt. VizScript and Viz Engine are trademarks of Vizrt. The documentation data was parsed from publicly available reference files.