MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

An MCP server that lets AI assistants read, inspect, and manipulate [OpenUSD](https://openusd.org) scenes.

Created 2/13/2026
Updated about 9 hours ago
Repository documentation and setup instructions

openusd-mcp

An MCP server that lets AI assistants read, inspect, and manipulate OpenUSD scenes.

pip install openusd-mcp

What it does

Connect this MCP server to Claude, ChatGPT, Cursor, or any MCP-compatible client. Your AI assistant can then work directly with .usda, .usdc, and .usdz files — inspecting scene graphs, querying properties, exporting meshes, and switching variants.

Tools

| Tool | Description | |------|-------------| | usd_inspect | Read the scene graph — list all prims, types, hierarchy | | usd_get_prim | Get detailed properties, attributes, and metadata for a specific prim | | usd_get_materials | List all materials and their shader parameters | | usd_get_transforms | Get world-space transforms for prims | | usd_list_variants | List all variant sets and their options | | usd_set_variant | Switch a variant selection | | usd_export_mesh | Export a mesh prim as STL or OBJ | | usd_scene_stats | Get scene statistics — prim count, mesh count, material count, bounding box |

Quick start

With Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "openusd": {
      "command": "openusd-mcp",
      "args": []
    }
  }
}

Then ask Claude: "Inspect the scene graph of my-scene.usdz and list all mesh prims with their materials."

With any MCP client

openusd-mcp --stdio

The server communicates over stdin/stdout using the MCP protocol.

As a Python library

from openusd_mcp import inspect_scene, get_prim, export_mesh

# Get the full scene graph
tree = inspect_scene("scene.usdz")
print(tree)

# Query a specific prim
prim = get_prim("scene.usdz", "/World/Body")
print(prim.attributes)

# Export a mesh as STL
export_mesh("scene.usdz", "/World/Body", "body.stl")

Example

You: Inspect the scene graph of case.usdz

Claude: Here's the scene graph for case.usdz:

  /Case (Xform)
    /Case/Body (Mesh) — 2,847 faces, material: OrangePBR
    /Case/Logo (Mesh) — 1,204 faces, material: BlackPBR

  Materials:
    OrangePBR — diffuseColor: (1.0, 0.55, 0.0), metallic: 0.0, roughness: 0.4
    BlackPBR  — diffuseColor: (0.1, 0.1, 0.1), metallic: 0.0, roughness: 0.3

  Scene bounds: (42mm x 26mm x 13mm)
  Up axis: Z, meters per unit: 0.001

You: Export the Body mesh as STL

Claude: Exported /Case/Body to body.stl (2,847 triangles, 142KB)

Requirements

  • Python 3.9+
  • usd-core (Pixar's USD Python bindings)
pip install usd-core

How it works

The server uses Pixar's official pxr Python bindings (the same libraries used by NVIDIA Omniverse, Apple's Reality Composer, and every major VFX pipeline) to read and manipulate USD stages. It exposes these capabilities as MCP tools that any AI assistant can call.

OpenUSD is the industry standard for describing 3D scenes, backed by Pixar, Apple, NVIDIA, Adobe, and Autodesk. As of December 2025, the Alliance for OpenUSD has ratified Core Specification 1.0.

Author

Mirko KieferDaslab

License

MIT

Links

  • OpenUSD — Universal Scene Description
  • AOUSD — Alliance for OpenUSD
  • MCP — Model Context Protocol
  • Daslab — Where AI meets the physical world
Quick Setup
Installation guide for this server

Install Package (if required)

uvx openusd-mcp

Cursor configuration (mcp.json)

{ "mcpServers": { "daslabhq-openusd-mcp": { "command": "uvx", "args": [ "openusd-mcp" ] } } }