Advanced command-line integration for FrameworX with Claude Code.
AI Integration | Claude Skill and MCP Setup | Claude Code MCP Setup


Overview

Claude Code connects to FrameworX from the terminal — no GUI needed. Two MCP servers are available depending on your workflow:

AI Designer (DesignerMCP) connects Claude Code to the live Designer IDE on the same machine. Every tool call produces immediate visual changes — the same co-pilot experience as Claude Desktop, but driven from the command line. Use this when you want live building with Designer open on your screen.

AI Console (ConsoleMCP) connects Claude Code to a file-based engineering workflow. No running Designer needed — Claude generates JSON configuration files following the ExportFormat 1.2 standard. Use create_solution_file (for a new solution) or update_solution_file (to update an existing .dbsln in place with auto-backup) to produce or refresh a deployable .dbsln — or open the workspace inside Designer. Use this for analyzing existing projects, generating solutions from specifications, or batch-building.

You can install both. They register as separate MCP servers and do not conflict.

Scenario

Use

Claude Code on the same Windows machine as Designer — want live co-pilot

AI Designer

Generate configs without a running Designer

AI Console

Analyze existing projects, audit configurations

AI Console

Batch-build or generate solutions from specifications

AI Console

Interactively migrate solutions from other platforms

AI Designer

Batch/background migration from other platforms

AI Console

Two Vocabularies, One Pattern

The two modes use parallel-but-distinct tool names so it is always obvious which mode you are in:

AI Designer (live IDE)

AI Console (file-based)

list_solutions

list_workspaces

open_solution

open_workspace

create_solution

create_workspace

get_solution_info

get_workspace_info

AI Designer operates on .dbsln files (the live solution). AI Console operates on -json/ workspace folders that hold the same configuration as separate JSON files. The create_solution_file and update_solution_file tools (AI Console) and the from_workspace parameter on AI Designer's open_solution / create_solution are the bridges between the two.

Prerequisites


AI Designer Setup (Live IDE Co-Pilot)

This connects Claude Code to the running FrameworX Designer IDE on the same Windows machine. Claude Code launches DesignerMCP directly as a subprocess — the simplest possible setup.

Step 1: Add the MCP Server

Open a terminal and run:

claude mcp add FrameworX-Designer -- dotnet "C:\Program Files\Tatsoft\FrameworX\fx-10\net8.0\DesignerMCP.dll"

This saves the configuration at project level by default. For other scopes:

  • -s project — saves to .mcp.json in the project root (shared via version control)
  • -s user — saves to global/user-level config, available in all projects

For a global install:

For a global install (works in any folder):

claude mcp add -s user FrameworX-Designer -- dotnet "C:\Program Files\Tatsoft\FrameworX\fx-10\net8.0\DesignerMCP.dll"

Step 2: (Optional) Add the Filesystem Server

The filesystem MCP server allows Claude to directly read files produced by get_screenshot and get_solution_export_files. Without it, those tools still work but you must manually provide the files. All other Designer tools work independently.

The filesystem server requires Node.js — install from https://nodejs.org if not already present.

 claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem "C:\Users\Public\Documents\FrameworX\Exchange"

Step 3: Verify

claude mcp list

You should see FrameworX-Designer (and filesystem if added) in the list.

Alternative: Manual Configuration

If you prefer editing config files directly, add to your .mcp.json or Claude Code MCP settings:

{
  "mcpServers": {
    "FrameworX-Designer": {
      "command": "dotnet",
      "args": [
        "C:\\Program Files\\Tatsoft\\FrameworX\\fx-10\\net8.0\\DesignerMCP.dll"
      ],
      "transport": "stdio"
    },
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "C:\\Users\\Public\\Documents\\FrameworX\\Exchange"
      ]
    }
  }
}

Claude Code handles tool authorization inline, it prompts on first use and remembers the decision for the session. No pre-configuration of permissions is needed.

AI Designer — from_workspace parameter (TDEV-1179)

Both open_solution and create_solution accept an optional from_workspace parameter. When supplied, all *.json files in the workspace folder are imported into the solution after it is opened or created. Use this to apply a workspace authored in AI Console to an existing or fresh solution from inside AI Designer.

  • open_solution(name, from_workspace="C:\\Path\\Foo-json") — opens the existing .dbsln, auto-backs it up (3-file retention), then imports the workspace files using always-replace upsert semantics.
  • create_solution(name, template="HeaderLayout", from_workspace="C:\\Path\\Foo-json") — creates a fresh .dbsln from the template, then imports the workspace files.

