Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Promote 10.1.5 draft body into live ConsoleMCP Reference

File-based MCP surface for FrameworX. Author solutions as JSON workspace folders with no running Designer.

AI Integration → ConsoleMCP Reference

InfoNew in

Draft preview of the 10.1.5

. Workspace architecture v2 renames the solution tools to *_workspace, adds

additions to ConsoleMCP — compile feedback on create_solution_file and update_solution_file, and

unifies Designer and file-based semantic tools under the same tool names.

the new verify_solution_file tool.

ConsoleMCP Reference → ConsoleMCP Reference (10.1.5 draft)


Info

This is a 10.1.5 draft preview. The tools and parameters described here are not yet released in the currently shipping version. When 10.1.5 ships, this content will be merged into the parent page and this draft retired.


10.1.5 surfaces the compile output that already lives inside a produced .dbsln. Both create_solution_file and update_solution_file now include the shared build block in their response, drawn directly from the error columns of the four *Contents tables inside the solution file. A new tool, verify_solution_file, lets an agent inspect a .dbsln after the fact and confirm that every expected object is present and compiled cleanly.

The JSON shape returned by both paths is defined once on MCP SDK Reference (10.1.5 draft) — the "build Block" section there is the authoritative shape. This page covers only the ConsoleMCP-specific entry points

ConsoleMCP is one of two MCP servers Tatsoft ships for Claude Code. It operates on JSON workspace folders under Public Documents\FrameworX\Exchange\<Name>-json\. Each folder holds the same tables that live inside a .dbsln, one table per file, in the ExportFormat 1.2 envelope. Use ConsoleMCP for batch-build, audit, migration, and specification-driven workflows where a live Designer is not required.

See Claude Code MCP Setup for install steps. Use MCP SDK Reference for the list of MCP server executables and their transports.

Table of Contents
maxLevel2
minLevel2
stylenone


create_solution_file / update_solution_file — build block

Both tools already return per-file import attribution and the headless SolutionCreator.exe log. In 10.1.5 they additionally carry the shared build block, so the agent sees compile status for every Script and Display in the produced solution without a second call

Vocabulary vs. DesignerMCP

Both servers expose parallel operations with deliberately distinct tool names so the mode is always obvious in a transcript.

DesignerMCP (live IDE)ConsoleMCP (file-based)Target
list_solutionslist_workspaces.dbsln vs. workspace folder
open_solutionopen_workspaceActivate the target for the session.
create_solutioncreate_workspaceCreate a new target from the default template.
get_solution_infoget_workspace_infoReturn environment context for the active target.

Tools with no mode-specific vocabulary keep the same name in both servers: write_objects, get_objects, delete_objects, rename_objects, browse_object_model, get_table_schema, list_elements, list_dynamics, list_protocols, search_docs, get_solution_export_files, search_uns, import_graph_model, export_graph_model, generate_uns_visual.

Workspace Folder Layout

A workspace folder holds one JSON file per table, using the ExportFormat 1.2 envelope. ConsoleMCP creates the folder under Public Documents\FrameworX\Exchange\<Name>-json\ and keeps a session log in mcp_session_log.json alongside the tables.

Code Block
languagetextjs
<Name>-json/{
  UnsUserTypes.json
  UnsTags.json
  UnsAssetTree.json
  UnsEnumerations.json
  DisplaysList.json
  DisplaysSymbols.json
  AlarmsItems.json
  DevicesChannels.json
  ...
  Exchange/
    Graphs/
      <Name>_UNS_Graph.rj
    Visualizations/
      <Name>_UNS_Visual.md
  mcp_session_log.json"solution":  "C:\\Solutions\\Foo.dbsln",
  "exitCode":  0,
  "imported":  { "created": 12, "modified": 0, "skipped": 0, "errors": 0 },
  "build": {
    "objects": [
      { "type": "Script",  "name": "Line1_Cycle", "status": "ok",    "diagnostics": [], "elapsedMs": 42 },
      { "type": "Display", "name": "MainPage",    "status": "error",
        "diagnostics": [ { "line": 18, "msg": "Cannot implicitly convert type 'string' to 'int'" } ],
        "elapsedMs": 91 }
    ],
    "summary": { "built": 11, "failed": 1, "skipped": 0, "timestamp": "2026-04-21T16:02:11Z" }
  }
}
      

