项目简介
dcc-mcp-core 是为 DCC (数字内容创作) 应用设计的 MCP (模型上下文协议) 生态系统的基础库。它提供了一套插件管理系统,旨在统一 AI 与各种 DCC 软件(如 Maya、Blender、Houdini 等)的交互方式。该库本身不是一个可以直接运行的 MCP 服务器,而是构建 MCP 服务器的核心组件,提供了插件发现、加载、管理以及远程调用等关键功能。开发者可以基于此库构建特定于 DCC 软件的 MCP 服务器,从而使 AI 能够通过标准化的 MCP 协议与 DCC 软件进行交互。
主要功能点
- 插件化架构: 核心库采用插件管理系统,方便扩展和定制 DCC 软件的功能。
- 远程调用: 利用 RPyC 实现远程过程调用,允许 AI 客户端跨进程甚至跨机器调用 DCC 软件的功能。
- 结构化数据: 插件信息和函数调用结果以 AI 友好的结构化数据格式返回,方便 AI 理解和处理。
- 参数处理与验证: 提供参数处理和验证机制,确保数据传递的准确性和安全性。
- 标准化日志: 集成标准化的日志系统,方便问题追踪和系统监控。
- 异常处理: 定义了一套通用的异常层次结构,统一错误处理方式。
- 版本兼容性: 支持版本兼容性检查,确保不同组件之间的协同工作。
核心流程概览:
- AI 客户端 发送请求到 MCP 服务器。
- MCP 服务器 将请求转发给 DCC-MCP(基于 dcc-mcp-core 构建的 DCC 桥接组件)。
- DCC-MCP 利用 dcc-mcp-core 发现并加载 DCC 插件。
- DCC 插件 向 DCC-MCP 返回插件信息。
- DCC-MCP 将结构化的插件数据传递给 MCP 服务器。
- MCP 服务器 调用相应的插件功能。
- DCC-MCP 在 DCC 软件 中执行插件功能。
- DCC 软件 返回操作结果给 DCC-MCP。
- DCC-MCP 将结构化的结果数据传递给 MCP 服务器。
- 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 服务器的开发者。以下是一些基本的使用场景示例:
-
创建插件管理器:
from dcc_mcp_core.plugin_manager import create_plugin_manager plugin_manager = create_plugin_manager("maya") # 为 Maya 创建插件管理器 -
发现和加载插件:
plugin_paths = plugin_manager.discover_plugins() # 自动发现 Maya 插件路径 plugins_info = plugin_manager.load_plugins(plugin_paths) # 加载指定路径下的插件 -
获取插件信息:
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']}") # ... 打印其他插件信息 ... -
调用插件功能:
result = plugin_manager.call_plugin_function( "maya_plugin", # 插件名称 "create_cube", # 功能名称 size=2.0, # 功能参数 context={"maya": True} # 上下文信息 ) print(result) -
创建自定义插件:
参考 'examples/maya/plugins' 和 'tests/data' 目录下的插件示例,创建符合 dcc-mcp-core 插件规范的 Python 文件。
更详细的使用方法: 请参考 dcc-mcp-core 库的文档和示例代码,以及基于此库构建的 MCP 服务器应用的具体文档。
信息
分类
开发者工具