mcpField
O
Omniverse_usd_mcpserver

Omniverse_usd_mcpserver

本地服务
github.com/zxwzxw媒体与设计075 周前更新

关于 Omniverse_usd_mcpserver

Omniverse_usd_mcpserver 是面向 USD 与 NVIDIA Omniverse 工作的 MCP 服务,适合需要通过 MCP 管理场景的用户。它提供阶段操作、内容分析和几何创建等基础能力。

主要功能

  1. 01创建、打开和保存 USD 阶段
  2. 02列出并分析阶段内容
  3. 03创建 prim 和基础几何
  4. 04引用外部 USD 文件
  5. 05关闭阶段并释放资源

适用场景

  1. 01创建和编辑 USD 场景
  2. 02检查阶段中的 prim
  3. 03将外部 USD 文件引入场景

MCP 相关

该服务通过 MCP 向客户端提供 USD 操作工具,并支持 stdio、HTTP、WebSocket、SSE、TCP 和 ZeroMQ 协议。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Omniverse USD MCP 服务

Python MCP License: MIT

用于处理 Universal Scene Description (USD) 和 NVIDIA Omniverse 的 Model Context Protocol (MCP) 服务。该服务为基本的 USD 操作提供标准化 API。

核心功能

该服务目前提供以下核心 USD 操作:

  • 创建、打开和保存 USD 场景
  • 列出并分析场景内容
  • 创建 prim 并定义基本几何体
  • 添加对外部 USD 文件的引用
  • 妥善管理资源,并在场景清理时释放资源

安装

# 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

快速开始

# 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

使用服务

该服务可与任何 Model Context Protocol (MCP) 客户端配合使用。以下是使用内置 Python 客户端的示例:

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())

服务协议

该服务支持多种通信协议:

  • stdio:标准输入/输出(默认,用于嵌入应用程序)
  • http:供 Web 客户端使用的 HTTP 协议
  • websocket:供实时应用程序使用的 WebSocket 协议
  • sse:用于单向实时更新的服务器发送事件
  • tcp:原始 TCP 协议
  • zmq:供高性能应用程序使用的 ZeroMQ 协议

可用工具

该服务提供以下 USD 操作工具:

核心 USD 工具
  • create_new_stage:创建新的 USD 场景
  • open_usd_stage:打开现有 USD 场景
  • save_usd_stage:保存对场景所做的更改
  • close_stage:关闭并卸载场景,释放资源
  • list_stage_prims:列出场景中的所有 prim
  • analyze_usd_stage:分析场景内容
  • define_stage_prim:创建新的 prim
  • create_stage_reference:创建对其他 USD 文件的引用
  • create_stage_mesh:使用几何数据创建网格

示例脚本

在 examples/ 目录中,你可以找到演示如何使用该服务的示例脚本:

  • basic_example.py:演示基本的场景创建和操作

生产就绪性:

要达到企业级标准,还需要约 20 小时的完善工作(测试、CI、错误处理)。

此实现基础扎实,但仍需加固,才能用于关键任务工作流。如果你愿意贡献缺失的测试或维护工具,它将是 USD 自动化的可行起点。

未来路线图

未来版本将扩展功能,包括:

  • 物理模拟工具
  • 材质创建和管理
  • 动画关键帧
  • 场景图可视化
  • 高级几何操作

贡献

欢迎贡献!请随时提交 Pull Request。

许可证

本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

致谢


由 Jan Haluszka 维护

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。