Enable AI-powered solution configuration through Model Context Protocol integration.
Preview Connector
Preview Version for tests and training, not released for production.
Enable AI-powered solution configuration through Model Context Protocol integration.
Version: 0.6
Last Updated: January 25, 2026
Connector Name: DesignerMCP
Interface: TCP/IP (stdio transport)
The AI MCP for Designer service enables AI models to interact with the FrameworX Designer application, providing intelligent assistance for solution configuration tasks. Instead of manually creating and configuring objects, you can describe what you need in natural language and let AI generate the configuration.
Note: This connector is for configuration-time operations (building solutions in Designer.exe). For querying live data from running solutions, see AI MCP for Runtime Connector.
| Use Case | Example |
|---|---|
| Bulk object creation | "Create 50 temperature tags following naming pattern Area{N}_Temp" |
| Display generation | "Create a dashboard showing all pump statuses in a 2×3 grid" |
| Display modification | "Add a TrendChart to the Temperature cell showing the last 24 hours" |
| Configuration validation | "Review my alarm configuration and suggest improvements" |
| Learning assistance | "Show me how to configure a historian for this tag" |
| Object discovery | "List all tags in the Boiler area that don't have alarms configured" |
Configure Claude Desktop to connect to the Designer MCP server:
{
"mcpServers": {
"FrameworX-Designer": {
"command": "<ProductPath>\\fx-10\\net8.0\\TMCPServerDesigner\\TMCPServerDesigner.exe",
"args": ["/port:3102"],
"transport": "stdio"
}
}
}
Tip: You can run both MCP for Designer and MCP for Runtime simultaneously by including both configurations in your claude_desktop_config.json file.
AI MCP for Designer provides these tools organized by category:
| Tool | Purpose |
|---|---|
| create_solution | Create a new FrameworX solution |
| open_solution | Open an existing solution to work with |
| get_solution_info | Get solution statistics and summary |
| Tool | Purpose |
|---|---|
| list_tables | List all available object types (Tags, Alarms, etc.) |
| get_table_schema | Get field definitions for any object type |
| Tool | Purpose |
|---|---|
| list_objects | Browse objects with summary information |
| get_objects | Retrieve full configuration details |
| create_objects | Create new objects from AI-generated configuration |
| update_objects | Modify existing objects |
| validate_json | Validate configuration before creating |
| Tool | Purpose |
|---|---|
| list_displays | List all displays in the solution |
| export_display | Export display to AI-friendly JSON format |
| import_display | Create/update display from JSON |
| get_symbol_info | Get symbol metadata and parameters |
| search_symbols | Search symbol library by name or category |
| Tool | Purpose |
|---|---|
| search_docs | Search FrameworX documentation |
| navigate_to | Navigate Designer UI to specific location |
| get_designer_state | Get current Designer view and selection |
| take_screenshot | Capture current Designer view |
AI MCP for Designer uses simplified JSON formats for creating and modifying displays.
Canvas displays use absolute pixel positioning:
{
"Type": "DisplaysList",
"Name": "TankOverview",
"Width": 1366,
"Height": 768,
"DisplayMode": "Page",
"Children": [
{
"Type": "Symbol",
"SymbolName": "HMI/Tanks/TankWithLevel",
"Left": 100,
"Top": 50,
"Width": 200,
"Height": 300,
"SymbolLabels": [
{ "Key": "Level", "Value": "@Tag.Tank1.Level" },
{ "Key": "Title", "Value": "Tank 1" }
]
},
{
"Type": "TrendChart",
"Left": 350,
"Top": 50,
"Width": 400,
"Height": 300,
"LinkedValue": "@Tag.Tank1.Level"
}
]
}
Dashboard displays use grid-based positioning with resizable cells:
{
"Type": "DisplaysList",
"Name": "MotorDashboard",
"Width": 1366,
"Height": 768,
"DisplayMode": "Page",
"DashboardDisplay": {
"Columns": ["*", "*", "*"],
"Rows": ["*", "*"]
},
"Cells": [
{
"Row": 0, "Col": 0,
"Cell": { "HeaderLink": "Motor 1" },
"Content": {
"Type": "Symbol",
"SymbolName": "HMI/Motors/MotorStatus",
"SymbolLabels": [
{ "Key": "Value", "Value": "@Tag.Motor1.Status" }
]
}
},
{
"Row": 1, "Col": 0, "ColSpan": 3,
"Cell": { "HeaderLink": "Trend" },
"Content": {
"Type": "TrendChart",
"LinkedValue": "@Tag.Motor1.Speed"
}
}
]
}
| Feature | Canvas | Dashboard |
|---|---|---|
| Positioning | Left, Top (pixels) | Row, Col (grid) |
| Sizing | Width, Height | Cell spans (ColSpan, RowSpan) |
| Shapes | ? Supported | ? Not supported |
| Cell headers | N/A | Cell.HeaderLink |
| Resizable | No | Yes (TGridSplitter) |
For complete format specifications, see:
When you open or create a solution, the AI automatically receives context about the FrameworX object model, including:
This context enables the AI to generate valid configuration without you needing to explain the FrameworX data model. For detailed information beyond what's in the context, the AI can use the search_docs tool to query the FrameworX documentation.
For display operations, the AI also receives:
AI-generated configuration should always be reviewed before saving:
For best results when working with AI MCP for Designer:
| Do | Don't |
|---|---|
| Be specific about object types and properties | Use vague descriptions |
| Reference existing solution patterns | Assume AI knows your conventions |
| Provide context about intended behavior | Skip important constraints |
| Ask AI to explain what it will do before executing | Approve bulk changes without review |
| Use validate_json before large create operations | Skip validation on bulk imports |
| Specify display type (Canvas vs Dashboard) | Assume AI will choose correctly |
| Tip | Reason |
|---|---|
| Start with Dashboard for operational screens | Responsive, resizable cells |
| Use Canvas for P&ID and custom graphics | Precise positioning, shapes supported |
| Specify grid dimensions explicitly | "2×3 grid" is clearer than "grid for 6 items" |
| Reference existing symbols by full path | "HMI/Motors/MotorStatus" not just "motor symbol" |
| Provide tag paths for bindings | "@Tag.Motor1.Speed" not "motor speed tag" |
For querying live data from running solutions:
| Version | Date | Changes |
|---|---|---|
| 0.6 | 2026-01-25 | Added Display Operations tools; Added JSON format examples; Added Dashboard creation guidance; Updated troubleshooting |
| 0.5 | 2026-01-15 | Initial release |