项目简介

dcc-mcp-core 是为 DCC (数字内容创作) 应用设计的 MCP (模型上下文协议) 生态系统的基础库。它提供了一套插件管理系统,旨在统一 AI 与各种 DCC 软件(如 Maya、Blender、Houdini 等)的交互方式。该库本身不是一个可以直接运行的 MCP 服务器,而是构建 MCP 服务器的核心组件,提供了插件发现、加载、管理以及远程调用等关键功能。开发者可以基于此库构建特定于 DCC 软件的 MCP 服务器,从而使 AI 能够通过标准化的 MCP 协议与 DCC 软件进行交互。

主要功能点

  • 插件化架构: 核心库采用插件管理系统,方便扩展和定制 DCC 软件的功能。
  • 远程调用: 利用 RPyC 实现远程过程调用,允许 AI 客户端跨进程甚至跨机器调用 DCC 软件的功能。
  • 结构化数据: 插件信息和函数调用结果以 AI 友好的结构化数据格式返回,方便 AI 理解和处理。
  • 参数处理与验证: 提供参数处理和验证机制,确保数据传递的准确性和安全性。
  • 标准化日志: 集成标准化的日志系统,方便问题追踪和系统监控。
  • 异常处理: 定义了一套通用的异常层次结构,统一错误处理方式。
  • 版本兼容性: 支持版本兼容性检查,确保不同组件之间的协同工作。

核心流程概览:

  1. AI 客户端 发送请求到 MCP 服务器
  2. MCP 服务器 将请求转发给 DCC-MCP(基于 dcc-mcp-core 构建的 DCC 桥接组件)。
  3. DCC-MCP 利用 dcc-mcp-core 发现并加载 DCC 插件
  4. DCC 插件 向 DCC-MCP 返回插件信息。
  5. DCC-MCP 将结构化的插件数据传递给 MCP 服务器
  6. MCP 服务器 调用相应的插件功能。
  7. DCC-MCPDCC 软件 中执行插件功能。
  8. DCC 软件 返回操作结果给 DCC-MCP。
  9. DCC-MCP 将结构化的结果数据传递给 MCP 服务器
  10. MCP 服务器 将最终结果返回给 AI 客户端

安装步骤

pip install dcc-mcp-core

服务器配置

由于 dcc-mcp-core 是一个库,本身不包含可直接运行的 MCP 服务器。你需要基于此库构建一个 MCP 服务器应用。通常,服务器配置会涉及到如何启动这个基于 dcc-mcp-core 构建的应用,以及如何配置它连接到特定的 DCC 软件。

以下是一个假设的基于 dcc-mcp-core 构建的 MCP 服务器的客户端配置示例,你需要根据你实际构建的服务器应用来确定 'command' 和 'args'。

{
  "serverName": "DCC-MCP Server",
  "command": "python",
  "args": [
    "/path/to/your/mcp_server_app.py",  //  指向你基于 dcc-mcp-core 构建的 MCP 服务器应用的启动脚本路径
    "--dcc-type", "maya",                //  (可选) 指定要连接的 DCC 软件类型,例如 "maya", "houdini", "blender"
    "--plugin-paths", "/path/to/maya/plugins:/another/plugin/path" // (可选) 指定额外的插件路径,多个路径用冒号分隔
    //  ... 其他你自定义的服务器启动参数 ...
  ],
  "protocol": "json-rpc",               //  通常 MCP 服务器使用 JSON-RPC 协议
  "transport": "stdio"                  //  (可选)  传输协议,例如 "stdio", "sse", "websocket"
}

参数注释:

  • 'serverName': MCP 服务器的名称,客户端用于标识连接。
  • 'command': 启动 MCP 服务器应用的命令,例如 'python' 或 你编译的可执行文件路径。
  • 'args': 启动命令的参数列表。
    • '/path/to/your/mcp_server_app.py': 请替换为你实际的 MCP 服务器应用启动脚本路径。这个脚本需要导入并使用 'dcc-mcp-core' 库来实现 MCP 服务器的功能。
    • '--dcc-type': (可选) 指定服务器要连接的 DCC 软件类型。这取决于你的服务器应用如何设计。
    • '--plugin-paths': (可选) 指定额外的插件搜索路径。服务器应用可以根据这些路径发现和加载 DCC 插件。
    • '... 其他你自定义的服务器启动参数 ...': 根据你构建的 MCP 服务器应用的具体需求,可能需要添加其他参数,例如端口号、配置文件路径等。
  • 'protocol': 指定通信协议,MCP 通常使用 'json-rpc'。
  • 'transport': (可选) 指定传输协议,'stdio' 表示标准输入输出,也可能使用 'sse' (服务器发送事件) 或 'websocket' 等。

请注意: 你需要根据你实际构建的 MCP 服务器应用来填写上述配置信息。 'dcc-mcp-core' 库本身不提供可以直接运行的服务器,你需要基于它进行二次开发。

基本使用方法

dcc-mcp-core 主要用于构建 MCP 服务器的开发者。以下是一些基本的使用场景示例:

  1. 创建插件管理器:

    from dcc_mcp_core.plugin_manager import create_plugin_manager
    
    plugin_manager = create_plugin_manager("maya") # 为 Maya 创建插件管理器
  2. 发现和加载插件:

    plugin_paths = plugin_manager.discover_plugins() # 自动发现 Maya 插件路径
    plugins_info = plugin_manager.load_plugins(plugin_paths) # 加载指定路径下的插件
  3. 获取插件信息:

    all_plugins_info = plugin_manager.get_all_plugins_info() # 获取所有已加载插件的详细信息 (AI 友好的结构化数据)
    for name, info in all_plugins_info.items():
        print(f"Plugin: {name}")
        print(f"  Version: {info['version']}")
        # ... 打印其他插件信息 ...
  4. 调用插件功能:

    result = plugin_manager.call_plugin_function(
        "maya_plugin",           # 插件名称
        "create_cube",           # 功能名称
        size=2.0,                # 功能参数
        context={"maya": True}   # 上下文信息
    )
    print(result)
  5. 创建自定义插件:
    参考 'examples/maya/plugins' 和 'tests/data' 目录下的插件示例,创建符合 dcc-mcp-core 插件规范的 Python 文件。

更详细的使用方法: 请参考 dcc-mcp-core 库的文档和示例代码,以及基于此库构建的 MCP 服务器应用的具体文档。

信息

分类

开发者工具