| Page properties | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
|
Enable AI-powered solution configuration through Model Context Protocol integration.
| Table of Contents | ||||||
|---|---|---|---|---|---|---|
|
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. |
Documentation Preview: This connector is currently under development and will be available soon. This documentation is a draft and is still being updated.
| exe | ||||||||||||||
| ↓ | ||||||||||||||
| Structured Methods | ||||||||||||||
| ||||||||||||||
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
EditUns →
Settings → MCPDataServers
Uncheck Allow MCP For Designer
This setting is per-solution.
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"
fileAdd the
MCP for Designerconfiguration:
{
"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
the fileRestart Claude Desktop completely (close via
WindowsTask 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
" shows" and "filesystem" both show status "running"
Open a new chat and click Search and Tools —
you should see theDesigner tools should be listed
In Designer, verify the orange "AI MCP" badge appears
AI MCP for Designer provides these tools organized by category:
Session ManagementTool | 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 |
| Tool | Purpose |
|---|---|
| list_objects | Browse objects with summary information |
| get_objects | Retrieve full configuration details |
| create_objects | Create new objects from AI-generated configuration |
| validate_json | Validate configuration before creating |
| Tool | Purpose |
|---|---|
| search_docs | Search FrameworX documentation |
| navigate_to | Navigate Designer UI to specific location |
| get_designer_state | Get current Designer view and selection |
Creating Objects:
Querying Configuration:
Generating Displays:
Learning & Discovery:
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.
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 |
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"
Build complexity graduallyDesigner 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 portClaude doesn't see Designer tools
Ensure claude_desktop_config.json path is correct (
usedouble backslashes)
Restart Claude completely (close via Task Manager)
Verify Designer MCP shows "running" in Claude settings
AI creates objects in wrong location
Generated XAML doesn't render correctly
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
theDesigner view
(F5)
For displays, close and reopen the display editor
Verify operation completed
Verify the operation completed successfullyin Claude's response
For querying live data from running solutions:
Learn AI-assisted configuration step by step:
See MCP in action:
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 | ||
|---|---|---|
|