Missing folder, empty folder, or pipe exception become warnings — the open / create still succeeds. The response includes a workspaceImport section with per-file results.

AI Designer — designer_action visual targeting (TDEV-1178)

Beyond the existing navigate / find_object / runtime control actions, three new actions point the user's attention at a specific object:

Action

Purpose

Example

select_row

Select a specific row in a config grid by name and scroll it into view. Visual only, no mutation.

designer_action('select_row', 'UnsTags.Plant1/Temperature')

scroll

Alias of select_row. Same behavior.

designer_action('scroll', 'UnsTags.Plant1/Temperature')

expand

Expand a tree node in the AssetTree, select it, and scroll into view. V1 supports the AssetTree only.

designer_action('expand', 'AssetTree.Plant1/Motor1')


AI Console Setup (File-Based Engineering)

AI Console connects Claude Code to FrameworX without a running Designer. Claude generates JSON configuration files in a workspace folder that is later turned into a deployable .dbsln via the create_solution_file tool, or refreshed in place on an existing .dbsln via update_solution_file (auto-backup, always-upsert) — or by opening the workspace from inside Designer.

Step 1: Add the MCP Server

Local machine (stdio):

claude mcp add FrameworX-Console -- dotnet "C:\Program Files\Tatsoft\FrameworX\fx-10\net8.0\ConsoleMCP.dll"

For a global install (works in any folder):

claude mcp add -s user FrameworX-Console -- dotnet "C:\Program Files\Tatsoft\FrameworX\fx-10\net8.0\ConsoleMCP.dll"


Step 2: Verify

claude mcp list

You should see FrameworX-Console in the list.

Alternative: Manual Configuration

Local (stdio)
{
  "mcpServers": {
    "FrameworX-Console": {
      "command": "dotnet",
      "args": [
        "C:\\Program Files\\Tatsoft\\FrameworX\\fx-10\\net8.0\\ConsoleMCP.dll"
      ],
      "transport": "stdio"
    }
  }
}

How the File-Based Workflow Works

  1. Claude calls create_workspace or open_workspace — creates or opens a <name>-json/ workspace folder under Documents/FrameworX/Exchange/.
  2. Claude calls get_table_schema to fetch column definitions, then write_objects to generate JSON files.
  3. Each JSON file follows the ExportFormat 1.2 envelope structure.
  4. Claude calls create_solution_file(solution_name, workspace=...) to produce a fresh .dbsln, or update_solution_file(solution=..., workspace=...) to refresh an existing one (auto-backup kept, always-upsert semantics). Both spawn SolutionCreator.exe headlessly.
  5. (Alternate path) Open the workspace from inside Designer using DesignerMCP's open_solution(name, from_workspace=...) — Designer auto-backs up the target solution and imports the workspace files in place.

Available AI Console Tools (17)

Category

Tools

Workspace management

list_workspaces, open_workspace, create_workspace, get_workspace_info

Build & deploy

create_solution_file, update_solution_file

Object operations

write_objects, get_objects, delete_objects, rename_objects, browse_object_model

Schema queries

get_table_schema, list_elements, list_dynamics, list_protocols

Documentation

search_docs, get_solution_export_files

AI Console uses *_workspace tool names (file-based JSON folders). AI Designer uses *_solution (live Designer IDE). The underlying operations are parallel but the vocabulary distinguishes the two modes.

create_solution_file — turn a workspace into a new .dbsln

Once a workspace has been authored with write_objects, call create_solution_file to produce the deployable .dbsln. The tool invokes SolutionCreator.exe headlessly and waits for it to finish.

create_solution_file(
  solution_name="Foo",
  workspace="C:\\Users\\Public\\Documents\\FrameworX\\Exchange\\Foo-json",
  template="HeaderLayout",
  platform="Windows"
)

If workspace is omitted, the active workspace folder set by open_workspace / create_workspace is used. Default template is HeaderLayout, default platform is Windows, default output folder is the standard Solutions folder. The response includes the produced .dbsln path, exit code, per-file import attribution (created / modified / skipped / errors), and the headless log.

update_solution_file — refresh an existing .dbsln in place

Use update_solution_file when the target .dbsln already exists and you want to apply the workspace changes to it rather than produce a new file. The tool auto-backs up the existing .dbsln (keep-last-3 retention, <name>.dbsln__backup__<timestamp>.backup), then spawns SolutionCreator.exe headlessly. SolutionCreator detects the existing target and switches to open-existing mode. Workspace JSON files are imported via SolutionDB.ImportJsonFiles using always-upsert semantics — existing objects with the same name are overwritten by the workspace version.

