Tekla MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Tekla MCP ServerSelect all IPE300 beams and add lifting anchors"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Tekla MCP Server
This server facilitates interaction with Tekla Structures, helping users speed up modeling processes. It acts as a bridge between users and Tekla, enabling automated workflows and improving efficiency.
π What is MCP?
MCP stands for Model Context Protocol, a communication protocol introduced by Anthropic to enable more efficient and secure interactions between large language models and other systems.
Tekla MCP Server uses AI-powered natural language processing to make interactions more human-readable, allowing you to work with Tekla Structures using plain text commands.
Related MCP server: Civil3D MCP Server
π Features
Tools Available
Tool | Description |
| Insert Tekla components into selected elements with custom properties |
| Remove Tekla components from selected elements |
| Select elements by type, name, profile, material, finish, phase |
| Select elements using predefined filter names |
| Select elements by their GUID |
| Get assemblies or main parts of selected elements |
| Draw temporary labels showing element properties |
| Zoom view to fit selected elements |
| Show only selected elements in active view |
| Perform boolean cuts using class 0 elements |
| Convert cut geometry to real model parts |
| Set custom attributes on selected elements |
| Retrieve all custom attributes from elements |
| Get detailed element properties including weight and custom fields |
π Requirements
Tekla Structures 2023 (or compatible version)
Python 3.11 or newer
Required Python packages (see
requirements.txt)
π§ Installation
1. Install Dependencies
# Using uv (recommended)
uv pip install -r requirements.txt
# Using pip
pip install -r requirements.txtβ οΈ Note: You may experience a naming conflict with the clr string styling package. If this happens, rename or delete the folder:
C:\Users\<User>\AppData\Local\Programs\Python\Python311\Lib\site-packages\clr2. Configure Settings
The configuration files are already set up for Tekla 2023. If you need to adjust paths:
Edit
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"
}Customize
config/element_types.jsonfor your Tekla classesCustomize
config/base_components.jsonwith your component catalog numbersCustomize
config/lifting_anchor_types.jsonfor lifting anchor components
3. Set Up MCP Client
Configure mcp_server.py as a custom MCP server in your MCP client:
For Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"tekla": {
"command": "python",
"args": ["d:\\VS\\TeklaMCPServer\\mcp_server.py"]
}
}
}For other MCP clients: Consult your client's documentation for custom server configuration.
π§ͺ Testing
The project includes comprehensive unit and functional tests:
# 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β οΈ Warning: Functional tests modify the actual Tekla model. Run them only in test/development environment.
π¦ Distribution
Create a standalone executable using PyInstaller:
# Install PyInstaller
uv pip install pyinstaller
# Build executable
uv run pyinstaller mcp_server.pyThe executable will be in dist/mcp_server/. Include the _internals directory when distributing.
Note: When using the executable, copy configuration files to _internals/config/.
π‘ Usage Examples
With Natural Language (via MCP Client)
"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"Direct Tool Usage
The server exposes MCP tools that can be called programmatically:
# Example: Select elements by filter
{
"tool": "select_elements_by_filter",
"arguments": {
"element_type": "beam",
"profile": "IPE300",
"material": "S355"
}
}π How It Works
Architecture
βββββββββββββββββββ
β 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 β
ββββββββββββββββKey Components
MCP Server (mcp_server.py): Handles MCP protocol communication and routes tool calls
Tekla Utilities (tekla_utils.py): Wraps Tekla .NET API for Python access via pythonnet
Data Models (models.py): Pydantic models for type-safe data handling
Configuration: JSON files for customizing behavior per project
MCP Protocol Integration
The server uses the mcp Python package to:
Register available tools via
@app.list_tools()Handle tool execution requests via
@app.call_tool()Communicate over stdio with MCP clients
Provide structured responses using Pydantic models
Tekla API Usage
Tekla integration uses pythonnet (CLR) to:
Load Tekla .NET assemblies dynamically
Access Tekla.Structures.Model namespace
Perform modeling operations (select, modify, insert components)
Query element properties and user-defined attributes
β Verified Compatibility
Tekla Version: 2023
MCP Clients:
DeepChat
chatmcp
AI Models:
GPT-4o
DeepSeek
Gemini 2.0 Flash
Qwen3
π License
This software is open-source and released under the GPLv3 license. You are free to use, modify, and distribute it, as long as all modifications remain open-source under the same license.
See LICENSE for full details.
β οΈ Disclaimer
This software is provided as is, without any warranties or guarantees of functionality, reliability, or security. The developer assumes no responsibility for any damages, data loss, or other issues arising from its use.
Use at your own risk.
π€ Contributing
Contributions are welcome! Please ensure:
All tests pass before submitting PR
New features include appropriate tests
Code follows existing style conventions
Configuration remains backward compatible
π Support
For issues and questions:
Check existing GitHub issues
Review test files for usage examples
Consult Tekla API documentation for advanced usage
πΊοΈ Roadmap
Future enhancements (contributions welcome):
Support for Tekla 2024+
Additional intelligent components
Enhanced filtering capabilities
Drawing automation tools
Report generation features
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/YuriyKirillov/TeklaMCPServer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server