使用说明

项目简介

Revit MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在连接 Claude AI 等大型语言模型 (LLM) 与 Autodesk Revit 软件。它允许 LLM 通过标准化的 MCP 协议,访问 Revit 模型的信息并调用 Revit 的功能,从而实现更智能的建筑设计工作流程。

主要功能点

  • Revit 模型数据访问: 提供对 Revit 模型基本信息的访问,例如模型名称、路径、版本、元素数量等。
  • Revit 元素查询: 支持根据类别、族、类型等条件查询 Revit 模型中的元素,并获取元素的属性信息。
  • Revit 视图和楼层管理: 可以列出 Revit 模型中的所有视图和楼层信息。
  • 工具调用: 提供工具接口,允许 LLM 调用预定义好的 Revit 功能,例如获取元素、楼层、视图等。
  • 模拟数据支持: 在无法连接到 Revit 插件时,可以优雅地回退到模拟数据,保证服务器的基本可用性。

安装步骤

  1. 安装 Node.js 和 npm: 确保你的电脑上安装了 Node.js (v14 或更高版本) 和 npm。
  2. 安装 Revit 和 Revit WebSocket Plugin: 确保安装了 Autodesk Revit (2023 或更高版本) 以及配套的 Revit WebSocket Plugin。
  3. 克隆仓库: 将仓库代码克隆到本地。
    git clone https://github.com/SamllPigYanDong/revit_mcp.git
    cd revit_mcp
  4. 安装依赖: 在项目根目录下运行以下命令安装项目依赖。
    npm install
  5. 构建服务器: 运行以下命令构建服务器代码。
    npm run build

服务器配置

要将 Revit MCP Server 集成到 MCP 客户端 (例如 Claude Desktop),你需要配置客户端的 MCP 服务器列表。配置信息通常是一个 JSON 文件,例如 Claude Desktop 的 'claude_desktop_config.json' 文件。

以下是一个配置示例,你需要根据你的实际路径进行修改:

{
  "mcpServers": {
    "revit-mcp-server": {
      "command": "D:/path/to/revit-mcp-server/build/index.js"
    }
  }
}

配置参数说明:

  • 'server name': 服务器名称,例如 '"revit-mcp-server"',用于在客户端中标识该服务器。
  • 'command': 必需。服务器启动命令,指向构建后的 'index.js' 文件路径。请将 '"D:/path/to/revit-mcp-server/build/index.js"' 替换为你实际的服务器文件路径。

可选环境变量配置 (服务器端):

服务器端可以通过环境变量进行配置,例如 Revit WebSocket 插件的连接地址和端口。你可以在运行服务器的环境中设置以下环境变量:

  • 'REVIT_HOST': Revit 插件 WebSocket 主机地址,默认为 '127.0.0.1'。
  • 'REVIT_PORT': Revit 插件 WebSocket 端口号,默认为 '8080'。

这些环境变量通常在服务器的运行环境中配置,例如在启动服务器的脚本中设置,或者直接设置操作系统的环境变量。对于 MCP 客户端用户来说,通常无需关注这些配置,除非需要修改默认的 Revit 连接设置。

基本使用方法

  1. 启动 Revit 和 Revit WebSocket Plugin: 首先确保 Revit 软件已打开,并且 Revit WebSocket Plugin 已经正确加载并运行。
  2. 启动 Revit MCP Server: 在命令行中,导航到服务器项目根目录,并运行以下命令启动服务器。
    npm run start
    或者直接运行构建后的 'index.js' 文件:
    node build/index.js
    服务器启动后,会通过 stdio 等待 MCP 客户端的连接和请求。
  3. 配置 MCP 客户端: 按照 MCP 客户端 (例如 Claude Desktop) 的文档,配置 MCP 服务器连接。将上面提供的服务器配置信息添加到客户端的配置文件中。
  4. 使用 LLM 与 Revit 交互: 在 MCP 客户端中,你可以通过自然语言与 LLM 交互,指示 LLM 访问 Revit 模型信息或调用 Revit 功能。服务器会将 LLM 的请求转换为对 Revit 的操作,并将结果返回给 LLM。

例如,你可以指示 Claude AI 执行以下操作:

  • "获取当前 Revit 模型的名称和版本信息" (对应 'revit://current/model-info' 资源)
  • "查找所有类别为墙的元素" (对应 'get_elements' 工具)
  • "列出模型中所有楼层" (对应 'get_levels' 工具)
  • "获取所有视图的名称" (对应 'get_views' 工具)

LLM 将根据你的指令,调用 Revit MCP Server 提供的资源和工具,从而实现与 Revit 模型的交互。

信息

分类

桌面与硬件