Source of the data

A .dbsln is a SQLite database. Each of the four affected tables — ScriptsTasks, ScriptsClasses, ScriptsExpressions, DisplaysList — has a companion *Contents table (ScriptsTasksContents, ScriptsClassesContents, ScriptsExpressionsContents, DisplaysListContents) whose error columns hold the compile result written at build time by SolutionCreator.

ConsoleMCP queries those columns after the build completes and assembles the build block from the result. This is NOT stdout parsing of the SolutionCreator log — it is a direct read of the compiled result persisted inside the produced .dbsln. The same data the Designer displays when it opens the solution is the data ConsoleMCP reports back to the agent.

A non-zero summary.failed does not by itself fail the tool call. The .dbsln is still produced and the agent can inspect build.objects[] to decide whether to correct the workspace and re-run.


verify_solution_file

Reads an existing .dbsln and returns two things: a per-table Name inventory of every object in the solution, and the shared build block drawn from the *Contents tables. Optionally diffs the inventory against a caller-supplied list of expected object names.

This is a verification tool, not a read tool. It returns Names only — no row contents, no field values. Use get_objects to read row contents.

Overlay semantics apply on import. When you run import_graph_model, the overlay is written as UnsUserTypes-graph-<ts>.json next to the canonical file. Canonical files are never overwritten until you explicitly build the .dbsln.

Tool Catalog (17 tools)

CategoryTools
Workspace managementlist_workspaces, open_workspace, create_workspace, get_workspace_info
Build and deploycreate_solution_file, update_solution_file
Object operationswrite_objects, get_objects, delete_objects, rename_objects, browse_object_model
Schema queriesget_table_schema, list_elements, list_dynamics, list_protocols
Semantic and ontologysearch_uns, import_graph_model, export_graph_model, generate_uns_visual
Documentationsearch_docs, get_solution_export_files

Note. ConsoleMCP does NOT expose promote_retentive_attributes. That tool mutates runtime state via the live Designer pipe and is intentionally excluded from the file-based surface.

create_solution_file

Turns a workspace into a new .dbsln. ConsoleMCP spawns SolutionCreator.exe headlessly and waits for completion.

Code Block
languagetext
createverify_solution_file(
  solution_name="Foo",
  workspace="C:\\Users\\Public\\Documents\\FrameworX\\Exchange\\Foo-json",
  template="HeaderLayout",
  platform="Windows",
  output_folder=null
):   string,                              // .dbsln base name or absolute path
  expected_names:  { <TableType>: [<Name>, ...], ... }  // optional diff input
) -> {
  solution:    "<path>",
  inventory:   { <TableType>: [<Name>, ...], ... },
  build:       <shared build block>,
  missing:     { <TableType>: [<Name>, ...], ... },     // present only when expected_names supplied
  unexpected:  { <TableType>: [<Name>, ...], ... }      // present only when expected_names supplied
}
      
ParameterRequiredDefaultNotes
solution_nameYesName of the The .dbsln to produce.
workspaceNoActive workspaceAbsolute path to the -json/ folder. Falls back to the workspace set by open_workspace or create_workspace.
templateNoHeaderLayoutTemplate used when materializing the new .dbsln.
platformNoWindowsPlatform flag passed to SolutionCreator.
output_folderNoStandard Solutions folderAbsolute path. Use when the .dbsln must land outside the default Solutions folder.

Response includes the produced .dbsln path, exit code, per-file import attribution (created, modified, skipped, errors), and the headless log.

open. Either a base name resolved against the standard Solutions folder or an absolute path ending in .dbsln.
expected_namesNoObject shaped as { table_type: ["Name1", "Name2", ...], ... }. When supplied, the response includes missing[] (expected but not found) and unexpected[] (found but not expected) per table type.

What it opens

