MCP Guide
July 23, 2026 ยท View on GitHub
This branch exposes a broad MCP surface for LichtFeld Studio. The goal of this section is not to repeat every tool signature. It is to make the surface fast to navigate so an agent can discover state, pick the right namespace, and execute the shortest safe sequence for a task.
Working Contract
- Use MCP resources for discovery and current state.
- Use MCP tools for mutations and long-running actions.
- Read state before acting.
- Prefer targeted resources over code reading.
- Fall back to source only when the resource and tool metadata still leave ambiguity.
Tool Metadata
In tools/list, annotations contains only the standard MCP hints readOnlyHint, destructiveHint, and idempotentHint. LichtFeld-specific metadata lives under _meta with namespaced keys: app.lichtfeld/category, app.lichtfeld/kind, app.lichtfeld/runtime, app.lichtfeld/thread_affinity, app.lichtfeld/long_running, and app.lichtfeld/user_visible.
First Resources To Read
Read these first in most sessions:
lichtfeld://runtime/cataloglichtfeld://runtime/statelichtfeld://ui/statelichtfeld://scene/statelichtfeld://selection/currentlichtfeld://history/state
Then narrow further:
lichtfeld://ui/toolsfor tool ids, active state, and availabilitylichtfeld://ui/menusfor menu trees and invokable actionslichtfeld://ui/panelsfor panel ids and registry statelichtfeld://operators/registryfor operator ids, flags, and input schemaslichtfeld://scene/nodesandlichtfeld://scene/selected_nodesfor scene manipulationlichtfeld://history/stateandlichtfeld://history/stackfor undo/redo inspectionlichtfeld://runtime/jobs/<job_id>andlichtfeld://runtime/events/<event_type>for long-running work
Main Namespaces
| Namespace | Use |
|---|---|
scene_* | Load datasets, checkpoints, scene nodes, exports |
training_* | Training state, loss, and training control |
runtime_* | Normalized job and event tracking |
ui_tool_*, ui_menu_*, ui_panel_*, ui_operator_* | Drive the registered GUI surface |
operator_* | Introspect and invoke registered GUI operators, including modal flows |
selection_* | Screen-space Gaussian selection |
transform_* | Node transform inspection and edits |
gaussians_* | Raw Gaussian tensor reads and writes |
history_* | Shared undo/redo inspection, playback, and grouped transactions |
editor_* | Integrated Python console execution |
camera_*, render_*, sequencer_* | View state, captures, and timeline workflows |
Runtime Model
lichtfeld://runtime/catalog is the bootstrap resource for long-running work. It advertises normalized job ids and event types, including:
training.maineditor.pythonimport.datasetexport.sceneexport.videooperator.modal
When a tool can block or keep running, use the runtime APIs instead of sleeping:
runtime_job_listruntime_job_describeruntime_job_waitruntime_job_controlruntime_events_tail
Recommended Reading Order
- Connecting MCP Clients for client setup (Claude Desktop, Claude Code, in-repo agents)
- Bootstrap for the discovery-first workflow
- Recipes for concrete task sequences
What Not To Do
- Do not guess operator ids or modal event shapes.
- Do not scan the entire source tree before checking
resources/list,tools/list, and the bootstrap resources. - Do not poll blindly when
runtime_job_waitorruntime_events_tailcan tell you what changed. - Do not assume exports are asynchronous in the current GUI implementation.