The programmatic bridge for AI agents to read, write, compile, and transform HoloScript entities — spatial, backend, or anything in between. Read the V6 Vision →
Model Context Protocol (MCP) server for HoloScript AI assistance. Tool/target counts via curl mcp.holoscript.net/health (changes as deploys evolve), including sovereign + bridge compilation targets, team board tools, and agent fleet tools. Free and open-source.
npm install @holoscript/mcp-serverA live instance is available at https://mcp.holoscript.net — no local server required.
Health and discovery endpoints are public; raw POST /mcp calls require an
OAuth 2.1 access token or a production-valid legacy tenant key.
# Health check
curl https://mcp.holoscript.net/health
# REST API
curl https://mcp.holoscript.net/api/health
curl -X POST https://mcp.holoscript.net/api/render -H "Content-Type: application/json" \
-d '{"code": "composition \"T\" { object \"C\" { geometry: \"cube\" } }"}'
curl -X POST https://mcp.holoscript.net/api/share -H "Content-Type: application/json" \
-d '{"code": "...", "title": "My Scene", "platform": "x"}'
# MCP protocol
TOKEN="$(curl -s -X POST https://mcp.holoscript.net/oauth/register \
-H "Content-Type: application/json" \
-d '{"client_name":"docs-smoke","redirect_uris":[],"scope":"tools:read","token_endpoint_auth_method":"client_secret_post"}' \
| node -e "let b='';process.stdin.on('data',c=>b+=c).on('end',async()=>{const c=JSON.parse(b);const r=await fetch('https://mcp.holoscript.net/oauth/token',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({grant_type:'client_credentials',client_id:c.client_id,client_secret:c.client_secret,scope:'tools:read'})});const t=await r.json();process.stdout.write(t.access_token||'')})")"
curl -X POST https://mcp.holoscript.net/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'Use the hosted MCP server — no local installation needed:
{
"mcpServers": {
"holoscript": {
"url": "https://mcp.holoscript.net/mcp",
"headers": {
"Authorization": "Bearer ${HOLOSCRIPT_MCP_ACCESS_TOKEN}"
}
}
}
}If your MCP client supports OAuth discovery, point it at
https://mcp.holoscript.net/mcp and let it complete registration/token exchange.
For manual smoke tests, run pnpm --filter @holoscript/mcp-server smoke:auth.
Run the server locally via stdio:
{
"mcpServers": {
"holoscript": {
"command": "npx",
"args": ["@holoscript/mcp-server"]
}
}
}| Tool | Description |
|---|---|
compile_holoscript |
Compile to any target (Unity, URDF, WebGPU, etc.) |
compile_to_unity |
Compile to Unity C# with prefab generation |
compile_to_unreal |
Compile to Unreal C++ with Blueprints |
compile_to_urdf |
Compile to URDF for ROS 2 / Gazebo |
compile_to_sdf |
Compile to SDF for Gazebo simulation |
compile_to_webgpu |
Compile to WebGPU with WGSL shaders |
compile_to_r3f |
Compile to React Three Fiber JSX |
get_compilation_status |
Track compilation job progress |
list_export_targets |
List all 30+ export targets with categories |
get_circuit_breaker_status |
Check circuit breaker health per target |
Supported Export Targets (30+):
- Game Engines: Unity, Unreal, Godot
- VR Platforms: VRChat, OpenXR
- Mobile AR: Android, Android XR, iOS, visionOS, Generic AR
- Web Platforms: Babylon.js, WebGPU, React Three Fiber, WASM, PlayCanvas
- Robotics/IoT: URDF, SDF, DTDL (Azure Digital Twins)
- 3D Formats: USD, USDZ
- Advanced: VRR, Multi-Layer
See COMPILER_TOOLS.md for detailed documentation.
Total tool count via curl mcp.holoscript.net/health (changes with each deploy).
| Tool | Description |
|---|---|
parse_hs |
Parse .hs or .hsplus code into AST |
parse_holo |
Parse .holo composition files |
validate_holoscript |
Validate syntax with AI-friendly error messages |
list_traits |
List all 3,300+ VR traits by category |
explain_trait |
Get detailed trait documentation |
suggest_traits |
Suggest traits from natural language |
generate_object |
Generate objects from descriptions |
generate_scene |
Generate complete compositions |
get_syntax_reference |
Syntax documentation lookup |
get_examples |
Code examples for common patterns |
explain_code |
Plain English code explanation |
analyze_code |
Complexity and best-practice analysis |
render_preview |
Generate preview images/GIFs |
create_share_link |
Create shareable playground links |
convert_format |
Convert between .hs, .hsplus, .holo |
| Tool | Description |
|---|---|
holo_parse_to_graph |
Parse .holo into graph (nodes, edges, flows) |
holo_visualize_flow |
ASCII flow diagram of event/action chains |
holo_get_node_connections |
All connections for a specific node |
holo_design_graph |
Design graph architecture from description |
holo_diff_graphs |
Compare two .holo files as graph diffs |
holo_suggest_connections |
Suggest missing connections and flows |
| Tool | Description |
|---|---|
hs_scan_project |
Scan workspace for all HoloScript files/assets |
hs_diagnostics |
LSP-style diagnostics with quick fixes |
hs_autocomplete |
Context-aware completions (traits, properties) |
hs_refactor |
Rename, extract template, organize imports |
hs_docs |
Inline documentation for traits/keywords |
hs_code_action |
Position-aware code actions (lightbulb) |
hs_hover |
Hover information (tooltips) |
hs_go_to_definition |
Find symbol definitions across files |
hs_find_references |
Find all references to a symbol |
| Tool | Description |
|---|---|
hs_ai_explain_error |
Human-friendly error explanations with fixes |
hs_ai_fix_code |
Automatically fix broken HoloScript code |
hs_ai_review |
Code review for performance, traits, structure |
hs_ai_scaffold |
Generate production-ready project scaffolding |
| Tool | Purpose |
|---|---|
get_tool_manifest |
Return machine-readable tool manifest with categories, tags, and input/output schemas |
suggest_tools_for_goal |
Recommend best tools for a natural-language goal + suggested bundles |
batch_tool_call |
Execute multiple tool calls in one request with per-call success/error results |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "suggest_tools_for_goal",
"arguments": {
"goal": "parse, validate, and compile this scene to r3f",
"maxSuggestions": 8
}
}
}{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "batch_tool_call",
"arguments": {
"stopOnError": true,
"calls": [
{ "name": "parse_hs", "args": { "code": "object Cube { geometry: \"cube\" }" } },
{ "name": "validate_holoscript", "args": { "code": "object Cube { geometry: \"cube\" }" } },
{
"name": "compile_holoscript",
"args": {
"code": "composition \"Demo\" { object \"Cube\" { geometry: \"cube\" } }",
"target": "r3f"
}
}
]
}
}
}The batch_tool_call response includes results[] (per call) and a summary with totals, failures, and whether execution stopped early.
"Create a VR scene with a grabbable ball and physics"
# Claude uses generate_scene + suggest_traits automatically
"Fix this HoloScript code: composition ball { @graable }"
# Claude uses hs_ai_fix_code -> corrects @graable to @grabbable
"Show me the architecture of this .holo file"
# Claude uses holo_parse_to_graph + holo_visualize_flow
import { tools, handleTool } from '@holoscript/mcp-server';
// Parse code
const result = await handleTool('parse_hs', {
code: 'composition Ball @grabbable { position: [0, 1, 0] }',
});
// Get graph structure
const graph = await handleTool('holo_parse_to_graph', {
code: 'composition "Scene" { ... }',
});
// AI code review
const review = await handleTool('hs_ai_review', {
code: myHoloCode,
focus: 'performance',
});For advanced features, use the Hololand MCP server (premium):
- Live browser context visibility via Brittney
- AI-powered debugging with full runtime context
- One-shot generate & inject into running app
- Real-time error monitoring with auto-fix
- Performance guard with AI optimization
- Session recording & replay
- Batch agent operations
See @hololand/mcp-server for details.
MIT