GeneXus MCP Mastery — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited GeneXus MCP Mastery (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use this skill to interact with the GeneXus KB through the MCP server in this repository.
When working on complex GeneXus tasks, coordinate this "Transport" skill with "Knowledge" skills (imported from genexuslabs/genexus-skills — see .gemini/skills/NOTICE.md):
object-*.md, common-*.md, properties-*.md, global-*.md). Load on demand — keep context minimal.genexus_query to find entry points.genexus_read or resources/read to get source/metadata.genexus_edit for focused changes (singular name or targets[] for multi-object atomic edits).genexus_lifecycle to build and verify.The server can hold multiple KBs open at once (Server.MaxOpenKbs, default 3), each in its own Worker process. Cross-KB tool calls run in parallel — intra-KB calls remain serialized by the SDK's STA constraint.
kb argument: an alias declared in config.Environment.KBs[] or an absolute path. When exactly one KB is open and no kb is given, that KB is used; with 2+ open the kb arg becomes required (KB_AMBIGUOUS).genexus_kb action=list returns open KBs with PID, working-set memory, and idle seconds — use it to decide when to free a slot before opening a new KB.genexus_kb action=open (alias and/or path) acquires a Worker on demand; action=close releases it; action=set_default persists DefaultKb to config.json.Environment.KBPath) auto-migrate to KBs[] + DefaultKb at load time; existing flows keep working unchanged.| Tool | Tip | |||
|---|---|---|---|---|
genexus_query | Narrow down by typeFilter for faster results. | |||
genexus_read | Always check the Variables part if adding logic. PatternInstance / PatternVirtual return the full pattern XML (WorkWithPlus). Documentation / Help are first-class write targets. | |||
genexus_edit | Prefer mode=patch for surgical changes; use targets[] for atomic multi-object edits. For pattern parts see "Pattern editing" below. | |||
genexus_analyze | One tool covers linter, navigation, hierarchy, impact, data_context, ui_context, pattern_metadata, summary, and explain (the last two replaced genexus_summarize and genexus_explain_code). | |||
genexus_sql | action=ddl for Transaction/Table DDL, action=navigation for the SQL produced by a For Each (replaces genexus_get_sql and genexus_get_sql_for_navigation). | |||
genexus_kb | List/open/close/set_default — multi-KB pool management (replaces genexus_open_kb). | |||
genexus_properties | Essential for enabling "Business Component" or "Expose as Web Service". For WorkWithPlus also handles SDPlus_Editor_Apply_On_Save (toggle to keep pattern XML overrides). | |||
| `genexus_list_objects --typeFilter ThemeClass --nameFilter <Button\ | TextBlock\ | Title\ | ...>` | Discover real theme-class names in the KB before applying styling. |
The MCP edits the IDE's full pattern XML model — containers, controls, actions, grids, orders, filters, rules, event blocks. Both mode: full and mode: patch work on part: 'PatternInstance' (and 'PatternVirtual').
Auto-reconcile `childrenOrderedList` — don't manage it by hand. On every pattern write the MCP rebuilds (and creates if missing) every parent's childrenOrderedList from the actual child order in your XML, dropping orphans and adding new entries. The response carries a childrenOrderedListReconciliation block describing each rewrite (or skip with reason). The IDE only renders children listed there, so this matters.
Transaction view vs Selection view — they're separate XPath subtrees inside the same PatternInstance:
/instance/transaction/... → form view (TableContent + TableActions, <rule>s)./instance/level/selection/... → list view (TableSearch + <orders> + <grid>).Edit one without touching the other.
Element kinds (XML node → IDE control):
<standardAction>. Only Trn_Enter/Trn_Cancel/Trn_Delete (transaction) and Insert/Update/Delete/Export/ExportReport (selection grid) are registered standard actions; the SDK rejects unknown standardAction names during validated ops.<table isGroup="True" title="…" groupThemeClass="GroupTela|GroupTelaResp|GroupFiltro">…</table>.<textBlock controlName="…" caption="…" themeClass="BigTitle|LinkText|…" format="HTML" />.buttonClass="btn ButtonGreen|ButtonBlue|ButtonRed|ButtonCinza" (resolve real class names from the KB; see the genexus_list_objects tip above).Apply-on-save override — when SDPlus_Editor_Apply_On_Save is enabled on the WorkWithPlus object, the pattern engine recomputes some attributes after every save (notably title bound to the underlying transaction). To keep hard overrides:
{ "tool": "genexus_properties",
"arguments": { "action": "set", "name": "WorkWithPlus<Object>",
"propertyName": "SDPlus_Editor_Apply_On_Save", "value": "False" } }Accepts "True" | "False" | "Default".
Workflow for a pattern redesign:
genexus_list_objects --typeFilter ThemeClass --nameFilter <kind> — discover real class names.genexus_read --part PatternInstance — current state.<userAction>/<textBlock>/group <table isGroup="True">/etc, apply theme classes. Don't worry about childrenOrderedList.genexus_edit --mode full|patch --part PatternInstance — MCP reconciles ordering, validates via SDK, returns persistedVerified: true plus the reconciliation report.See genexus://kb/tool-help/genexus_edit resource for concrete pattern examples.
genexus_edit without reading the latest state of the object.genexus_batch_read, genexus_batch_edit, genexus_open_kb, genexus_get_sql, genexus_get_sql_for_navigation, genexus_summarize, genexus_explain_code). They return JSON-RPC -32601 with error.data.replacedBy pointing at the current tool.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.