| Page properties | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
|
Enable AI-powered solution configuration through Model Context Protocol integration.
Documentation pages: AI Integration | MCP for Designer In Action | AI MCP for Designer Connector
| Info | ||
|---|---|---|
| ||
Preview Version for tests and training, not released for production. |
The AI MCP for Designer
enables AI models to interact with
FrameworX Designer
, providing intelligent assistance for solution configuration
. Describe what you need in natural language
, AI
generates 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
Table of Contents
maxLevel
2
minLevel
2
indent 10px exclude Overview style none
| AI Model | ↔ | MCP Protocol | ↔ | Solution Configuration |
|---|---|---|---|---|
| Claude, |
| GPT, GitHub Copilot | Model Context Protocol | Designer.exe | |||
| ↓ | |||||
| Structured Methods | |||||
| |||||
| |||||
| ||||||||
| |||||
| |||||
| 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?" |
MCP for Designer is not a code generator or wizard, it's a collaborative engineering tool.
| Traditional Generators | MCP for Designer |
|---|---|
| Generate output, then done | Work side-by-side with AI continuously |
| Output goes to files, needs to open on tools | Changes appear directly in Designer UI |
| One-shot generation | Iterative conversation with full context |
| Limited to predefined templates and specific areas | AI understands your entire solution |
| You adapt to the tool's structure | Tool adapts to your requirements |
What this means in practice:
The MCP for Designer is Enabled by default. If you want to disable it:
This configuration has the scope of that solution only.
Configure Claude Desktop to connect to the Designer MCP server:
{
"mcpServers": {
"FrameworX-Designer": {
"command": "<ProductPath>\\MCP\\DesignerMCP.exe",
"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 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 |
| Tool | Purpose |
|---|---|
| list_objects | List objects in a table 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 solution |
Runtime Values: When runtime is connected, object tools automatically include live values:
list_objectsaddsValueproperty to each object (when applicable)get_objects_configaddsValue,Quality,Timestampproperties (properties added are according the object type)Use
designer_action('get_runtime_diagnostics')to check if runtime is connected.
| Tool | Purpose |
|---|---|
| designer_action | Navigate UI, get state, control runtime, set execution profile |
Available 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 ProductionSolutions opened by the AI, always open in Development profile
| 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 configuration |
Search examples:
list_protocols(search='siemens') → S7, S7Pluslist_protocols(search='allen') → EtherNet/IP, DF1, ControlLogixlist_protocols(search='modbus') → Modbus TCP, Modbus RTUlist_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 counts |
Available 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 objectObjects are organized by module. Use these TableType names with object tools:
| 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 | Syntax | Example |
|---|---|---|
| Scripts (C#, VB, Python) | @ prefix required | @Tag.Tank1.Level.Value or @Asset("Tank1").Value |
| Expressions | No @ prefix, no .Value | Tag.Tank1.Level + 10 |
| Display bindings | @ prefix + .Value | @Tag.Tank1.Level.Value |
| Dynamic bindings | Asset with expression | @Asset(Tag.SelectedPath).Value |
| String embedding | Curly braces | "Level: {Tag.Tank1.Level} %" |
| 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 |
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.IsOpenUse list_objects('Server') or list_objects('Alarm.Group') to explore.
Objects created by AI automatically receive Category = "MCP" to track AI-created vs manually-created objects.
| Object Category | What AI Can Update |
|---|---|
| Contains "MCP" | All fields (full replacement) |
| No "MCP" (user edited) | Description field only |
"Create a Double tag called TankLevel in the Tanks folder with range 0-100"
"I need to 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
"Create a dashboard with 4 cells showing TankLevel, TankTemp, PumpStatus, and AlarmCount"
"Create high and low alarms for TankLevel: High at 90 (Critical), Low at 10 (Warning)"
"Where is tag Tank1Level used in the solution?"
AI will use: get_track_changes('CrossReference', object_name='Tag.Tank1Level')
Instead of "Create some tags", say:
"Create these tags in the Production folder: MixerSpeed (Double, 0-1000 RPM), MixerRunning (Digital), BatchCount (Integer)"
"Validate this configuration before creating 50 tags"
"Show me the recent changes" or "Navigate to the Tags tab"
"Search the documentation for alarm configuration options"
| ||||||||
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.
FrameworX 10.1 Designer
.NET 8.0 runtime
Node.js (optional — allows AI to read screenshot and inspect_application results directly, otherwise user must upload files manually)
Claude Desktop or compatible MCP client
Network connectivity (if Designer runs on remote machine)
MCP for Designer is Enabled by default. To disable:
Open FrameworX Designer
Navigate to Uns → DataServers
Uncheck Allow MCP For Designer
This setting is per-solution.
Open Claude Desktop
Go to Settings → Developer → Edit Config
Open "claude_desktop_config.json"
Add the configuration:
{ "mcpServers": { "FrameworX-Designer": { "command": "<ProductPath>\\fx-10\\MCP\\DesignerMCP.exe", "transport": "stdio" }, "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "C:\\Users\\<username>\\Documents\\FrameworX\\Exchange", "C:\\Users\\Public\\Documents\\FrameworX\\Transfers" ] } } }
Replace <ProductPath> with your FrameworX installation directory (use double backslashes)
Replace <username> with your Windows username
Save and close
Restart Claude Desktop completely (close via 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.
The filesystem MCP server is optional — it allows AI to directly read the files produced by get_screenshot and inspect_application. Without it, those tools still work but the user must manually upload the resulting files into the conversation for AI to see them. All other Designer tools work independently of the filesystem server.
The filesystem server requires Node.js. If not already installed:
Go to https://nodejs.org
Download the LTS (Long Term Support) version — choose Windows Installer (.msi), 64-bit
Run the installer: click Next, accept the license, keep the default install path, make sure "Add to PATH" is selected, then click Install
Open Claude Desktop
Go to Settings → Developer
Verify "FrameworX-Designer" and "filesystem" both show status "running"
Open a new chat and click Search and Tools — Designer tools should be listed
In Designer, verify the orange "AI MCP" badge appears
Tool | Purpose |
|---|---|
list_solutions | List available solutions and templates on this machine (works without Designer running) |
create_solution | Create a new solution, launch Designer, and return the MCP Context document with security info |
open_solution | Open an existing solution, launch Designer, and return the MCP Context document with security info |
get_solution_info | Get solution statistics — object counts per module, recent changes, audit trail |
The solutions visible to the MCP for Designer are only the ones in folders defined as Allow Remote Access, by the Solution Center tool. By default the solutions in the sub-folder ..\Documents\FrameworXSolutions are visible.
→ See Solution Center — Server Information
The first open_solution, create_solution, or inspect_external_solution call in a conversation triggers an MCP authorization prompt. Approve it once — subsequent calls need no further authorization.
Object Operations (5 tools)
Tool | Purpose |
|---|---|
get_objects | Read objects from config tables. |
browse_runtime_properties | Browse runtime namespace paths (Server, Client, Tag, Alarm, Device, etc.) |
write_objects | Create or update objects from JSON. Modes: |
delete_objects | Delete objects by name. Backend prevents deletion of referenced objects — use |
rename_object | Rename an object with safe refactoring — all cross-references update automatically (linked by ID, not name). |
Singleton Tables: SolutionSettings, AlarmsGlobalSettings, RuntimeStartup, and RuntimeExecutionProfiles have a single configuration row — no Name column needed. Use get_objects to read, write_objects(mode='upsert')to modify.
Schema & Discovery (4 tools)
Tool | Purpose |
|---|---|
get_table_schema | Get field definitions for any table type. No parameter lists all table types. |
list_protocols | Search and discover communication protocols. Fuzzy matching by vendor name. Auto-includes protocol schema when search returns exactly one match. |
list_elements | Get display element properties. No parameter lists all element types by category. Query by type: |
list_dynamics | Browse dynamic behaviors (FillColor, Visibility, Action, Rotate, etc.) by category or search. Returns property schemas and ready-to-use JSON patterns. |
Protocol search examples:
list_protocols(search='siemens') → S7, S7Plus
list_protocols(search='allen') → EtherNet/IP, DF1, ControlLogix
list_protocols(search='modbus') → Modbus TCP, Modbus RTU
Display element queries:
list_elements() — List all element types by category
list_elements('Canvas') — Canvas display structure
list_elements('Dashboard') — Dashboard grid and cell structure
list_elements('WizardSymbol') — Industrial symbols: BLOWER, MOTOR, PUMP, TANK, VALVE
Dynamic behavior queries:
list_dynamics() — Overview of all dynamics grouped by category
list_dynamics('color') — FillColor, LineColor, TextColor dynamics
list_dynamics('action') — ActionDynamic for click handlers
list_dynamics('animation') — Rotate, Move, Scale, Skew dynamics
list_dynamics('FillColorDynamic') — Full schema with property definitions
Tool | Purpose |
|---|---|
get_state | Get current Designer or Runtime state as lightweight text data. Active page, selected object, compilation errors, runtime health. |
get_screenshot | Capture a screenshot of the Designer UI, Runtime view, or display/symbol previews. Saves image to the Exchange/Screenshots/ folder with a descriptive filename. AI reads the image via the filesystem MCP server. |
designer_action | Perform Designer commands: navigation, find, runtime control, and security (8 actions). |
designer_action available actions:
Action | Purpose | Options |
|---|---|---|
| Go to any module, table, or object | Target path: |
| Find where an object is used — opens Find Results panel | Object name: |
| Step through Find Results — Designer navigates to each location | (none) |
| Start solution runtime | (none) |
| Stop runtime | (none) |
| Push design changes to running runtime without restart | (none) |
| Authenticate a user for secured solutions |
|
| Return to Guest (anonymous) user | (none) |
Note: get_objects and write_objects auto-navigate the Designer UI to the relevant context. Use navigate only for pages without configuration objects (DataExplorer tools, AlarmsMonitor, etc.).
Page-specific actions: Some Designer pages expose additional context-specific actions (e.g., expand_all, collapse_all on table views). These appear in get_state responses as tabActions and can be passed directly to designer_action.
Documentation & Knowledge (3 tools)
Tool | Purpose |
|---|---|
search_docs | Search FrameworX documentation with label/section filtering — or fetch full page content by URL. Supports skills, code snippets, examples, and tutorials. |
inspect_external_solution | Open an external reference solution (local or from docs) to inspect its full JSON configuration. Use to study and replicate complete implementation patterns. |
inspect_application | Export the current solution’s configuration as JSON files to the Exchange folder. Creates a subfolder named after the application containing Tags.json, Channels.json, Displays.json, etc. AI reads files via the filesystem MCP server. |
search_docs modes:
Search mode: search_docs('alarm configuration') — returns titles and snippets
Fetch mode: search_docs(fetch_url='<url from results>') — returns full page content with code examples
Documentation labels: concept, tutorial, how-to, example, reference, connector, code, control, use-case, skill
AI Skills: Use search_docs('', labels='skill') to discover available step-by-step implementation guides. Skills are multi-module playbooks that prevent common mistakes in complex configurations.
inspect_external_solution workflow:
search_docs(query, labels='example') — find documented solution examples
inspect_external_solution(solution_path) — list available JSON files
inspect_external_solution(solution_path, file_name='Tags.json') — read specific configuration
inspect_application workflow:
inspect_application() — exports current solution to Exchange/<AppName>/ folder
AI uses the filesystem MCP server to list and read exported JSON files
Useful for solution analysis, documentation, comparison, and migration
Several MCP tools use the Exchange folder to share files between the Designer and AI, rather than embedding large data in MCP responses. The filesystem MCP server (configured during setup) gives AI direct read access to these files.
Subfolder | Tool | Contents |
|---|---|---|
|
| Solution JSON files (Tags.json, Channels.json, Displays.json, etc.) |
|
| Captured images with descriptive filenames (e.g., Screenshot_MainPage_2026-02-15_14-30-00.jpg) |
This file-based approach keeps MCP responses lightweight and avoids large base64-encoded data in the conversation context.
Objects created by AI receive Category = "MCP" (via SolutionCategories) to track AI-created vs manually-created.
Object Category | What AI Can Update |
|---|---|
Contains "MCP" | All fields (full replacement) |
No "MCP" (user edited) | Description field only |
How it works:
AI creates object → Category set to "MCP"
User edits in Designer → "MCP" removed
AI updates → Limited to Description field
To re-enable → Manually add "MCP" to Category
Solutions can have security enabled with user accounts and edit permissions.
How authentication works with AI:
AI opens solution → response includes current username (Guest by default) and edit permissions
If permissions are not Unrestricted, AI informs the user that some operations may be restricted
User provides credentials → AI calls designer_action('logon', 'username:password')
Successful login → permissions expand to match the user's role
designer_action('logoff') returns to Guest
AI can browse and read the solution even as Guest. Permission restrictions only affect write operations.
Security: AI never echoes, logs, or repeats passwords in its responses.
Module | TableType | Notes |
|---|---|---|
UNS | UnsTags | Process tags organized in folder paths |
UnsUserTypes | UDT templates | |
UnsTagProviders | External data sources | |
UnsEnumerations | Enum mappings | |
Devices | DevicesChannels | Protocol configuration |
DevicesNodes | Device addresses | |
DevicesPoints | Tag-to-address mapping | |
Alarms | AlarmsGroups | Behavior rules |
AlarmsItems | Tag-bound triggers | |
AlarmsAreas | Optional hierarchy | |
AlarmsGlobalSettings | Module configuration (singleton) | |
Historian | HistorianStorageLocations | Data repository |
HistorianHistorianTables | Storage coordination | |
HistorianHistorianTags | Tags to log | |
Datasets | DatasetsDBs | Database connections |
DatasetsQueries | SQL queries | |
DatasetsTables | Direct table access | |
DatasetsFiles | File operations | |
Scripts | ScriptsTasks | Event-triggered code |
ScriptsClasses | Reusable libraries | |
ScriptsExpressions | One-liner calculations | |
ScriptsReferences | External DLL references | |
Reports | ReportsForms | Documents |
ReportsWebData | JSON/XML | |
Displays | DisplaysList | UI screens (Canvas or Dashboard) |
DisplaysSymbols | Reusable user-authored components | |
DisplaysLayouts | Layout regions | |
DisplaysImages | Image library | |
Security | SecurityUsers | Accounts |
SecurityPermissions | Permission groups | |
SecurityPolicies | Session/password rules | |
SecuritySecrets | Credentials (not accessible by AI) | |
Solution | SolutionCategories | Object labels (MCP flag) |
SolutionSettings | Global solution config (singleton) | |
Runtime | RuntimeStartup | Startup configuration (singleton) |
RuntimeExecutionProfiles | Dev/Prod replacement connections (singleton) |
Context | Syntax | Example |
|---|---|---|
Scripts (C#, VB, Python) | @ prefix + .Value |
|
Expressions | No prefix, no .Value |
|
Display bindings | @ prefix + .Value |
|
String embedding | Curly braces |
|
Path Syntax
Folder separator: / (slash) — only for Tags and Symbols: Tag.Area1/Line1/Tank1
Namespace/member separator: . (dot) — for all other access: Server.DateTimeInfo.Second
UDT members: Tag.Area1/Line1/Loop1.Setpoint (dot after tag path for member access)
Built-in namespaces: dot only, never slash: Alarm.Group.Critical.TotalCount
Critical: Never use . for folders or / for members. Tag.Area1.Line1.Tank1 is WRONG. Tag.Area1/Line1/Loop1/Setpoint is WRONG.
designer_action('find_object', 'Tag.Tank1Level') — opens Find Results panel in Designer showing all cross-references.designer_action('find_object', 'Display.TestDisplay') to check references first, then delete_objects if safe.rename_object — all cross-references update automatically (linked by ID, not name).designer_action('hot_reload')designer_action('logon', 'admin:password')inspect_application() to export JSON files to the Exchange folder, then reads them via the filesystem server for analysis.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"
AI uses write_objects with dry_run=true to check for errors without committing.
"Search for a skill on Modbus TCP configuration"
AI searches for step-by-step guides that prevent common mistakes.
"Show me the recent changes" or "Navigate to the Tags tab"
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
Claude doesn't see Designer tools
Ensure claude_desktop_config.json path is correct (double backslashes)
Restart Claude completely (close via Task Manager)
Verify Designer MCP shows "running" in Claude settings
Filesystem MCP server not connecting
Verify Node.js is installed (node --version in command prompt)
Check that the Exchange folder path in config matches your Windows username
Verify "filesystem" shows "running" in Claude Desktop → Settings → Developer
"Update blocked" message
Object doesn't have MCP in Category
User edited the object, removing MCP
AI can only update Description field
To enable: add "MCP" to Category in Designer
Changes not appearing in Designer
Refresh Designer view (F5)
For displays, close and reopen the display editor
Verify operation completed in Claude's response
No visual indicator (orange border)
Verify MCP connection is active in Claude Desktop
Check Designer settings for MCP enabled
Restart Designer if needed
Permission errors on write operations
Solution may have security enabled
Ask AI to check current permissions: look at the security field in the response
Log in with appropriate credentials: tell AI "log in as [username]"
After successful login, retry the operation
Related Documentation
[AI Integration]
[MCP for Designer In Action]
[AI MCP for Runtime Connector]
[AI ML Integration Connector]
| Page Tree | ||
|---|---|---|
|