This page provides auto-updatable AI knowledge assets for the FrameworX Designer MCP Server.
The Designer checks this page once per session (background, non-blocking) and downloads any updated assets automatically.

How it works: On startup, the MCP Server reads local cached files. In the background, it fetches this page, compares the table below against its local versions.json, and downloads any assets with a newer version. Files are validated (must be valid JSON) and written atomically. Hot-reload happens immediately — no server restart needed.

Knowledge Assets

The table below lists all available AI knowledge assets. To publish an update:

  1. Prepare the updated JSON file (must be valid JSON).
  2. Upload it as an attachment to this Confluence page.
  3. Update the Version number in the table row (must be higher than the previous version).
  4. Update the Download link to point to the new attachment.


AssetVersionProductVersionDownloadDescription
Documentation1.010.1.3Documentation.jsonOffline documentation index — page titles, sections, tags, content snippets for search_docs tool.
Context1.010.1.3ContextDocument.jsonSolution context document — architecture, syntax rules, display specs. Overrides the hardcoded C# baseline in SolutionTools.

Column Reference

ColumnRequiredDescription
AssetYesAsset key. Must match exactly: Documentation or Context (case-insensitive). Unknown keys are silently skipped (forward compatibility).
VersionYesSemantic version string (e.g., 1.0, 1.1, 2.0.1). Compared segment-by-segment numerically. The client downloads only if server version > local version.
ProductVersionNoMinimum product version required (e.g., 9.2). If set, clients running an older product version skip this asset. Leave empty for universal compatibility.
DownloadYesLink (<a href="...">) to the attachment file. The parser extracts the first href in this cell. Relative URLs are resolved against https://docs.tatsoft.com.
DescriptionNoHuman-readable notes. Not parsed by the client — informational only.

File Specifications

Documentation.json

Offline documentation index used by the search_docs MCP tool.:

Section types follow the Diataxis framework: learning, concept, task, reference, example, support.

Page fields:

ContextDocument.json

Solution context document that overrides the hardcoded C# baseline in SolutionTools.cs. This allows updating the AI's understanding of FrameworX architecture, syntax rules, and display specifications without a product release.

The context document structure mirrors what SolutionTools.GetSolutionContext() returns. When this file exists, SolutionTools.GetContextRefreshPayload() reads from it instead of the hardcoded C# object. The version field at the root is used for tracking.

Client Behavior

File Locations (search order — first found wins)

PriorityLocationAccessSource
1ProductPaths.AIKnowledge/Read-WriteDownloaded by auto-updater (or manually placed)
2ProductPaths.Binaries/MCP/Read-OnlyBundled baseline from product installer

Update Flow

  1. Startup (synchronous, instant)AIKnowledgeUpdater.Initialize() reads local files only. Never touches the network.
  2. Background check (fire-and-forget)Task.Run(() => CheckForUpdatesAsync()). Single attempt per process lifetime. No retries, no polling.
  3. Fetch this page — HTTP GET with 5-second timeout.
  4. Parse table — Finds the first <table>, matches header columns by keyword.
  5. Compare versions — Checks each asset against versions.json in the cache folder.
  6. Download — Fetches attachment URL, validates JSON, atomic write (temp file → rename).
  7. Hot-reloadDocumentationService.ReloadCache() or LoadContextDocument(). No server restart needed.

Opt-Out

Users can disable update checking by placing a settings.json file in ProductPaths.AIKnowledge/:

<ac:structured-macro ac:name="code"> <ac:parameter ac:name="language">json</ac:parameter> ac:plain-text-body{ "checkForUpdates": false }</ac:plain-text-body> </ac:structured-macro>

Failure Handling

Diagnostics

To check update status from the MCP server, the AIKnowledgeUpdater.GetDiagnostics() method returns: