AI MCP for Designer Connector
Enable AI-powered solution configuration through Model Context Protocol integration.
Version: 0.7
Last Updated: January 25, 2026
Connector Name: DesignerMCP
Interface: TCP/IP (stdio transport)
Overview
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.
Key Capabilities
- Navigate Designer UI — AI can observe and interact with the Designer interface
- Create Objects — Generate Tags, Displays, Alarms, and other solution objects
- Query Objects — Search and inspect existing solution configuration
- Validate Configuration — Pre-check configurations before creating objects
- Generate Displays — Create Canvas and Dashboard displays with proper FrameworX patterns
- Export/Import Displays — Work with displays in AI-friendly JSON format
- Take Screenshots — Capture Designer state for context
- Discover Protocols — List available communication protocols and their configuration schemas
- Explore Data Sources — Browse MQTT, OPC UA, PLC, and SQL data sources interactively
When to Use MCP for Designer
| 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" |
| Protocol discovery | "What protocols are available for connecting to PLCs?" |
| Device configuration | "Show me the schema for configuring a Modbus TCP device" |
| Data source exploration | "Connect to the MQTT broker at tcp://192.168.1.100:1883 and browse topics" |
| TagProvider creation | "Create a TagProvider from the selected MQTT topic" |
Prerequisites
- FrameworX 10.1 Designer
- .NET 8.0 runtime
- Claude Desktop or compatible MCP client
- Network connectivity (if Designer runs on remote machine)
Configuration
Enabling MCP for Designer
- Open FrameworX Designer
- Navigate to Edit → Settings → MCP
- Enable MCP Server
- Note the Port number (default: 3102)
- Click Apply
Connecting Claude Desktop
Configure Claude Desktop to connect to the Designer MCP server:
- Open Claude Desktop
- Go to Settings → Developer → Edit Config
- Open the "claude_desktop_config.json" file
- Add the MCP for Designer configuration:
{
"mcpServers": {
"FrameworX-Designer": {
"command": "<ProductPath>c:\\Dev\\Tatsoft2020_1\\fx-10FactoryStudio\\net8.0bin\\TMCPServerDesignerMCP\\TMCPServerDesignerDesignerMCP.exe",
"args": ["/port:31023101"],
"transport": "stdio"
}
}
}
- Replace <ProductPath> with your FrameworX installation directory (use double backslashes)
- Save and close the file
- Restart Claude Desktop completely (close via Windows Task Manager)
Tip: You can run both MCP for Designer and MCP for Runtime simultaneously by including both configurations in your claude_desktop_config.json file.
Verifying Connection
- Open Claude Desktop
- Go to Settings → Developer
- Verify "FrameworX-Designer" shows status "running"
- Open a new chat and click Search and Tools — you should see the Designer tools listed
AI MCP for Designer provides these tools organized by category:
Session Management
| 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 |
Schema Discovery
| Tool | Purpose |
|---|
| list_tables | List all available object types (Tags, Alarms, etc.) |
| get_table_schema | Get field definitions for any object type |
Object Operations
| 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 |
Display Operations
| 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 |
Protocol Schema
| Tool | Purpose |
|---|
| list_protocols | List available communication protocols filtered by group |
| get_protocol_schema | Get protocol-specific field schema (ProtocolOptions, PrimaryStation, Address) |
Protocol Groups
Protocols are organized into these groups:
| Group | Description | Examples |
|---|
| AutomationVendors | Vendor-specific PLC protocols | ControlLogix, S7, Mitsubishi, Omron |
| FactoryFloor | Industrial fieldbus protocols | Modbus, Profinet, EtherNet/IP |
| HistorianDB | Data storage and historian connections | SQL, ODBC, OSIsoft PI |
| ITCloud | IoT and cloud protocols | MQTT, MQTTSpB, REST, AMQP |
| StandardProtocols | Industry-standard protocols | OPCUA, OPCDA, ValueSimulator |
| VerticalIndustries | Industry-specific protocols | DNP3, IEC61850, BACnet |
Data Explorer
| Tool | Purpose |
|---|
| open_data_explorer | Open Data Explorer with connection settings (MQTT, OPC, PLC, SQL) |
| get_data_explorer_state | Get connection status, selected node, and creation recipes |
Supported Data Sources
| 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:
- Canvas and Symbol JSON Reference
- Dashboard JSON Reference
Example Queries
Creating Objects
- "Create a new analog tag called Tank1_Level with engineering units in gallons, range 0-1000"
- "Create 10 temperature sensor tags named Sensor_T01 through Sensor_T10"
- "Add a high alarm at 85 and high-high alarm at 95 to all temperature tags"
- "Create a Modbus TCP channel for PLC at 192.168.1.10"
Querying Configuration
- "List all tags in the Boiler area"
- "Show me the alarm configuration for Tank1_Level"
- "What displays reference the tag Pump1_Status?"
- "Show me the schema for creating historian tags"
Creating Canvas Displays
- "Create a canvas display showing Tank1 with a level gauge and numeric readout"
- "Add a status indicator that turns red when Tank1_Level exceeds 900"
- "Create a P&ID style display with three tanks connected by pipes"
Creating Dashboard Displays
- "Create a 2×3 dashboard for monitoring six motors"
- "Make a dashboard with a navigation panel on the left (200px) and content area on the right"
- "Create a dashboard with AlarmViewer spanning the bottom row"
Modifying Displays
- "Export the MotorOverview display so I can see its structure"
- "Add a CircularGauge to the Motor 1 cell showing speed"
- "Change the TrendChart to show the last 48 hours instead of 24"
Protocol Schema Discovery
- "What communication protocols are available?"
- "List all protocols in the AutomationVendors group"
- "Show me the schema for the Modbus protocol"
- "What are the key fields needed for an OPC UA connection?"
- "What interfaces does the S7 protocol support?"
Data Explorer & Device Configuration
- "Connect to the MQTT broker at tcp://192.168.1.100:1883"
- "Open the Data Explorer for OPC UA server at opc.tcp://192.168.1.100:4840"
- "What node is currently selected in the Data Explorer?"
- "Create a TagProvider from the current Data Explorer selection called Plant1_Sensors"
- "Create a Device configuration from the selected MQTT topic"
- "Browse the PLC at 192.168.1.50 and show available tags"
Learning & Discovery
- "What object types are available in FrameworX?"
- "Show me the required fields for creating an alarm item"
- "What symbols are available for motor status?"
- "List the parameters for the HMI/Labels/ShortLabel symbol"
How AI Context Works
When you open or create a solution, the AI automatically receives context about the FrameworX object model, including:
- Available object types and their relationships
- JSON formats for creating objects and displays
- Dependencies between objects (e.g., AlarmItem requires Tag + AlarmGroup)
- Pre-defined objects available in every solution
- Runtime namespace syntax for referencing objects
- Symbol library structure and common symbols
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.
Display Context
For display operations, the AI also receives:
- Available control types and their properties
- Symbol library categories and naming conventions
- Dashboard grid constraints (≤4×4 for simple format)
- Dynamic behavior options (color change, visibility, etc.)
- Theme property mappings
Protocol Context
For device configuration, the AI can discover:
- Available protocols organized by group (AutomationVendors, FactoryFloor, ITCloud, etc.)
- Protocol-specific schemas for ProtocolOptions, PrimaryStation, and Address fields
- Key fields that must be configured (marked with
* suffix) - Valid value ranges, enumerations, and default values
- Interface options (Serial, TCPIP, Custom)
Data Explorer Context
When using Data Explorer tools, the AI receives:
- Connection status and current data source type
- Selected node path and available children
- Pre-built "recipes" for creating TagProviders or Devices from the selection
- Protocol-specific connection string formats
Best Practices
Review Before Committing
AI-generated configuration should always be reviewed before saving:
- Verify object names and hierarchy placement
- Check property values and units
- Validate alarm configurations
- Test display layouts and bindings
- Preview dashboards at different screen sizes
Use Version Control
- Save solution backups before bulk AI operations
- Use FrameworX solution versioning features
- Consider Git integration for exported JSON files
Effective Prompting
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 |
| Use list_protocols to discover available options | Guess protocol names |
| Use Data Explorer to browse before creating devices | Manually construct connection strings |
Display Creation Tips
| 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" |
Device Configuration Tips
| Tip | Reason |
|---|
| Use get_protocol_schema before creating devices | Shows required fields and valid values |
| Pay attention to key fields (marked with *) | These must be provided for the device to work |
| Use Data Explorer to browse live data sources | Verifies connectivity and discovers available tags |
| Let AI use recipes from get_data_explorer_state | Pre-built configurations reduce errors |
| Specify interface type when protocol supports multiple | "Modbus over TCPIP" not just "Modbus" |
Start Small
- Test with single objects before bulk operations
- Verify AI understands your naming conventions
- Build complexity gradually
- Create simple displays before complex dashboards
- Test device connections before creating TagProviders
Troubleshooting
Designer MCP Server not starting
- Verify .NET 8.0 runtime is installed
- Check that Designer is running
- Confirm MCP is enabled in Designer settings
- Check firewall settings for the configured port
- Ensure claude_desktop_config.json path is correct (use double backslashes)
- Restart Claude completely (close via Task Manager)
- Verify Designer MCP shows "running" in Claude settings
AI creates objects in wrong location
- Specify full path in your request (e.g., "in the Boiler/Tanks folder")
- Ask AI to show the solution structure first
- Provide explicit parent object references
Display not rendering correctly
- Check that all referenced tags exist
- Verify symbol paths are correct (use search_symbols to find)
- For dashboards, ensure grid dimensions ≤4×4 for simple format
- Check for missing SymbolLabels on symbols
Dashboard cells not positioned correctly
- Verify Row/Col values are 0-based
- Check ColSpan/RowSpan don't exceed grid bounds
- Export existing dashboard to see expected format
Changes not appearing in Designer
- Refresh the Designer view (F5)
- Check if object was created in a different location
- Verify the operation completed successfully in Claude's response
- For displays, close and reopen the display editor
Protocol not found
- Use list_protocols to see available protocols
- Check spelling (protocol names are case-sensitive)
- Some protocols may not be installed — check FrameworX license
Data Explorer connection failed
- Verify the connection URL format matches the source type
- Check network connectivity to the data source
- Verify credentials if authentication is required
- For OPC UA, ensure the server is running and accessible
- For MQTT, check broker is accepting connections on the specified port
Data Explorer shows no selection
- Browse the tree in Data Explorer and select a node
- Call get_data_explorer_state after selecting to get updated recipes
- Some nodes may not support TagProvider or Device creation
- Canvas and Symbol JSON Reference — Complete Canvas/Symbol format specification
- Dashboard JSON Reference — Dashboard format specification
- XAML-JSON Translation Specification — How JSON maps to XAML
Protocol Schema Reference
- Protocol Schema Specification — JSON schema format for protocol fields
- Devices Module Reference — Channel, Node, Point configuration
- UNS Module Reference — TagProvider configuration
AI MCP for Runtime
For querying live data from running solutions:
- AI MCP for Runtime Connector — Query tags, alarms, and historian
- AI MCP for Runtime Tutorial — Step-by-step guide
Quick Start Tutorials
- AI MCP for Designer Tutorial — Create your first objects with AI
- Creating Displays with AI — Display generation walkthrough
- Connecting Data Sources with AI — Using Data Explorer tools
Example Implementation
- SolarPanels MCP Demo — Full solution with MCP integration
- AI-Ready by Design — Platform architecture for AI integration
- Display XAML Reference — XAML patterns for displays
- TControl XAML Inventory — Complete control reference
- Scripts Module Reference — For creating custom MCP tools
Change Log
| Version | Date | Changes |
|---|
| 0.7 | 2026-01-25 | Added Protocol Schema tools (list_protocols, get_protocol_schema); Added Data Explorer tools (open_data_explorer, get_data_explorer_state); Added protocol groups documentation; Added device configuration examples and tips; Updated troubleshooting |
| 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 |