update_solution_file(
  solution="C:\\Solutions\\Foo.dbsln",
  workspace="C:\\Users\\Public\\Documents\\FrameworX\\Exchange\\Foo-json"
)

The solution argument must be an absolute path ending in .dbsln to an existing file; the folder and filename are decomposed internally. If workspace is omitted, the active workspace folder is used. The response includes the target path, the backup path, exit code, per-file import attribution, and the headless log.


AI Designer Setup (Split Host / HTTP)

Use this variant when Claude Code runs on a different machine from the FrameworX Designer. Examples: Claude Code on a Mac terminal driving a Designer inside a Parallels VM, or a laptop connecting to a shared Designer on the LAN.

The Windows machine runs DesignerMCPHttp.exe as a local HTTP MCP server (default port 10150). Claude Code uses the mcp-remote bridge (an npm package) to forward MCP calls to that HTTP endpoint.

Prerequisites. FrameworX Designer installed on the Windows machine. Node.js LTS installed on the Claude Code host (for mcp-remote). Port reachable from the Claude Code host.

Step 1: Start DesignerMCPHttp on the Windows machine

On the Windows machine where FrameworX is installed, open File Explorer and navigate to Documents\FrameworX\Utilities, then double-click StartDesignerMCPHttp.bat. A console window confirms the server is listening on port 10150. Leave it running.

Step 2: Add the MCP Server on the Claude Code host

claude mcp add FrameworX-Designer -- npx -y mcp-remote http://127.0.0.1:10150/mcp

Use 127.0.0.1 for a local VM, or the LAN IP of the Windows box (for example, 192.168.1.50). For a global install add -s user.

To override the port (when DesignerMCPHttp.json has a custom ListenPort), substitute in the URL. The default 10150 matches the shipped config.

Step 3: Verify

claude mcp list

You should see FrameworX-Designer in the list.

Make sure port 10150 is open in Windows Firewall on the Designer machine. If Claude Code runs on the same host as the VM (Parallels / VMware), configure port forwarding from host to guest for 10150.


AI Console Setup (Split Host / HTTP)

Same split-host pattern as the Designer HTTP variant, applied to a file-based workspace. Use this when Claude Code runs on a different machine than the one hosting the workspace folder, or when you want a shared ConsoleMCP server that multiple Claude Code sessions connect to.

Prerequisites: same as the Designer Split Host / HTTP section above. Node.js LTS must be installed on the Claude Code host because mcp-remote is an npm package.

The Windows machine runs ConsoleMCPHttp.exe on default port 10151.

Step 1: Start ConsoleMCPHttp on the Windows machine

Run ConsoleMCPHttp.exe manually, or install it as a Windows Service for unattended operation. Port and API key live in ConsoleMCPHttp.json alongside the executable (default ListenPort: 10151).

Step 2: Add the MCP Server on the Claude Code host

claude mcp add FrameworX-Console -- npx -y mcp-remote http://127.0.0.1:10151/mcp

Replace 127.0.0.1 with the LAN IP of the workspace host when they are on different machines.

Step 3: Verify

claude mcp list

The workspace folder must be reachable from the ConsoleMCPHttp host, not from the Claude Code host. The workspace path on the ConsoleMCP server side is what matters for open_workspace and create_workspace path resolution.


AI Runtime Setup (Live Runtime Reader, stdio)

AI Runtime (RuntimeMCP) connects Claude Code to a running FrameworX TServer to read live tag values, browse the operational namespace, inspect alarms, and query the historian. Use this when you need to answer questions about what is happening in a running solution, as opposed to configuring it. Same machine as the runtime.

Step 1: Add the MCP Server

claude mcp add FrameworX-Runtime -- dotnet "C:\Program Files\Tatsoft\FrameworX\fx-10\net10.0\RuntimeMCP.dll" /Host:localhost /Port:3101 /UserName:guest /Password:""

Runtime connection parameters:

  • /Host: TServer host (default localhost).
  • /Port: TServer port (default 3101).
  • /UserName and /Password: runtime login (use guest with empty password for anonymous access).

Add -s user for a global install. 10 tools ship: runtime_get_value, runtime_browse_uns, runtime_search_uns, runtime_get_object_context, runtime_find_by_iri, runtime_list_by_type, runtime_get_active_alarms, runtime_query_alarm_history, runtime_get_tag_history, runtime_get_info.

