本项目是一个基于 .NET 的 Model Context Protocol (MCP) 服务器实现,旨在作为大型语言模型(如 Claude Desktop)与 Autodesk Platform Services (APS)的 AEC Data Model 和 Viewer 之间的桥梁。通过定义一系列工具,服务器使得 LLM 客户端能够通过自然语言与用户的 BIM 数据进行交互。
主要功能点:
- 身份验证: 获取 APS 访问令牌,用于调用 APS API。
- 数据查询:
- 获取用户所属的 ACC/BIM360 Hub 列表。
- 获取指定 Hub 下的项目列表。
- 获取指定项目下的 Element Group(通常代表模型或模型版本)列表及其对应的 Viewer URN。
- 根据指定的 Element Group ID 和分类(如 Walls, Floors 等)过滤并获取元素列表,包含元素的名称、ID 及部分属性。
- 模型可视化:
- 根据提供的 Element Group 的 URN,在浏览器中启动并加载 Autodesk Viewer 显示模型。
- 在 Viewer 中根据元素的外部 ID 高亮显示指定元素。
安装步骤:
- 安装 Claude Desktop: 从官方网站下载并安装 Claude Desktop 应用程序。
- 克隆仓库: 将本项目代码从 GitHub 克隆到本地计算机。
- 构建项目: 使用 .NET 8 SDK 或兼容的 Visual Studio 版本构建项目。
服务器配置:
MCP 客户端(如 Claude Desktop)需要知道如何启动这个 MCP 服务器。这通常通过编辑客户端的配置文件(例如 'claude_desktop_config.json')来完成。您需要在配置文件中添加一个 MCP 服务器条目,指定一个名称(例如 'aecdm'),以及启动服务器所需的命令和参数。
配置示例(概念说明,请根据您的客户端实际配置方式调整):
"mcpServers": { "aecdm": { // 服务器的唯一标识名称 "command": "dotnet", // 启动服务器的命令,这里是使用 dotnet cli 运行项目 "args": [ "run", // dotnet run 命令 "--project", // 指定要运行的项目文件 "C:\\您的本地路径\\aps-aecdm-mcp-dotnet\\mcp-server-aecdm.csproj", // ***请将此路径替换为您本地实际的 mcp-server-aecdm.csproj 文件路径*** "--no-build" // 运行前不再构建项目 ] } }
此外,您需要为项目配置您的 APS 客户端 ID。这通常作为环境变量 'CLIENT_ID' 进行设置。
基本使用方法:
- 确保您已完成项目的构建和客户端的配置。
- 启动 Claude Desktop 或其他支持 MCP 的 LLM 客户端。
- 在客户端界面中,使用自然语言向 LLM 发起请求,LLM 将会通过 MCP 调用本服务器提供的工具来执行操作。例如:
- 询问 "List my APS hubs" 来获取您的 Hub 列表。
- 询问 "Get projects for hub [hub ID]" 来获取指定 Hub 下的项目列表。
- 询问 "Find wall elements in element group [element group ID]" 来查询指定 Element Group 中的墙元素。
- 询问 "Show model for element group [element group URN]" 来在浏览器中加载模型。
- 询问 "Highlight elements with external ids [id1, id2, ...]" 来高亮 Viewer 中的元素。
服务器将在后台处理这些请求,并通过 MCP 将结果或操作反馈给客户端。对于 Viewer 相关的操作,服务器会在本地启动一个简易的 HTTP/WebSocket 服务,并在浏览器中打开页面。
信息
分类
商业系统