Enable AI-powered solution configuration through Model Context Protocol integration.
- Name: DesignerMCP, ConsoleMCP
- Version: 0.9.0.0
- Interface: TCP/IP
- Configuration: native
Documentation pages: AI Integration | MCP for Designer In Action | AI MCP for Designer Connector
Generally Available in FrameworX 10.1.5
Shipped GA in FrameworX 10.1.5 (build 2000 or higher). Production-ready.
Overview
The AI Designer connector 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.
Two MCP servers are available:
- DesignerMCP — Live IDE co-pilot. Claude connects to the running Designer and builds solutions with real-time visual feedback. 18 tools covering the full solution lifecycle.
- ConsoleMCP — File-based engineering via Claude Code. Generates JSON configuration files without a running Designer. 15 tools (workspace-based equivalents plus build). The engineer imports files into Designer for validation and deployment.
Note: This connector is for configuration-time operations (building solutions in Designer.exe). For querying live data from running solutions, see AI Runtime Connector
Integration Architecture
| AI Model | ↔ | MCP Protocol | ↔ | Solution Configuration |
|---|---|---|---|---|
| Claude Desktop, Claude.ai, Cursor, GitHub Copilot | Model Context Protocol | Designer.exe (live co-pilot) | ||
| Claude Code (console tool) | Model Context Protocol | JSON files (ConsoleMCP) |
↓
Structured Methods
| Manage Solutions | Read & Write Objects | Schema & Discovery | Designer Control | Documentation |
|---|---|---|---|---|
| Create, open, list solutions, get info & audit. | List, create, update, delete, rename objects. | Table schemas, display elements, protocol search. | Navigate, find, screenshot, runtime, security. | Search docs, fetch pages, inspect examples. |
Overview
The AI Designer connector 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.
Two MCP servers are available:
- DesignerMCP — Live IDE co-pilot. Claude connects to the running Designer and builds solutions with real-time visual feedback. 18 tools covering the full solution lifecycle.
- ConsoleMCP — File-based engineering via Claude Code. Generates JSON configuration files without a running Designer. 15 tools (workspace-based equivalents plus build). The engineer imports files into Designer for validation and deployment.
Both share the same schema, documentation, and core object tools. ConsoleMCP simply operates on files instead of a live IDE, and excludes the Designer UI control tools.
Note: This connector is for configuration-time operations (building solutions in Designer.exe). For querying live data from running solutions, see AI Runtime Connector
Visual Indicator
When AI is connected to Designer (DesignerMCP mode), you'll see:
- "AI Designer" 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. ConsoleMCP has no visual indicator — it operates on files without a running Designer.
Configuration
For installation and connection setup (DesignerMCP, ConsoleMCP, HTTP/SSE mode, Claude Skill), see Claude Skill and MCP Setup.
Enable/Disable AI Designer
AI Designer is Enabled by default. To disable:
- Open FrameworX Designer
- Navigate to Uns → DataServers
- Uncheck Allow MCP For Designer
This setting is per-solution.
Available Tools (18)
All tools are available in DesignerMCP. ConsoleMCP provides 15 workspace-oriented equivalents — see ConsoleMCP: Claude Code below for what's different.
Tools marked ? are DesignerMCP-only — they require a running Designer IDE.
Solution Management (4 tools)
| 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 AI 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
MCP Authorization
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. detail='summary' for listing, detail='full' for complete JSON. Singletons always return full config. |
| browse_object_model | Browse runtime namespace paths (Server, Client, Tag, Alarm, Device, etc.) |
| write_objects | Create or update objects from JSON. Modes: The
Shapes 2 and 3 are recommended for plan files (no JSON-inside-JSON escaping). |
| delete_objects | Delete objects by name. Backend prevents deletion of referenced objects — use find_object to inspect usage first. |
| rename_objects | 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_elements('Canvas'), list_elements('Dashboard'), list_elements('WizardSymbol'). |
| 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, S7Pluslist_protocols(search='allen')→ EtherNet/IP, DF1, ControlLogixlist_protocols(search='modbus')→ Modbus TCP, Modbus RTU
Display element queries:
list_elements()— List all element types by categorylist_elements('Canvas')— Canvas display structurelist_elements('Dashboard')— Dashboard grid and cell structurelist_elements('WizardSymbol')— Industrial symbols: BLOWER, MOTOR, PUMP, TANK, VALVE
Dynamic behavior queries:
list_dynamics()— Overview of all dynamics grouped by categorylist_dynamics('color')— FillColor, LineColor, TextColor dynamicslist_dynamics('action')— ActionDynamic for click handlerslist_dynamics('animation')— Rotate, Move, Scale, Skew dynamicslist_dynamics('FillColorDynamic')— Full schema with property definitions
Designer UI & Control (3 tools)
| 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 (11 actions). |
designer_action available actions:
| Action | Purpose | Options |
|---|---|---|
navigate | Go to any module, table, or object | Target path: 'DataExplorer.MQTTTools', 'Tag.Folder1/Level', 'Display.MainPage' |
find_object | Find where an object is used — opens Find Results panel | Object name: 'Tag.Folder1/Level' |
find_next | Step through Find Results — Designer navigates to each location | (none) |
start_runtime | Start solution runtime | (none) |
stop_runtime | Stop runtime | (none) |
hot_reload | Push design changes to running runtime without restart | (none) |
logon | Authenticate a user for secured solutions | 'username:password' |
logoff | Return to Guest (anonymous) user | (none) |
select_row | Select a specific row in a config grid by name and scroll it into view. Visual only, no mutation. | 'TableType.ObjectName' (e.g., 'UnsTags.Plant1/Temperature') |
scroll | Alias of select_row. Same behavior. | 'TableType.ObjectName' |
expand | Expand a tree node in the AssetTree, select it, and scroll into view. V1 supports the AssetTree only. | 'TreeName.path/segments' (e.g., 'AssetTree.Plant1/Motor1') |
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 (2 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. |
| get_export_solution_files | Open an external reference solution (local or from web) to inspect its full JSON configuration. Use to study and replicate complete implementation patterns. Creates a subfolder at Exchange named after the application containing solution json files. 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 examplesget_export_solution_files(solution_path)— list available JSON filesget_export_solution_files(solution_path, file_name='Tags.json')— read specific configuration
inspect_application workflow:
get_export_solution_files()— 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
ConsoleMCP: Claude Code
ConsoleMCP is the file-based companion for Claude Code. It provides 15 workspace-oriented tools — equivalents of most DesignerMCP tools plus create_solution_file — sharing the same schemas, documentation, and object operations, but writing to JSON files instead of a live Designer.
For installation and configuration, see Claude Skill and MCP Setup — Option C.
What's Different
Tools that require a running Designer IDE and are not available in ConsoleMCP:
| Excluded Tool | Why |
|---|---|
| get_solution_info | Queries live solution state (object counts, audit trail). ConsoleMCP provides get_workspace_info for the file-based equivalent. |
| browse_object_model | Browses the live runtime namespace |
| designer_action (includes get_state, get_screenshot, find_object, hot_reload, navigate, start/stop runtime, logon/logoff) | Controls the Designer UI |
Behavioral differences in shared tools:
| Tool | DesignerMCP | ConsoleMCP |
|---|---|---|
| create_solution / open_solution (DesignerMCP) create_workspace / open_workspace (ConsoleMCP) | Launches Designer.exe, opens solution in IDE. Both DesignerMCP tools accept an optional from_workspace=<path> parameter — when supplied, all *.json files in the workspace folder are imported into the solution after it is opened or created. The target .dbsln is auto-backed up first (3-file retention). Always-replace upsert semantics. The response includes a workspaceImport section with per-file results. | Creates or opens a workspace folder in Documents/FrameworX/Exchange/ |
| list_solutions (DesignerMCP) list_workspaces (ConsoleMCP) | Scans Solution Center folders for .fxproj files | Scans Exchange folder for workspace folders |
| write_objects | Writes to live solution via named pipe, backend validates in real time | Writes JSON files following ExportFormat 1.2, validates against local schema |
| get_objects | Reads from live solution | Reads from JSON files in the solution folder |
| delete_objects | Deletes in live solution, backend prevents deletion of referenced objects | Removes from JSON files, cleans up empty files |
| rename_objects | Renames with automatic cross-reference updates (linked by ID) | Updates Name field in JSON — cross-references resolved on Designer import |
ConsoleMCP Tool Naming and Build
ConsoleMCP uses workspace vocabulary for its solution-management commands: list_workspaces, open_workspace, create_workspace, get_workspace_info. DesignerMCP keeps its *_solution names unchanged. ConsoleMCP also ships a dedicated create_solutiontool:
| Tool | Purpose |
|---|---|
| create_solution | Invoke |
Typical ConsoleMCP workflow: open_workspace (or create_workspace) → write_objects to generate JSON files → build_solution(solution_name, workspace=...) to produce the deployable .dbsln.
ExportFormat 1.2 File Structure
Each JSON file generated by ConsoleMCP follows this envelope:
{
"ObjectIdentification": {
"TableType": "UnsTags",
"SolutionName": "MySolution"
},
"ExportMetadata": {
"ExportDate": "2026-02-21T14:30:00Z",
"ExportUser": "ConsoleMCP",
"ExportProduct": "FrameworX",
"ExportFormat": "1.2"
},
"Data": [
{ "Name": "Tank1/Level", "Type": "Analog", "EngUnits": "%" },
{ "Name": "Tank1/Pump", "Type": "Digital" }
]
}
When to Use ConsoleMCP vs DesignerMCP
| Scenario | Use |
|---|---|
| Claude Code on same machine as Designer — want live co-pilot | DesignerMCP |
| Claude Desktop or Claude.ai — want live co-pilot over the network | DesignerMCPHttp |
| Claude Code — generate configs without a running Designer | ConsoleMCP |
| Analyzing existing projects, auditing configurations | ConsoleMCP |
| Batch-building or generating solutions from specifications | ConsoleMCP |
Both servers can be installed side by side. They register as separate MCP servers and do not conflict.
Exchange Folder
Several AI Designer 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 |
|---|---|---|
Exchange/<SolutionName>-json/ | get_export_solution_files | Solution JSON files from Export (Tags.json, Channels.json, Displays.json, etc.) |
Exchange/Screenshots/ | get_screenshot | Captured images with descriptive filenames (e.g., Screenshot_MainPage_2026-02-15_14-30-00.jpg) |
Exchange/<SolutionName>-json/ | ConsoleMCP | JSON configuration files generated by Claude Code |
This file-based approach keeps MCP responses lightweight and avoids large base64-encoded data in the conversation context.
Security
MCP Category and Update Protection
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
Note: MCP Category protection applies to DesignerMCP only. ConsoleMCP writes plain JSON files — ownership is managed when the engineer imports into Designer.
Solution Authentication
Solutions can have security enabled with user accounts and edit permissions.
How authentication works with AI (DesignerMCP):
- AI opens solution → response includes current username (
Guestby 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.
Note: ConsoleMCP does not have authentication — it operates on JSON files in the Exchange folder. Security is enforced when the engineer imports files into a secured solution in Designer.
Table Types Quick Reference
| 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) |
Syntax Quick Reference
| Context | Syntax | Example |
|---|---|---|
| Scripts (C#, VB, Python) | @ prefix + .Value | @Tag.Tank1/Level.Value |
| Expressions | No prefix, no .Value | Tag.Tank1/Level + 10 |
| Display bindings | @ prefix + .Value | @Tag.Tank1/Level.Value |
| String embedding | Curly braces with @ prefix inside | "Level: {@Tag.Tank1/Level} %" |
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.
Common Workflows
- Creating Tags — "Create a Double tag called TankLevel in the Tanks folder with range 0-100"
- Device Communication — "Connect to a Siemens S7-1500 PLC at 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 Object Usage — "Where is tag Tank1Level used?" AI uses:
designer_action('find_object', 'Tag.Tank1Level')— opens Find Results panel in Designer showing all cross-references. - Deleting Objects Safely — "Delete the old TestDisplay" AI uses:
designer_action('find_object', 'Display.TestDisplay')to check references first, thendelete_objectsif safe. - Renaming with Safe Refactoring — "Rename Tag.OldName to Tag.NewName" AI uses:
rename_objects— all cross-references update automatically (linked by ID, not name). - Applying Changes Without Restart — "Apply my tag changes to the running system" AI uses:
designer_action('hot_reload') - Logging In to Secured Solutions — "Log in as admin" AI prompts for password, then uses:
designer_action('logon', 'admin:password') - Inspecting Solution Configuration — "Export and analyze the current solution" AI uses:
get_export_solution_files()to export JSON files to the Exchange folder, then reads them via the filesystem server for analysis.
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"
AI uses write_objects with dry_run=true to check for errors without committing.
Use Skills for Complex Tasks
"Search for a skill on Modbus TCP configuration"
AI searches for step-by-step guides that prevent common mistakes.
Review Changes
"Show me the recent changes" or "Navigate to the Tags tab"
Troubleshooting
AI Designer 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 AI Designer shows "running" in Claude settings
Filesystem MCP server not connecting
- Verify Node.js is installed (
node --versionin 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
ConsoleMCP: "No active workspace"
- Call
open_workspaceorcreate_workspacefirst
ConsoleMCP: "Control schemas not found"
- Ensure
ControlSchemas.jsonis in the MCP folder alongside ConsoleMCP.exe
ConsoleMCP fails to launch
- Run
dotnet --list-runtimes— install .NET 8.0 from dotnet.microsoft.com
Related Documentation
- AI Integration
- AI Designer In Action
- Claude Skill and MCP Setup — covers AI Designer, ConsoleMCP, and Claude Skill installation
- AI Runtime Connector
- AI ML Integration Connector
In this section...