Repository navigation
Sync ako/mxcli: agent documents keep Agent Editor's settings, published MCP services in MDL, catalog mapping refs - #1781
Merged
Merged
Conversation
…SON structure (#1861) A flow that applies an import or export mapping (import/export action, REST or web service call) and a mapping built on a JSON structure made no refs row, so refs, show callers and orphan checks reported mappings and structures in use as unreferenced. On FactoryManagement (11.16) 54 of 55 import mappings, 42 of 44 export mappings and 65 of 66 JSON structures had no inbound edge. refs gains mapping_call (flow -> IMPORT_MAPPING / EXPORT_MAPPING, a caller kind) and structure (mapping -> JSON_STRUCTURE) edges, and an import/export activity's ActionRef names its mapping. Schema 35. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
alter agent, alter knowledge base and create or modify of an agent, AI model or knowledge base rebuilt Contents from mxcli's typed fields, so everything else Agent Editor stores was lost: per tool userAccessApproval, displayTitle and displayDescription; the agent's enableBackendStreaming, enableUIStreaming and selectedModel; a knowledge base tool's minSimilarity. The knowledge base's Portal name was written as "", and on create or modify so were the model's type and name. create or modify agent also ignored a tool block's Document (the tool ran no microflow), compared ToolType to "mcp" where the visitor sets "MCP" (MCP service tools lost their service), wrote every tool with an empty id, and blanked the entity reference's documentId. - Backend: a rewrite writes onto the stored Contents. Unmodelled keys keep their value and position; tool entries pair by id; a cleared modelled key stays cleared; a zero value the stored document never held is not added. The output keeps the stored layout (Agent Editor 2.6 indents by two spaces, older documents are compact) and the creating extension. - Executor: create and alter share one tool builder, which resolves a microflow tool's Document and gives a new tool a fresh id. create or modify carries the stored tool ids, the entity documentId and the Portal-picked model and knowledge base names. Measured on Studio Pro 11.16 projects (mx-test-projects/ICXGraphPilot and FactoryManagement): describe -> exec of all 34 agent documents now writes nothing, byte for byte; alter changes only the property it sets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oK82ttaGzay5CwiC2V7cf
…#2022) Agent Editor 2.2+ stores human-in-the-loop and streaming settings in the agent document; measured on Studio Pro 11.12-11.16 projects: - tool / mcp service block: UserAccessApproval (HiddenForUser | VisibleForUser | UserConfirmationRequired), DisplayTitle, DisplayDescription - knowledge base block: MinSimilarity, IsVisible - agent: EnableBackendStreaming, EnableUIStreaming (on the agent, not on the model, which #2022 assumed) Keys are the document property names. describe prints them, alter agent ... set takes the streaming switches, and alter ... add takes the block keys. On create or modify a setting the statement leaves out keeps its stored value, so a script from before these keys does not reset them. describe also prints an MCP tool as an mcp service block again: it compared the tool type to "mcp" where Studio Pro stores "MCP". PROPOSAL_agent_document_support.md said approval was runtime-only; that section is marked superseded with the measurement. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oK82ttaGzay5CwiC2V7cf
# Conflicts: # CHANGELOG.md
…ion (#2020) The MCP Server module 3.x-4.x publishes through a startup microflow that calls CreateMCPServer, AddTool and AddPrompt; MDL already writes these as call java action, but no skill said how. The new mcp-server skill gives the authentication, tool, prompt and initialize microflows with the parameters and return types read from module 3.0.0, 4.0.0 and 4.2.2. Measured: the example, run against a FactoryManagement copy (MCP Server 4.0.0, Mendix 11.16), passes check --references and exec, and mx check reports the same four pre-existing CE1613 errors as the untouched copy. Model configuration (MCP Server 5.x) still needs a Studio Pro sample. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oK82ttaGzay5CwiC2V7cf
The embedded-skills test caps a description at 600 characters, and the conformance gate refuses the deprecated show spelling (MDL-DEPR002). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oK82ttaGzay5CwiC2V7cf
# Conflicts: # .claude/skills/mendix/agents/SKILL.md # CHANGELOG.md
…configuration Measured on Agent Builder Starter App 2.2.0 (MCP Server 5.4.0, Agent Editor 2.6.0): CreateMCPServer gains AuthorizationServerUrl and Scopes, AddTool gains Title, and AgentEditorCommons' initPublishedMCPService calls those same actions for every Published MCP service document. The skill now maps each runtime parameter onto the document key. Its example also runs on the 5.4 copy: check --references and exec pass, mx check reports the control's three CE0642 errors and nothing new. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oK82ttaGzay5CwiC2V7cf
…me-config # Conflicts: # CHANGELOG.md
# Conflicts: # CHANGELOG.md
# Conflicts: # .claude/skills/mendix/agents/SKILL.md # CHANGELOG.md
fix(agents): a rewrite keeps what Agent Editor stored in the document
… user From a live run on ako/ChatV2 (MCP Server 5.4.0): tools run as the authenticated user, and CreateMCPServer throws when the application root URL is unset, which mxcli run --local leaves for the stock localhost URL and which then stops the runtime. The example now gives each Java action call a custom error handler (log, return false / return empty), which also clears the four CONV013 warnings it raised. Verified on a fresh Agent Builder Starter App copy: check --references, exec, lint with no warnings on the example, mx check 0 errors as the untouched copy. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oK82ttaGzay5CwiC2V7cf
…nt-settings # Conflicts: # .claude/skills/mendix/agents/SKILL.md # CHANGELOG.md
MCP Server 5.x adds model configuration: an Agent Editor 2.6 document, agenteditor.publishedMCPService, that AgentEditorCommons starts at startup through MCPServer.CreateMCPServer and AddTool. MDL had no way to write or read it. create [or modify] / alter (set, add tool, drop tool) / describe / list / drop published mcp service, with tool blocks (Microflow, Description, Title, Schema) and the authentication settings (AuthenticationEnabled, AuthenticationMicroflow, AuthorizationServerUrl, Scopes). ServerName is optional: Studio Pro stores it without showing it, a new document gets its own name and a duplicate keeps the original's, so create defaults it and create or modify keeps it. A rewrite writes onto the stored Contents: tools pair by uuid, keys mxcli does not model stay, Agent Editor's indented layout and key order are kept (authenticationMicroflow last, documentId first). check reports what CreateMCPServer would refuse (MDL-MCPSERVER01). Measured on Studio Pro 11.16, Agent Editor 2.6.0, MCP Server 5.4.0 (mx-test-projects/AgentBuilderStarterApp): describe -> exec of both stored services writes nothing; alter changes only the key it sets; a new authenticated service re-execs unchanged and mx check reports no new errors against an untouched copy. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oK82ttaGzay5CwiC2V7cf
docs(skills): publish an app as an MCP server with runtime configuration (#2020)
…nt-settings # Conflicts: # CHANGELOG.md
…d-mcp-service # Conflicts: # .claude/skills/mendix/agents/SKILL.md # CHANGELOG.md
feat(agents): publish the app's microflows as an MCP server (#2020)
fix(catalog): reference the mappings a flow applies and a mapping's JSON structure (#1861)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Syncs
ako/mxcli:maininto upstream: 8 commits since #1777 — agent documents round-trip byte for byte, new MDL for Agent Editor settings and published MCP services, and catalog refs for mappings.Agents: a rewrite keeps what Agent Editor stored
alter agent,alter knowledge baseandcreate or modifyof an agent, AI model or knowledge base rebuilt the document's Contents from mxcli's typed fields, so everything else Agent Editor stores was lost: per-tool approval and display text, the agent's streaming switches and selected model, a knowledge base tool's minimum similarity. The knowledge base's Portal name was written as"", and oncreate or modifyso were the model's type and name.create or modify agentalso ignored a tool block's Document (the tool ran no microflow), dropped MCP service tools' service (it compared"mcp"with the stored"MCP"), wrote every tool with an empty id, and blanked the entity reference'sdocumentId.A rewrite now writes onto the stored Contents: unmodelled keys keep their value and position, tool entries pair by id, and the stored layout (Agent Editor 2.6's two-space indent, or compact) is kept. Measured on Studio Pro 11.16 projects: describe → exec of 34 agent documents writes nothing, byte for byte, and
alterchanges only the property it sets.Agents: approval, display text and streaming in MDL
Agent Editor 2.2+ stores human-in-the-loop and streaming settings in the agent document (measured on 11.12–11.16):
UserAccessApproval(HiddenForUser|VisibleForUser|UserConfirmationRequired),DisplayTitle,DisplayDescriptionMinSimilarity,IsVisibleEnableBackendStreaming,EnableUIStreamingdescribe prints them,
alter agent … settakes the streaming switches andalter … addthe block keys. Acreate or modifythat leaves one out keeps its stored value, so older scripts don't reset them.Agents: publish the app's microflows as an MCP server
New:
create [or modify]/alter(set,add tool,drop tool) /describe/list/drop published mcp service— MCP Server 5.x's model configuration (Agent Editor 2.6'spublishedMCPServicedocument), with tool blocks (Microflow, Description, Title, Schema) and authentication (AuthenticationEnabled, AuthenticationMicroflow, AuthorizationServerUrl, Scopes). A rewrite writes onto the stored Contents as above, and check reports whatCreateMCPServerwould refuse (MDL-MCPSERVER01). Measured on Studio Pro 11.16, Agent Editor 2.6.0, MCP Server 5.4.0: describe → exec of stored services writes nothing; a new authenticated service re-execs unchanged and adds nomx checkerrors.A new mcp-server skill covers both routes: the startup-microflow route of MCP Server 3.x–4.x (
CreateMCPServer/AddTool/AddPromptwith the parameters read from 3.0.0, 4.0.0 and 4.2.2) and 5.x's model configuration, mapping each runtime parameter to its document key. Its example handles its Java action errors (CreateMCPServerthrows when the application root URL is unset) and passes check, exec, lint andmx checkagainst an untouched copy.Catalog: refs for mappings and JSON structures
A flow applying an import or export mapping (import/export action, REST or web service call), and a mapping built on a JSON structure, made no refs row, so
refs,show callersand orphan checks reported them as unreferenced — on one real 11.16 app, 54 of 55 import mappings, 42 of 44 export mappings and 65 of 66 JSON structures.refsgainsmapping_call(flow → mapping) andstructure(mapping → JSON structure) edges. Schema version 35 rebuilds cached catalogs. Fixes #1703