Visual Indicator
When AI is connected to Designer, you'll see:
- "AI MCP" badge — Orange label in the toolbar area
- Orange border — Glowing border around the main working area
This provides clear visual feedback that AI is actively controlling the Designer.
AI MCP for Runtime Connector.Key Capabilities
- Navigate Designer UI — AI can observe and navigate the Designer interface
- Create Objects — Generate Tags, Displays, Alarms, Devices, 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
- Discover Protocols — Search available communication protocols and their configuration schemas
- Track Changes — Query audit trails, cross-references, and version control
- Access Documentation — Search docs and download example solutions
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" |
| Device configuration | "Connect to a Siemens S7-1500 PLC at IP 192.168.1.10" |
| Configuration review | "Review my alarm configuration and suggest improvements" |
| Learning assistance | "Show me how to configure historian logging 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 Siemens PLCs?" |
Cross-reference analysis | "Where is tag Tank1Level used in the solution?"
Prerequisites
- FrameworX 10.1 Designer
- .NET 8.0 runtime
- Claude Desktop or compatible MCP client
- Network connectivity (if Designer runs on remote machine)
Configuration
Enable/Disable MCP for Designer
The MCP for Designer is Enabled by default. If you want to To disable it:
- Open FrameworX Designer
- Navigate to Solutions → Settings
- Uncheck Allow MCP For Designer
This configuration has the scope of that solution onlysetting is per-solution.
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>\\MCP\\DesignerMCP.exe",
"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 should be listed
- In Designer, verify the orange "AI MCP" badge appears
AI MCP for Designer provides 17 tools organized by category:
| Tool | Purpose |
|---|
| create_solution | Create a new FrameworX solution |
(.dbsln file) |
| open_solution | Open an existing solution |
to work with |
| get_solution_info | Get solution overview with object counts |
per table
| Info |
|---|
The solutions visible to the MCP for Designer are only the ones in folders defined as Allow Remove Access, by the Solution Center tool. By Default the solutions in the sub-folder ..\Documents\FrameworXSolutions are visible. → See Solution Center ? Server Information |
| Tool | Purpose |
|---|
| list_objects | List objects in a table |
OR | or browse runtime namespaces |
(Server, Client, Tag, etc.) |
| get_objects_config | Get full JSON configuration for specific objects |
| get_table_schema | Get field definitions and valid values for any table |
type |
| create_objects | Create new objects from JSON configuration |
| validate_json | Validate |
JSON | configuration before creating objects |
| update_object | Modify existing objects (respects MCP Category |
permissions| ) |
| delete_objects | Remove objects from |
the Runtime Values: When runtime is connected, object tools include live values. Use designer_action('get_runtime_diagnostics') to check connection status.
| Tool | Purpose |
|---|
| designer_action | Navigate UI, get state, control runtime |
, set execution profileAvailable actions:
navigate — Go to module, table, or object pathget_state — Get current Designer view and selection
(optional screenshot)get_runtime_status — Check if runtime is runningget_startup_config — Get startup module settingsstart_runtime / stop_runtime — Control runtime executionset_execution_profile — Switch between Development and Production
| Tool | Purpose |
|---|
| get_element_schema | Get display element properties (Canvas, Dashboard, |
TextBox, WizardSymbol, etc.Special queries:
get_element_schema('Canvas') — Canvas display structure
with layout infoget_element_schema('Dashboard') — Dashboard grid and cell structureget_element_schema('WizardSymbol') — Industrial symbols: BLOWER, MOTOR, PUMP, TANK, VALVE
| Tool | Purpose |
|---|
| list_protocols | Search |
available | protocols by equipment name (fuzzy matching) |
| get_protocol_schema | Get protocol-specific |
field schema for Search examples:
list_protocols(search='siemens') → S7, S7Pluslist_protocols(search='allen') → EtherNet/IP, DF1, ControlLogixlist_protocols(search='modbus') → Modbus TCP, Modbus RTU
list_protocols(search='opc') → OPC UA, OPC DA| Tool | Purpose |
|---|
| search_docs | Search FrameworX documentation with |
label/section | filters |
| get_example_solution | Download example solution JSON configuration |
Documentation labels: concept, tutorial, how-to, example, reference, connector, code, control
| Tool | Purpose |
|---|
| get_track_changes | Query audit trail, cross-references, |
version control, usage countsAvailable tables:
RecentChanges — Audit trail
of who changed what and whenVersionControl — Table versions
and modification datesCrossReference — Where an object is used (requires object_name)UseCount — Usage frequency
per object
Table Types
ReferenceObjects are organized by module. Use these TableType names with object tools:Quick Reference
Designer Description |
|---|
| UNS | UnsTags | Tags |
| UnsUserTypes |
Process variable tagsUnsUserTypes | UserTypes | Custom data structures (UDT) | | UserTypes |
| UnsTagProviders | TagProviders |
External data sources (MQTT, OPC UA) | | UnsEnumerations | Enumerations |
Number-to-string mappings | | Devices | DevicesChannels | Channels |
Protocol connections | Device addresses | Tag-to-address mappingsAlarm behavior settingsIndividual alarm definitionsAlarm hierarchy |
| Historian | HistorianTags | HistorianTags |
Tags configured for logging |
| HistorianTables | HistorianTables |
Storage configurations |
| HistorianStorageLocations | StorageLocations |
Database connectionsDatabase connectionsSQL query definitionsDirect table accessFile operationsEvent-triggered code | Reusable code libraries |
| ScriptsExpressions | Expressions |
One-liner calculationsDocument templatesJSON/XML data objectsUI screens and pagesReusable visual componentsScreen layout definitions | Image library |
| Security | SecurityUsers | Users |
User accounts |
| SecurityPermissions | Permissions |
Permission flagsSecurity rules |
Syntax
ReferenceQuick Reference
Tag Access Methods
| Method | Syntax | When to Use |
|---|
| Direct path | Tag.Folder/Name.Value | Standard tag reference |
| Asset function | Asset("Folder/Name").Value | Works everywhere, required for TagProvider dynamic paths |
Context-Specific Syntax
| Context | | Syntax | Example |
|---|
| Scripts (C#, VB, Python) | @ prefix |
required.Value or @Asset("Tank1") @ | prefix, no .Value | Tag.Tank1.Level + 10 |
| Display bindings | @ prefix + .Value | @Tag.Tank1.Level |
.ValueDynamic bindings | Asset with expression | @Asset(Tag.SelectedPath).Value |
| String embedding | Curly braces | "Level: {Tag.Tank1.Level} %" |
System Namespaces
| Namespace | Purpose | Examples |
|---|
| Server | Server-wide information | @Server.DateTime, @Server.MachineName, @Server.ProductVersion |
| Client | Per-client information (different per user) | @Client.Username, @Client.StationName, @Client.MachineName |
| Info | System diagnostics | @Info.CPU, @Info.Memory, @Info.DiskSpace |
Module Namespaces
Every configured object has runtime properties accessible via namespace:
Alarm.Group.Critical.AckRequired, Alarm.Item.HighTemp.ActiveDevice.Channel.Modbus1.Status, Device.Node.PLC1.ErrorScript.Task.Startup.LastRun, Display.MainPage.IsOpen
Use list_objects('Server') or list_objects('Alarm.Group') to explore.
MCP Category SystemTag Path Syntax
- Folders:
Tag.Folder1/Folder2/TagName - UDT members:
Tag.Controller1.SP - Arrays:
Tag.ArrayTag[5]
MCP Category and Update Protection
Objects created by AI
automatically receive Category = "MCP" to track AI-created vs manually-created
objects.
Update Permissions| Object Category | What AI Can Update |
|---|
| Contains "MCP" | All fields (full replacement) |
| No "MCP" (user edited) | Description field only |
How
It Worksit works:
- AI creates object → Category
automatically - set to "MCP"
- User edits
object - in Designer → "MCP" removed
from Category- AI
tries to update - updates → Limited to Description field
only- To re-enable
full AI updates - → Manually add "MCP" to Category
Canvas Display
Canvas displays use absolute pixel positioning with an Elements array:
{
"Name": "TankOverview",
"PanelType": "Canvas",
"Size": "1366 x 728",
"Elements": [
{
"Type": "TextBox",
"Left": 100,
"Top": 50,
"Width": 120,
"Height": 28,
"LinkedValue": "@Tag.Tank1.Level.Value"
},
{
"Type": "Symbol",
"WizardType": "TANK",
"Left": 100,
"Top": 100,
"Width": 65,
"Height": 65
}
]
}
Dashboard Display
Dashboard displays use grid-based positioning with Cells array:
{
"Name": "MotorDashboard",
"PanelType": "Dashboard",
"Size": "1366 x 728",
"DashboardDisplay": {
"Columns": ["*", "*"],
"Rows": ["*", "*"]
},
"Cells": [
{
"Row": 0,
"Col": 0,
"Cell": { "HeaderLink": "Motor 1" },
"Content": {
"Type": "TextBox",
"LinkedValue": "@Tag.Motor1.Speed.Value"
}
}
]
}
Wizard Symbols
Pre-built industrial symbols with default appearance:
- Types: BLOWER, MOTOR, PUMP, TANK, VALVE
- Usage:
{ "Type": "Symbol", "WizardType": "VALVE", "Left": 100, "Top": 200 } - User customizes appearance in Designer after creation
Common Workflows
"Create a Double tag called TankLevel in the Tanks folder with range 0-100"
Setting Up Device Communication
"
I need to connect Connect to a Siemens S7-1500 PLC at
IP 192.168.1.10"
AI will: Search protocols → Present options → Create Channel → Create Node → Help map Points
Creating Displays
"Create a dashboard with 4 cells showing TankLevel, TankTemp, PumpStatus, and AlarmCount"
Configuring Alarms
"Create high and low alarms for TankLevel: High at 90 (Critical), Low at 10 (Warning)"
Finding
Where Objects Are UsedObject Usage
"Where is tag Tank1Level used
in the solution?"
AI
will useuses: get_track_changes('CrossReference', object_name='Tag.Tank1Level')
Best Practices
Be Specific
Instead of "Create some tags", say:
"Create these tags in the Production folder: MixerSpeed (Double, 0-1000 RPM), MixerRunning (Digital), BatchCount (Integer)"
Validate Before Bulk Operations
"Validate this configuration before creating 50 tags"
Review Changes
"Show me the recent changes" or "Navigate to the Tags tab"
Use Documentation
"Search the documentation for alarm configuration options"
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
"Update blocked" message
The object - Object doesn't have MCP in
its - Category
- User edited the object
in Designer- , removing MCP
- AI can only update
the - Description field
- To enable
full updates- : add "MCP" to Category in Designer
Changes not appearing in Designer
the - Designer view (F5)
- For displays, close and reopen the display editor
- Verify
the successfully No visual indicator (orange border)
- Verify MCP connection is active in Claude Desktop
- Check Designer settings for MCP enabled
- Restart Designer if needed
AI MCP for Runtime Connector — Query live tags, alarms, and historianAI-Ready by Design — Technical architecture for AI integrationDevices Module Reference — Channel, Node, Point configuration- Overview and examples
- Query live data
- Deep technical details
- Technical architecture
Displays Module Reference — Canvas and Dashboard formats