Tekla MCP Server
使用说明
项目简介
该仓库实现了一个基于 MCP 的服务端,用于 Tekla Structures 的自动化工作流。它将 Tekla 的模型对象、元数据、以及可执行工具以统一的 JSON-RPC 形式暴露给 MCP 客户端(如对话式 AI 或大语言模型代理),以便在对话式工作流中读取资源、调用工具、并获取/渲染 Prompts。
主要功能点
- 资源与数据访问:通过 TeklaModel 与模型对象包装类,提供对元素属性、UDAs、切割信息、重量等的读取与序列化输出。
- 注册与执行 Tools:使用 FastMCP 框架将一系列工具暴露为 MCP Tool,包括对象筛选、元素选择、标签绘制、缩放、组件放置/移除、UDA 操作、属性获取等。
- Prompts/模板支持:结合 TemplateAttributeParser 提供对 Tekla 模板属性的匹配与描述,以及对属性映射的嵌入式语义匹配(可选)。
- Embeddings 支持(可选):基于 sentence-transformers 的嵌入模型进行属性描述与名称的语义匹配,提升自定义属性映射的鲁棒性。
- 配置与运行时管理:使用 Config 单例加载 settings.json 与其他配置,支持通过环境变量覆盖与延迟加载。
安装步骤
- 运行环境要求:Python 3.11 及以上, Tekla Structures 2022(或与项目兼容版本)。
- 安装依赖:按 README 中的要求安装 Python 依赖(例如 pip install -r requirements.txt),以及开发依赖(如果需要本地开发/测试)。
- Tekla DLL 加载前提:需要 Tekla Structures 已在系统中安装,且 TEKLA_PATH 配置正确。
- 启动服务:在合适的环境中以 Python 运行 mcp_server.py(仓库中实现的入口点),确保 Tekla 环境就绪后即可对外提供 MCP 服务。
服务器配置(供 MCP 客户端使用的配置信息)
以下为 MCP 客户端用于连接该服务器所需的配置示例(仅为描述性文本,不包含代码块):
- server name: Tekla MCP Server
- command: python
- args: ["src/tekla_mcp_server/mcp_server.py"]
- 环境变量示例:
- TEKLA_MCP_LOG_LEVEL: INFO
- TEKLA_MCP_LOG_FILE_PATH: "mcp_server.log"
- TEKLA_MCP_CONFIG_DIR: "config"
在 JSON 配置中可表达为: { "mcpServers": { "tekla": { "name": "Tekla MCP Server", "command": "python", "args": ["src/tekla_mcp_server/mcp_server.py"], "env": { "TEKLA_MCP_LOG_LEVEL": "INFO", "TEKLA_MCP_LOG_FILE_PATH": "mcp_server.log", "TEKLA_MCP_CONFIG_DIR": "config" } } } } 说明:
- 该配置用于 MCP 客户端在启动服务器时传递必要的信息,客户端本身并不需要理解 Tekla 具体实现细节,只需要启动服务器的命令和必要的环境变量即可。
- 服务器会从 config 目录及 settings.json 加载运行时参数,如 Tekla 路径、模板属性、嵌入模型等。
基本使用方法
- 启动后,客户端可以通过 MCP 协议向 Tekla MCP Server 发送请求,调用 check_tekla_connection、put_components、select_elements_by_filter、get_elements_properties、compare_elements 等工具,获取结构化的 JSON 响应。
- 通过 Embeddings/模板属性相关功能,可以在自然语言层面进行映射与检索,提升对自定义属性的理解与匹配能力。
- 如需进行大模型对话集成,请将 MCP 客户端与服务端通过 JSON-RPC 通信,按工具名与参数格式进行请求与处理。