如何创建和生成 MCP DLL 文件以供 CallFunc 调用

如何创建和生成 MCP DLL 文件以供 CallFunc 调用

site icon
2025.04.04 1
C#Revit 功能扩展自动化脚本开发效率
xml.Revit.MCPServer 是一个用于 Revit 的 MCP 服务,允许用户通过创建和生成 MCP DLL 文件来扩展 Revit 的功能。该服务通过实现特定的接口和遵循 JSON-RPC 2.0 规范,使得用户可以在 Revit 中动态调用自定义功能。
View on GitHub

Overview

基本能力

产品定位

xml.Revit.MCPServer 是一个用于 Revit 的 MCP 服务,旨在通过动态加载和调用自定义 DLL 文件来扩展 Revit 的功能。

核心功能

  1. 动态调用功能:通过实现 IMCPMethod 接口,用户可以创建自定义功能并在 Revit 中动态调用。
  2. JSON-RPC 2.0 规范:服务遵循 JSON-RPC 2.0 规范,确保与 Revit 的交互标准化。
  3. 事务支持:支持在 Revit 文档中开启事务,确保操作的原子性和一致性。

适用场景

  1. Revit 功能扩展:用户可以通过创建自定义 DLL 文件来扩展 Revit 的功能。
  2. 自动化脚本:结合 Python 脚本,可以实现自动化调用自定义功能。

工具列表

  1. call_func:一个 Python 工具,用于通过函数名称调用 MCP DLL 中的功能。

常见问题解答

  1. 如何创建 MCP DLL 文件?
  2. 实现 IMCPMethod 接口并编译生成 DLL 文件。
  3. 如何调用 MCP DLL 中的功能?
  4. 使用 call_func 工具通过函数名称调用。

使用教程

使用依赖

  1. Visual Studio:用于编译生成 DLL 文件。
  2. Revit:确保已安装 Revit 并配置好开发环境。

安装教程

  1. 创建实现类:实现 IMCPMethod 接口,如示例中的 TopLevelAdd 类。
  2. 编译项目:在 Visual Studio 中编译项目,生成 DLL 文件。
  3. 放置 DLL 文件:将生成的 DLL 文件放置在指定的 MCP 文件夹中。

调试方式

  1. 日志输出:在实现类中添加日志输出,便于调试。
  2. Revit 调试:在 Revit 中调用功能并检查返回结果。
response = call_func(ctx, params=[
    {"name": "新增标高", "params": {"offset": 3000}}
])

许可证

None