mcpField
O
Omniverse_usd_mcpserver

Omniverse_usd_mcpserver

Local
github.com/zxwzxwMedia & Design0Updated 75w ago

About Omniverse_usd_mcpserver

Omniverse_usd_mcpserver is an MCP server for working with USD and NVIDIA Omniverse. It is intended for users who need basic scene-stage management, inspection, and geometry operations through MCP.

Key features

  1. 01Create, open, and save USD stages
  2. 02List and analyze stage contents
  3. 03Create prims and basic geometry
  4. 04Reference external USD files
  5. 05Close stages and release resources

Use cases

  1. 01Create and edit USD scenes
  2. 02Inspect prims in a stage
  3. 03Bring external USD files into a scene

MCP support

The server exposes USD operation tools to MCP clients and supports stdio, HTTP, WebSocket, SSE, TCP, and ZeroMQ protocols.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Omniverse USD MCP Server

Python MCP License: MIT

A Model Context Protocol (MCP) server for working with Universal Scene Description (USD) and NVIDIA Omniverse. This server provides a standardized API for basic USD operations.

Core Features

The server currently provides these core USD operations:

  • Create, open, and save USD stages
  • List and analyze stage contents
  • Create prims and define basic geometry
  • Add references to external USD files
  • Proper resource management with stage cleanup

Installation

# Clone the repository
git clone https://github.com/yourusername/omniverse-usd-mcp-server.git
cd omniverse-usd-mcp-server

# Install dependencies
pip install -r requirements.txt

Quick Start

# Start the server with stdio protocol (for CLI interaction)
python -m usd_mcp_server

# Start the server with HTTP protocol (for web clients)
python -m usd_mcp_server --protocol=http --host=0.0.0.0 --port=5000

Using the Server

The server can be used with any Model Context Protocol (MCP) client. Here's an example using the Python client included:

import asyncio
import sys
import os

# Add the parent directory to the path
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
from usd_mcp_client import UsdMcpClient

async def run_example():
    # Create client and connect
    client = UsdMcpClient("stdio", ["python", "-m", "usd_mcp_server"])
    await client.connect()
    
    try:
        # Create a new stage
        result = await client.call_tool("create_new_stage", {
            "file_path": "example.usda",
            "template": "basic",
            "up_axis": "Y"
        })
        stage_id = result["data"]["stage_id"]
        
        # Add a cube
        await client.call_tool("define_stage_prim", {
            "stage_id": stage_id,
            "prim_path": "/World/Cube",
            "prim_type": "Cube"
        })
        
        # Save the stage
        await client.call_tool("save_usd_stage", {
            "stage_id": stage_id
        })
        
        # Close and cleanup the stage when done
        await client.call_tool("close_stage", {
            "stage_id": stage_id
        })
        
    finally:
        await client.close()

# Run the example
asyncio.run(run_example())

Server Protocols

The server supports multiple communication protocols:

  • stdio: Standard input/output (default, for embedding in applications)
  • http: HTTP protocol for web clients
  • websocket: WebSocket protocol for real-time applications
  • sse: Server-Sent Events for one-way real-time updates
  • tcp: Raw TCP protocol
  • zmq: ZeroMQ protocol for high-performance applications

Available Tools

The server provides these tools for USD operations:

Core USD Tools
  • create_new_stage: Create a new USD stage
  • open_usd_stage: Open an existing USD stage
  • save_usd_stage: Save changes to a stage
  • close_stage: Close and unload a stage, freeing resources
  • list_stage_prims: List all prims in a stage
  • analyze_usd_stage: Analyze stage content
  • define_stage_prim: Create a new prim
  • create_stage_reference: Create a reference to another USD file
  • create_stage_mesh: Create a mesh with geometry data

Example Scripts

In the examples/ directory, you'll find example scripts demonstrating how to use the server:

  • basic_example.py: Shows basic stage creation and manipulation

Production Readiness:

Requires ~20 hours of polish (tests, CI, error handling) to meet enterprise standards.

This implementation has a strong foundation but needs hardening for mission-critical workflows. If you’re willing to contribute missing tests/maintenance tools, it’s a viable starting point for USD automation.

Future Roadmap

Future releases will expand functionality to include:

  • Physics simulation tools
  • Material creation and management
  • Animation keyframing
  • Scene graph visualization
  • Advanced geometry operations

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements


Maintained by Jan Haluszka

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.