verify_solution_file opens only current-version .dbsln files. It performs a direct SQLite read — it does not go through the DbslnExplorer pipeline and does not handle legacy formats, password-protected files, or pre-migration schema versions. A .dbsln that does not match the current schema version returns SOLUTION_VERSION_MISMATCH; the caller is expected to upgrade the solution through Designer first.

Example

Code Block
languagejs

verify

update_solution_file

Refreshes an existing .dbsln in place from a workspace. Auto-backs up the target .dbsln with keep-last-3 retention, then applies the workspace JSON files with always-upsert semantics (existing objects with the same name are overwritten by the workspace version).

Code Block
languagetext

update_solution_file(
  solution_name = "Foo",
  expected_names = {
    "ScriptsTasks":   ["Line1_Cycle", "Line2_Cycle"],
    "DisplaysList":   ["MainPage", "AlarmsPage"],
    "UnsTags":        ["Plant1/Temperature", "Plant1/Pressure"]
  }
)

# Response (abbreviated)
{
  "solution": "C:\\Solutions\\Foo.dbsln",
  "inventory": {
    "ScriptsTasks":   ["Line1_Cycle", "Line2_Cycle"],
  workspace="C:\\Users\\Public\\Documents\\FrameworX\\Exchange\\Foo-json"
)
      

The solution argument is an absolute path ending in .dbsln and must point to an existing file. Backup filename pattern: <Name>.dbsln__backup__<timestamp>.backup. Response mirrors create_solution_file and includes the backup path.

  "DisplaysList":   ["MainPage"],
    "UnsTags":        ["Plant1/Temperature", "Plant1/Pressure", "Plant1/Flow"]
  },
  "build": { "objects": [...], "summary": { "built": 2, "failed": 0, "skipped": 0, "timestamp": "..." } },
  "missing": {
    "DisplaysList": ["AlarmsPage"]
  },
  "unexpected": {
    "UnsTags": ["Plant1/Flow"]
  }
}
      

An agent that writes a workspace to a specification typically pairs create_solution_file or update_solution_file with verify_solution_file using the spec's expected-names list. The pair catches both build breaks (via build.summary.failed) and inventory drift (via missing[] and unexpected[]).


Error Codes (new in 10.1.5)

Interop with DesignerMCP

DesignerMCP's open_solution and create_solution accept an optional from_workspace parameter. When supplied, Designer opens or creates the target .dbsln, auto-backs up (3-file retention), and imports every *.json file from the workspace folder using the same upsert semantics as update_solution_file. Use this to apply a workspace authored in ConsoleMCP to an existing or fresh solution from inside a live Designer session.

  • open_solution(name, from_workspace="C:\\Path\\Foo-json")
  • create_solution(name, template="HeaderLayout", from_workspace="C:\\Path\\Foo-json")

A missing folder, an empty folder, or a pipe exception becomes a warning. The open or create still succeeds. The response carries a workspaceImport section with per-file results.

Error Codes

CodeWhereMeaning
NOSOLUTION_ACTIVEVERSION_WORKSPACEObject and schema toolsCall open_workspace or create_workspace first.MISMATCHverify_solution_fileThe target .dbsln is not a current-version file. Upgrade through Designer first; verifyWORKSPACE_NOT_FOUNDopen_workspace, update_solution_fileFolder does not exist at the given absolute pathmigrate.
SOLUTION_NOT_FOUNDENCRYPTEDupdateverify_solution_fileTarget The target .dbsln is password-protected. verify_solution_file does not exist at the given absolute path.SOLUTION_CREATOR_NOT_FOUNDaccept credentials — use the Designer session for protected files.
INVALID_EXPECTED_NAMESverifycreate_solution_file, update_solution_fileSolutionCreator.exe is not in the expected location next to ConsoleMCP.dll.
INVALID_SCOPEsearch_unsScope folders is runtime-only and not supported on the file-based surface.
expected_names is not shaped as { table_type: [names], ... }. Response includes an examples array with the correct shapeCONTROL_SCHEMAS_NOT_FOUNDSchema toolsControlSchemas.json missing from the MCP folder alongside ConsoleMCP.dll.


In this section...

Page Tree
root@parent