README
🚀 自动化 Shotgun REST API 的 MCP 服务器
本项目借助 FastMCP 实现了一个 MCP(模型上下文协议)服务器,旨在让大型语言模型 (LLM) 代理能够通过 Autodesk Shotgun 的 REST API 进行程序化交互。服务器提供了一系列工具,可用于查询和管理 Shotgun 中的项目、资产和任务等实体。同时,该服务器支持 HTTP 和 transport="stdio" 模式,方便与基于 LLM 的工作流集成。
🚀 快速开始
本项目提供了一个使用 FastMCP 实现的 MCP 服务器,可让大型语言模型 (LLM) 代理通过 Autodesk Shotgun 的 REST API 进行程序化交互。以下是快速开始的步骤:
✨ 主要特性
- 运用 OAuth2 认证连接至 Autodesk Shotgun。
- 通过 FastMCP 将 Shotgun REST API 操作作为 MCP 工具公开。
- 可查询项目、资产和任务。
- 能获取实体的详细信息。
- 专为与基于 LLM 的工作流集成而设计。
- 代码库模块化:
main.py负责 MCP 服务器和工具定义,shotgrid_rest.py实现 Shotgun REST API 包装器。 - 包含
test_main.py用于自动化测试。
📦 安装指南
需求
- Python 3.11
- httpx
- httpx-auth
- mcp.server.fastmcp
💻 使用示例
基础用法
1. 设置 Shotgun 凭据
获取您的 Shotgun 主机 URL、客户端 ID 和客户端秘密。
2. 运行服务器
用实际值替换占位符后运行以下命令:
uv run --directory {REPO_DIR} main.py -host https://your-shotgrid-url -ci your_client_id -cs your_client_secret
所有三个参数都是必需的。支持短格式 (-host, -ci, -cs) 和长格式 (--host, --client-id, --client-secret)。服务器使用 FastMCP 并仅通过 transport="stdio" 模式通信。
3. 与您的 LLM 代理集成
服务器通过 MCP 为 LLM 提供可调用的工具。
高级用法
以下是服务器提供的可用工具,所有工具都是异步的,并通过 FastMCP 公开。括号中的参数是必需的。
get_all_projects()get_all_users()get_all_projects_name_contains(name: str)get_all_projects_code_contains(code: str)get_all_sequences_in_project(project_name: str)get_all_shots_in_project(project_name: str)get_all_shots_code_contains(shot_code: str)get_all_assets_in_project(project_name: str)get_all_assets_code_contains(code: str)get_all_tasks_in_project(project_id: int)get_all_tasks_assigned_to_user(user_id: int)get_all_tasks_assigned_to_user_in_project_name(user_id: int, project_name: str)get_all_tasks_with_shot(shot_id: int)get_all_tasks_with_asset(asset_id: int)get_project_by_name(name: str)get_project_by_code(code: str)(新增)get_all_projects()get_project_details(project_id: int)get_project_assets(project_id: int, asset_type: str)(例如:Characters,Props,Sets)get_asset_versions(asset_id: int)get_version_thumbnail(version_id: int)(返回缩略图的 URL)
📚 详细文档
注意事项
⚠️ 重要提示
- 确保安装了所有依赖项。
- 在运行服务器之前,设置正确的 Shotgun 凭据。
- 测试工具时,请使用示例项目和资产以避免影响实际数据。
📄 许可证
本项目采用 MIT 许可证。
微信扫一扫