Step 2: Verify

claude mcp list

AI Runtime Setup (Split Host / HTTP)

Use this when Claude Code and the running FrameworX TServer are on different machines. Example: an operations console on a laptop connecting to a production TServer on the plant floor.

Prerequisites: same as the Designer Split Host / HTTP section above. Node.js LTS must be installed on the Claude Code host because mcp-remote is an npm package.

The Windows machine runs RuntimeMCPHttp.exe on default port 10120. That HTTP server holds the runtime connection to TServer. Claude Code bridges via mcp-remote.

Step 1: Configure and start RuntimeMCPHttp on the Runtime machine

Edit RuntimeMCPHttp.json alongside the executable to set the target TServer connection (Runtime Host / Port / Username / Password) and the MCP listen port (default 10120). Start RuntimeMCPHttp.exe or install RuntimeMCPHttpService as a Windows Service.

Step 2: Add the MCP Server on the Claude Code host

claude mcp add FrameworX-Runtime -- npx -y mcp-remote http://127.0.0.1:10120/mcp

Replace 127.0.0.1 with the LAN IP of the Runtime machine. To override the port when RuntimeMCPHttp.json has a custom ListenPort, substitute in the URL.

Step 3: Verify

claude mcp list

The TServer connection is configured on the RuntimeMCPHttp side, not on the Claude Code side. Claude Code only needs to reach the RuntimeMCPHttp port. The HTTP server handles the downstream TServer link.

Inside RuntimeMCPHttp.json, the TServer port (default 3101) is separate from the MCP listen port (default 10120). Two ports, two roles: MCP bridge = Claude-side, TServer = runtime-side.


write_objects — three input shapes (TDEV-1178)

The write_objects tool's data parameter accepts three shapes (in both AI Designer and AI Console). Pick the one that matches how you are authoring:

Shape

When to use

Example

JSON string literal

Backwards-compatible. Required when the call is built as a string concatenation.

write_objects(table_type='UnsTags', data='[{"Name":"Foo"}]')

Parsed JSON array

Single-table without JSON-inside-JSON escaping. Preferred when authoring plan files.

write_objects(table_type='UnsTags', data=[{"Name":"Foo"}])

Parsed JSON object

Multi-table without escaping. Preferred for batched plans.

write_objects(data={"tables":[{"table_type":"UnsTags","data":[...]}]})


Test Your Setup

AI Designer test: Open Designer, then ask Claude Code: "Create a new FrameworX solution with a bottling line" — Claude should call create_solution and start building in the live IDE.

AI Console test: Ask Claude Code: "Create a new FrameworX workspace with 10 motor tags and Modbus communication, then build it" — Claude should call create_workspace, fetch schemas, write JSON files, then call create_solution_file to produce the .dbsln.


Troubleshooting

Symptom

Likely Cause

Fix

claude mcp list doesn't show FrameworX

Add command failed or wrong scope

Re-run claude mcp add with -s user for global install

DesignerMCP or ConsoleMCP won't start

.NET 8 runtime missing

Run dotnet --list-runtimes — install from dotnet.microsoft.com

"No active workspace" in AI Console

Workspace not opened

Call open_workspace or create_workspace first

"Control schemas not found" in AI Console

Missing data file

Ensure ControlSchemas.json is in the MCP folder alongside ConsoleMCP.dll

create_solution_file or update_solution_file returns SOLUTION_CREATOR_NOT_FOUND

SolutionCreator.exe not in expected location

Verify FrameworX is installed and the .NET 4.8 binaries are present alongside ConsoleMCP.dll's parent folder

HTTP connection refused (remote)

Firewall or wrong IP

Open port 10130, verify IP address

Claude web-searches for FrameworX basics

Skill not loaded

Verify SKILL.md is in ~/.claude/skills/frameworx-industrial-platform/


Quick Reference: Config Files

File

Location

Claude Code MCP (project-level)

.mcp.json in your project root

Claude Code MCP (user-level)

~/.claude.json

Claude Code skills

~/.claude/skills/frameworx-industrial-platform/SKILL.md

AI Console workspace

Public Documents/FrameworX/Exchange/<WorkspaceName>-json/


Next Steps

  • Back to main setup: MCP and Claude Setup
  • See it in action: AI Designer In Action
  • Technical reference: AI Designer Connector
  • Download Designer: FrameworX (free evaluation, unlimited tags, all features)

Community

Questions or feedback: