Tekla MCP服务器
该服务器便于与Tekla Structures交互,帮助用户加快建模过程。它充当用户和Tekla之间的桥梁,实现自动化工作流程并提高效率。
📌 什么是MCP?
MCP代表 模型上下文协议,Anthropic引入的一种通信协议,旨在实现大型语言模型和其他系统之间更高效、更安全的交互。
Tekla MCP Server使用人工智能驱动的自然语言处理使交互更具可读性,允许您使用纯文本命令使用Tekla Structures。
🚀 特性
可用工具
| 工具 | 说明 |
|---|---|
put_components | 将Tekla组件插入具有自定义特性的选定元素中 |
remove_components | 从选定元素中删除Tekla组件 |
select_elements_by_filter | 按类型、名称、轮廓、材料、表面处理、阶段选择元素 |
select_elements_by_filter_name | 使用预定义的筛选器名称选择元素 |
select_elements_by_guid | 按GUID选择元素 |
select_elements_assemblies_or_main_parts | 获取所选元素的组件或主要部件 |
draw_elements_labels | 绘制显示图元属性的临时标签 |
zoom_to_selection | 缩放视图以适应选定元素 |
show_only_selected | 仅在活动视图中显示选定元素 |
cut_elements_with_zero_class_parts | 使用类0元素执行布尔切割 |
convert_cut_parts_to_real_parts | 将切割几何图形转换为真实模型零件 |
set_elements_udas | 在选定元素上设置自定义属性 |
get_all_elements_udas | 从元素中检索所有自定义属性 |
get_elements_properties | 获取详细的元素属性,包括权重和自定义字段 |
📋 需求
- 泰克拉结构2023 (或兼容版本)
- Python 3.11或更新版本
- 所需的Python包(请参阅
requirements.txt)
🔧 安装
1.安装依赖项
# Using uv (recommended)
uv pip install -r requirements.txt
# Using pip
pip install -r requirements.txt⚠️ 备注:您可能会遇到与的命名冲突 clr 字符串样式包。如果发生这种情况,请重命名或删除文件夹:
C:\Users\\AppData\Local\Programs\Python\Python311\Lib\site-packages\clr2.配置设置
已为设置配置文件 泰克拉2023。如果需要调整路径:
- 编辑
config/settings.json:
{
"tekla_path": "C:\\Program Files\\Tekla Structures\\2023.0\\bin",
"content_attributes_file_path": "C:\\Program Files\\Tekla Structures\\2023.0\\bin\\applications\\Tekla\\Tools\\TplEd\\settings\\contentattributes_global.lst"
}- 定制
config/element_types.json为您的Tekla课程 - 定制
config/base_components.json包含您的组件目录号 - 定制
config/lifting_anchor_types.json用于起吊锚组件
3.设置MCP客户端
配置 mcp_server.py 作为MCP客户端中的自定义MCP服务器:
适用于克劳德桌面 (claude_desktop_config.json):
{
"mcpServers": {
"tekla": {
"command": "python",
"args": ["d:\\VS\\TeklaMCPServer\\mcp_server.py"]
}
}
}对于其他MCP客户端:有关自定义服务器配置,请参阅客户的文档。
🧪 测试
该项目包括综合单元和功能测试:
# Run all unit tests
uv run pytest tests/unit/
# Run all tests (functional tests skip if Tekla not running)
uv run pytest tests/
# Run specific test file
uv run pytest tests/unit/test_models.py
# Run functional tests (requires Tekla running)
uv run pytest tests/functional/ --run-functional⚠️ 警告:功能测试修改了实际的Tekla模型。仅在测试/开发环境中运行它们。
📦 分布
使用PyInstaller创建独立的可执行文件:
# Install PyInstaller
uv pip install pyinstaller
# Build executable
uv run pyinstaller mcp_server.py可执行文件将位于 dist/mcp_server/.包括 _internals 分发时的目录。
备注:使用可执行文件时,将配置文件复制到 _internals/config/.
💡 用法示例
使用自然语言(通过MCP客户端)
"Select all beams with IPE300 profile and add lifting anchors"
"Get properties of selected columns"
"Show only elements in phase 1"
"Zoom to selected elements"直接工具使用
服务器公开了可以以编程方式调用的MCP工具:
# Example: Select elements by filter
{
"tool": "select_elements_by_filter",
"arguments": {
"element_type": "beam",
"profile": "IPE300",
"material": "S355"
}
}🔍 运作原理
建筑
┌─────────────────┐
│ MCP Client │ (Claude Desktop, DeepChat, etc.)
│ (AI Model) │
└────────┬────────┘
│ MCP Protocol
│
┌────────▼────────┐
│ mcp_server.py │ ← Main server implementation
└────────┬────────┘
│
├─→ models.py (Data structures)
├─→ tekla_utils.py (Tekla API wrapper)
└─→ config/*.json (Configuration)
│
▼
┌──────────────┐
│ Tekla │ (via .NET API)
│ Structures │
└──────────────┘关键组件
- MCP服务器 (mcp_server.py):处理MCP协议通信和路由工具调用
- Tekla公用事业 (tekla_utils.py):包裹Tekla。NET API,用于通过pythonnet访问Python
- 数据模型 (models.py):用于类型安全数据处理的Pydantic模型
- 配置:用于自定义每个项目行为的JSON文件
MCP协议集成
服务器使用 mcp Python包:
- 通过以下方式注册可用工具
@app.list_tools() - 通过以下方式处理工具执行请求
@app.call_tool() - 通过stdio与MCP客户端通信
- 使用Pydantic模型提供结构化响应
Tekla API使用
Tekla集成使用 pythonnet (CLR):
- 加载Tekla。NET程序集动态
- 进入Tekla。结构。模型命名空间
- 执行建模操作(选择、修改、插入组件)
- 查询元素属性和用户定义的属性
✅ 已验证兼容性
Tekla版本: 2023
MCP客户端:
- 深度聊天
- chatmcp
AI模型:
- GPT-4o
- 深度求索
- 双子座2.0闪光灯
- Qwen3
📝 许可证
该软件是开源的,并在 GPLv3许可证。您可以自由使用、修改和分发它,只要所有修改在相同的许可证下保持开源。
看 许可证 了解全部细节。
⚠️ 免责声明
该软件已提供 照原样,对功能、可靠性或安全性不作任何保证或担保。开发商对因使用而产生的任何损坏、数据丢失或其他问题不承担任何责任。
使用风险自负。
🤝 贡献
欢迎投稿!请确保:
- 在提交PR之前,所有测试均已通过
- 新功能包括适当的测试
- 代码遵循现有的样式约定
- 配置保持向后兼容
📞 支持
对于问题和疑问:
- 检查现有的GitHub问题
- 查看测试文件以获取使用示例
- 有关高级用法,请参阅Tekla API文档
🗺️ 路线图
未来的增强功能(欢迎投稿):
- 支持Tekla 2024+
- 附加智能组件
- 增强的过滤功能
- 绘图自动化工具
- 报告生成功能
