genexus-mcp 2.9.0 → 2.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/lib/config.js +27 -1
- package/cli/run.js +10 -2
- package/package.json +4 -1
- package/publish/GxMcp.Gateway.deps.json +2 -2
- package/publish/GxMcp.Gateway.dll +0 -0
- package/publish/GxMcp.Gateway.exe +0 -0
- package/publish/config.json +6 -6
- package/publish/start_mcp.bat +15 -12
- package/publish/tool_definitions.json +15 -20
- package/publish/worker/GxMcp.Worker.exe +0 -0
- package/publish/worker/Definitions/APIDefinition.xml +0 -427
- package/publish/worker/Definitions/APILanguageAttributes.xml +0 -13
- package/publish/worker/Definitions/APILanguageColorsDefinition.xml +0 -247
- package/publish/worker/Definitions/ATTDefinition.xml +0 -12943
- package/publish/worker/Definitions/BASEDefinition.xml +0 -60
- package/publish/worker/Definitions/ContextDefinition.xml +0 -43
- package/publish/worker/Definitions/ControlDefinition.xml +0 -34677
- package/publish/worker/Definitions/ControlsPEMs.xml +0 -3852
- package/publish/worker/Definitions/DATASELECTORDefinition.xml +0 -117
- package/publish/worker/Definitions/DK.Frm.Functions.psx +0 -199
- package/publish/worker/Definitions/DK.Trn.Rules.Functions.psx +0 -77
- package/publish/worker/Definitions/DK.Trn.Rules.psx +0 -205
- package/publish/worker/Definitions/DPRVDefinition.xml +0 -1132
- package/publish/worker/Definitions/DPrv.Rules.psx +0 -30
- package/publish/worker/Definitions/DPrv.Source.Functions.psx +0 -2274
- package/publish/worker/Definitions/DashboardDefinition.xml +0 -49
- package/publish/worker/Definitions/DeployDefinition.xml +0 -151
- package/publish/worker/Definitions/DesignSystemDefinition.xml +0 -106
- package/publish/worker/Definitions/DocumentationPartDefinition.xml +0 -139
- package/publish/worker/Definitions/EXODefinition.xml +0 -1877
- package/publish/worker/Definitions/EXOITEMDefinition.xml +0 -5
- package/publish/worker/Definitions/EXOMETHDefinition.xml +0 -1236
- package/publish/worker/Definitions/EXOPARAMDefinition.xml +0 -883
- package/publish/worker/Definitions/EXOPROPDefinition.xml +0 -4620
- package/publish/worker/Definitions/FILEDefinition.xml +0 -223
- package/publish/worker/Definitions/FORMCLASSDefinition.xml +0 -133
- package/publish/worker/Definitions/FormObjDefinition.xml +0 -22921
- package/publish/worker/Definitions/Frm.Functions.psx +0 -1677
- package/publish/worker/Definitions/Functions.psx +0 -2117
- package/publish/worker/Definitions/GRPDefinition.xml +0 -78
- package/publish/worker/Definitions/GXPMCommonDefinition.xml +0 -8700
- package/publish/worker/Definitions/Gxplorer_CommonDefinition.xml +0 -5980
- package/publish/worker/Definitions/GxpmConditions.xml +0 -238
- package/publish/worker/Definitions/HelpGenSettingsDefinition.xml +0 -318
- package/publish/worker/Definitions/IDXDefinition.xml +0 -54
- package/publish/worker/Definitions/IMAGEDefinition.xml +0 -121
- package/publish/worker/Definitions/KBDefinition.xml +0 -696
- package/publish/worker/Definitions/LNGDefinition.xml +0 -558
- package/publish/worker/Definitions/MBRDefinition.xml +0 -131
- package/publish/worker/Definitions/MBROPTIONDefinition.xml +0 -211
- package/publish/worker/Definitions/MNUDefinition.xml +0 -334
- package/publish/worker/Definitions/MNUOPTIONDefinition.xml +0 -51
- package/publish/worker/Definitions/MiniAppDefinition.xml +0 -91
- package/publish/worker/Definitions/ModelDefinition.xml +0 -3518
- package/publish/worker/Definitions/ModuleInfoDefinition.xml +0 -113
- package/publish/worker/Definitions/PALETTEDefinition.xml +0 -66
- package/publish/worker/Definitions/PRCDefinition.xml +0 -2453
- package/publish/worker/Definitions/Prc.Rules.Functions.psx +0 -1925
- package/publish/worker/Definitions/Prc.Rules.psx +0 -393
- package/publish/worker/Definitions/Prc.Source.Functions.psx +0 -2308
- package/publish/worker/Definitions/RPTDefinition.xml +0 -2123
- package/publish/worker/Definitions/RuntimeContextDefinition.xml +0 -43
- package/publish/worker/Definitions/SD.Conditions.Functions.psx +0 -1336
- package/publish/worker/Definitions/SD.Rules.psx +0 -67
- package/publish/worker/Definitions/SD.Source.Functions.psx +0 -1562
- package/publish/worker/Definitions/SDTDefinition.xml +0 -176
- package/publish/worker/Definitions/SDTITEMDefinition.xml +0 -13239
- package/publish/worker/Definitions/SDTLEVELDefinition.xml +0 -384
- package/publish/worker/Definitions/SINGLEIMAGEDefinition.xml +0 -388
- package/publish/worker/Definitions/STENCILDefinition.xml +0 -73
- package/publish/worker/Definitions/SYNCDefinition.xml +0 -410
- package/publish/worker/Definitions/SuperAppDefinition.xml +0 -180
- package/publish/worker/Definitions/Sync.Rules.psx +0 -191
- package/publish/worker/Definitions/TBDDefinition.xml +0 -99
- package/publish/worker/Definitions/TBLDefinition.xml +0 -302
- package/publish/worker/Definitions/TRNDefinition.xml +0 -5640
- package/publish/worker/Definitions/ThemeDefinition.xml +0 -60769
- package/publish/worker/Definitions/TransactionAttributeDefinition.xml +0 -25
- package/publish/worker/Definitions/TransactionLevelDefinition.xml +0 -48
- package/publish/worker/Definitions/Trn.Rules.Functions.psx +0 -2237
- package/publish/worker/Definitions/Trn.Rules.psx +0 -560
- package/publish/worker/Definitions/Trn.Source.Functions.psx +0 -2154
- package/publish/worker/Definitions/UrlRewriteDefinition.xml +0 -66
- package/publish/worker/Definitions/UserControlDefinition.xml +0 -146
- package/publish/worker/Definitions/WBPDefinition.xml +0 -1874
- package/publish/worker/Definitions/WKPDefinition.xml +0 -1813
- package/publish/worker/Definitions/Wbp.Conditions.Functions.psx +0 -2032
- package/publish/worker/Definitions/Wbp.Rules.Functions.psx +0 -2170
- package/publish/worker/Definitions/Wbp.Rules.psx +0 -336
- package/publish/worker/Definitions/Wbp.Source.Functions.psx +0 -2344
- package/publish/worker/Definitions/Wrk.Conditions.Functions.psx +0 -1909
- package/publish/worker/Definitions/Wrk.Rules.Functions.psx +0 -1937
- package/publish/worker/Definitions/Wrk.Rules.psx +0 -453
- package/publish/worker/Definitions/Wrk.Source.Functions.psx +0 -2224
- package/publish/worker/Definitions/XFLDefinition.xml +0 -246
- package/publish/worker/Definitions/cobolDefinition.xml +0 -2074
- package/publish/worker/Definitions/conditions.xml +0 -251
- package/publish/worker/Definitions/conditionsSD.xml +0 -236
- package/publish/worker/Definitions/csharpDefinition.xml +0 -3527
- package/publish/worker/Definitions/csharpwinDefinition.xml +0 -2979
- package/publish/worker/Definitions/dataprovider.xml +0 -254
- package/publish/worker/Definitions/ds_AS400NATIVEDefinition.xml +0 -2167
- package/publish/worker/Definitions/ds_DAMENGDefinition.xml +0 -2546
- package/publish/worker/Definitions/ds_DB2400Definition.xml +0 -2209
- package/publish/worker/Definitions/ds_DB2COMMONSERVERSDefinition.xml +0 -2394
- package/publish/worker/Definitions/ds_DBFCDXDefinition.xml +0 -5
- package/publish/worker/Definitions/ds_DBFIDXDefinition.xml +0 -5
- package/publish/worker/Definitions/ds_HANADefinition.xml +0 -1821
- package/publish/worker/Definitions/ds_INFORMIXDefinition.xml +0 -2498
- package/publish/worker/Definitions/ds_MYSQLDefinition.xml +0 -2222
- package/publish/worker/Definitions/ds_ORACLEDefinition.xml +0 -2915
- package/publish/worker/Definitions/ds_POSTGRESQLDefinition.xml +0 -2206
- package/publish/worker/Definitions/ds_SERVICEDefinition.xml +0 -710
- package/publish/worker/Definitions/ds_SQLCEDefinition.xml +0 -822
- package/publish/worker/Definitions/ds_SQLITEDefinition.xml +0 -1075
- package/publish/worker/Definitions/ds_SQLSERVERDefinition.xml +0 -2481
- package/publish/worker/Definitions/dv_AS400NATIVEDefinition.xml +0 -53
- package/publish/worker/Definitions/dv_DAMENGDefinition.xml +0 -53
- package/publish/worker/Definitions/dv_DB2400Definition.xml +0 -47
- package/publish/worker/Definitions/dv_DB2COMMONSERVERSDefinition.xml +0 -47
- package/publish/worker/Definitions/dv_DBFCDXDefinition.xml +0 -47
- package/publish/worker/Definitions/dv_DBFIDXDefinition.xml +0 -47
- package/publish/worker/Definitions/dv_HANADefinition.xml +0 -53
- package/publish/worker/Definitions/dv_INFORMIXDefinition.xml +0 -53
- package/publish/worker/Definitions/dv_MYSQLDefinition.xml +0 -53
- package/publish/worker/Definitions/dv_ORACLEDefinition.xml +0 -53
- package/publish/worker/Definitions/dv_POSTGRESQLDefinition.xml +0 -53
- package/publish/worker/Definitions/dv_SERVICEDefinition.xml +0 -47
- package/publish/worker/Definitions/dv_SQLCEDefinition.xml +0 -48
- package/publish/worker/Definitions/dv_SQLITEDefinition.xml +0 -47
- package/publish/worker/Definitions/dv_SQLSERVERDefinition.xml +0 -53
- package/publish/worker/Definitions/dvi_AS400NATIVEDefinition.xml +0 -53
- package/publish/worker/Definitions/dvi_DAMENGDefinition.xml +0 -53
- package/publish/worker/Definitions/dvi_DB2400Definition.xml +0 -47
- package/publish/worker/Definitions/dvi_DB2COMMONSERVERSDefinition.xml +0 -47
- package/publish/worker/Definitions/dvi_DBFCDXDefinition.xml +0 -51
- package/publish/worker/Definitions/dvi_DBFIDXDefinition.xml +0 -47
- package/publish/worker/Definitions/dvi_HANADefinition.xml +0 -53
- package/publish/worker/Definitions/dvi_INFORMIXDefinition.xml +0 -53
- package/publish/worker/Definitions/dvi_MYSQLDefinition.xml +0 -53
- package/publish/worker/Definitions/dvi_ORACLEDefinition.xml +0 -53
- package/publish/worker/Definitions/dvi_POSTGRESQLDefinition.xml +0 -53
- package/publish/worker/Definitions/dvi_SERVICEDefinition.xml +0 -47
- package/publish/worker/Definitions/dvi_SQLCEDefinition.xml +0 -48
- package/publish/worker/Definitions/dvi_SQLITEDefinition.xml +0 -47
- package/publish/worker/Definitions/dvi_SQLSERVERDefinition.xml +0 -53
- package/publish/worker/Definitions/events.xml +0 -340
- package/publish/worker/Definitions/eventsSD.xml +0 -331
- package/publish/worker/Definitions/exportDefinition.xml +0 -123
- package/publish/worker/Definitions/formula.xml +0 -215
- package/publish/worker/Definitions/gxtypes.xml +0 -24099
- package/publish/worker/Definitions/importDefinition.xml +0 -148
- package/publish/worker/Definitions/javaDefinition.xml +0 -4733
- package/publish/worker/Definitions/kbInfoDefinition.xml +0 -43
- package/publish/worker/Definitions/netcoreDefinition.xml +0 -3506
- package/publish/worker/Definitions/netmobileDefinition.xml +0 -1559
- package/publish/worker/Definitions/procedures.xml +0 -292
- package/publish/worker/Definitions/rpgDefinition.xml +0 -2083
- package/publish/worker/Definitions/rubyDefinition.xml +0 -1358
- package/publish/worker/Definitions/rules.xml +0 -279
- package/publish/worker/Definitions/rulesSD.xml +0 -253
- package/publish/worker/Definitions/sdpatternsDefinition.xml +0 -3509
- package/publish/worker/Definitions/smartdeviceDefinition.xml +0 -897
- package/publish/worker/Definitions/trn_src.xml +0 -335
- package/publish/worker/Definitions/vfpDefinition.xml +0 -2372
- package/publish/worker/Definitions/vfpcsDefinition.xml +0 -2631
package/cli/lib/config.js
CHANGED
|
@@ -308,7 +308,14 @@ function readJsonFileSafe(filePath) {
|
|
|
308
308
|
} catch {
|
|
309
309
|
// Fall back to a JSONC-tolerant parse before giving up, so a commented
|
|
310
310
|
// VS Code / OpenCode config isn't treated as corrupt.
|
|
311
|
-
|
|
311
|
+
const stripped = stripJsonComments(raw);
|
|
312
|
+
const result = JSON.parse(stripped);
|
|
313
|
+
// Warn: if we ever rewrite this file the comments will be lost.
|
|
314
|
+
process.stderr.write(
|
|
315
|
+
`[genexus-mcp] Warning: ${filePath} contains JSONC comments (// or /* */).\n` +
|
|
316
|
+
`[genexus-mcp] Comments are stripped for reading but will be lost if this file is rewritten by the CLI.\n`
|
|
317
|
+
);
|
|
318
|
+
return result;
|
|
312
319
|
}
|
|
313
320
|
} catch {
|
|
314
321
|
return null;
|
|
@@ -331,6 +338,9 @@ function writeFileAtomic(filePath, content) {
|
|
|
331
338
|
// Back up a client config once per process run before the first mutation, so the
|
|
332
339
|
// user has a restore point (the old build-from-source install.ps1 did this; the
|
|
333
340
|
// CLI now owns it). Best-effort \u2014 a failed backup never blocks the write.
|
|
341
|
+
// After writing a new backup, prune old .bak files for the same config so at
|
|
342
|
+
// most BAK_KEEP_COUNT backups exist (oldest removed first).
|
|
343
|
+
const BAK_KEEP_COUNT = 5;
|
|
334
344
|
const _backedUpThisRun = new Set();
|
|
335
345
|
function backupClientConfigOnce(filePath) {
|
|
336
346
|
if (!fs.existsSync(filePath)) return null;
|
|
@@ -345,6 +355,22 @@ function backupClientConfigOnce(filePath) {
|
|
|
345
355
|
const bak = `${filePath}.${stamp}.bak`;
|
|
346
356
|
fs.copyFileSync(filePath, bak);
|
|
347
357
|
_backedUpThisRun.add(key);
|
|
358
|
+
// Prune: keep only the BAK_KEEP_COUNT most-recent .bak files for this config.
|
|
359
|
+
try {
|
|
360
|
+
const dir = path.dirname(resolved);
|
|
361
|
+
const base = path.basename(resolved);
|
|
362
|
+
const bakPattern = new RegExp(`^${base.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\.\\d{14}\\.bak$`);
|
|
363
|
+
const existing = fs.readdirSync(dir)
|
|
364
|
+
.filter(f => bakPattern.test(f))
|
|
365
|
+
.map(f => path.join(dir, f))
|
|
366
|
+
.sort(); // ISO timestamp stamps sort lexicographically = chronologically
|
|
367
|
+
if (existing.length > BAK_KEEP_COUNT) {
|
|
368
|
+
const toRemove = existing.slice(0, existing.length - BAK_KEEP_COUNT);
|
|
369
|
+
for (const old of toRemove) {
|
|
370
|
+
try { fs.rmSync(old, { force: true }); } catch { /* best-effort */ }
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
} catch { /* pruning is best-effort; never block the backup */ }
|
|
348
374
|
return bak;
|
|
349
375
|
} catch {
|
|
350
376
|
return null;
|
package/cli/run.js
CHANGED
|
@@ -3,11 +3,19 @@ const { main, EXIT_CODES } = require('./index');
|
|
|
3
3
|
const { writeStructured } = require('./lib/output');
|
|
4
4
|
const { operationalErrorEnvelope } = require('./commands/axi');
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// Detect gateway-passthrough mode: no subcommand means we're forwarding stdio
|
|
7
|
+
// as the MCP JSON-RPC channel. Writing a JSON envelope to stdout there would
|
|
8
|
+
// corrupt the protocol stream. Route errors to stderr instead.
|
|
9
|
+
const argv = process.argv.slice(2);
|
|
10
|
+
const KNOWN_COMMANDS = new Set(['status', 'doctor', 'tools', 'config', 'init', 'setup', 'whoami', 'uninstall', 'kb', 'clients', 'help', 'home', 'axi', 'llm', 'layout', 'update']);
|
|
11
|
+
const isInteractiveCommand = argv.length > 0 && KNOWN_COMMANDS.has(argv[0]);
|
|
12
|
+
const errorOut = isInteractiveCommand ? process.stdout : process.stderr;
|
|
13
|
+
|
|
14
|
+
main(argv)
|
|
7
15
|
.then((code) => process.exit(code))
|
|
8
16
|
.catch(() => {
|
|
9
17
|
const envelope = operationalErrorEnvelope('Unhandled CLI failure.', EXIT_CODES.ERROR);
|
|
10
18
|
envelope.meta = { ...(envelope.meta || {}), command: 'runtime' };
|
|
11
|
-
writeStructured(
|
|
19
|
+
writeStructured(errorOut, envelope, 'toon');
|
|
12
20
|
process.exit(EXIT_CODES.ERROR);
|
|
13
21
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "genexus-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.10.0",
|
|
4
4
|
"mcpName": "io.github.lennix1337/genexus",
|
|
5
5
|
"description": "GeneXus 18 MCP server — read, edit, and analyze GeneXus knowledge base objects (transactions, web panels, procedures, SDTs) directly from Claude, Cursor, and other AI agents over the Model Context Protocol.",
|
|
6
6
|
"keywords": [
|
|
@@ -41,6 +41,9 @@
|
|
|
41
41
|
"publish",
|
|
42
42
|
"docs/llm_cli_mcp_playbook.md"
|
|
43
43
|
],
|
|
44
|
+
"os": [
|
|
45
|
+
"win32"
|
|
46
|
+
],
|
|
44
47
|
"engines": {
|
|
45
48
|
"node": ">=18.0.0"
|
|
46
49
|
},
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"targets": {
|
|
8
8
|
".NETCoreApp,Version=v8.0": {},
|
|
9
9
|
".NETCoreApp,Version=v8.0/win-x64": {
|
|
10
|
-
"GxMcp.Gateway/2.
|
|
10
|
+
"GxMcp.Gateway/2.10.0": {
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"Newtonsoft.Json": "13.0.3",
|
|
13
13
|
"System.Management": "10.0.5",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
}
|
|
67
67
|
},
|
|
68
68
|
"libraries": {
|
|
69
|
-
"GxMcp.Gateway/2.
|
|
69
|
+
"GxMcp.Gateway/2.10.0": {
|
|
70
70
|
"type": "project",
|
|
71
71
|
"serviceable": false,
|
|
72
72
|
"sha512": ""
|
|
Binary file
|
|
Binary file
|
package/publish/config.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
2
|
+
"GeneXus": {
|
|
3
|
+
"InstallationPath": "C:\\\\Program Files (x86)\\\\GeneXus\\\\GeneXus18",
|
|
4
|
+
"WorkerExecutable": "C:\\Projetos\\Genexus18MCP\\publish\\\\worker\\\\GxMcp.Worker.exe"
|
|
5
5
|
},
|
|
6
6
|
"Environment": {
|
|
7
7
|
"KBPath": "C:\\\\KBs\\\\YourKB"
|
|
8
8
|
},
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
9
|
+
"Logging": {
|
|
10
|
+
"Path": "logs",
|
|
11
|
+
"Level": "Debug"
|
|
12
12
|
},
|
|
13
13
|
"Server": {
|
|
14
14
|
"McpStdio": true,
|
package/publish/start_mcp.bat
CHANGED
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
@echo off
|
|
2
2
|
setlocal
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
set "
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
set "DEBUG_GATEWAY=%REPO_ROOT%\src\GxMcp.Gateway\bin\Debug\net8.0-windows\GxMcp.Gateway.exe"
|
|
9
|
-
set "RELEASE_GATEWAY=%REPO_ROOT%\src\GxMcp.Gateway\bin\Release\net8.0-windows\GxMcp.Gateway.exe"
|
|
4
|
+
rem Resolve the directory containing this bat file (works at any install path).
|
|
5
|
+
set "BAT_DIR=%~dp0"
|
|
6
|
+
rem Remove trailing backslash so paths join cleanly.
|
|
7
|
+
if "%BAT_DIR:~-1%"=="\" set "BAT_DIR=%BAT_DIR:~0,-1%"
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
rem Only set GX_CONFIG_PATH when the caller hasn't provided one.
|
|
10
|
+
if not defined GX_CONFIG_PATH (
|
|
11
|
+
set "GX_CONFIG_PATH=%BAT_DIR%\config.json"
|
|
14
12
|
)
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
set "GX_MCP_STDIO=true"
|
|
15
|
+
|
|
16
|
+
rem Launch the gateway exe that lives alongside this bat file.
|
|
17
|
+
set "GATEWAY_EXE=%BAT_DIR%\GxMcp.Gateway.exe"
|
|
18
|
+
if exist "%GATEWAY_EXE%" (
|
|
19
|
+
"%GATEWAY_EXE%"
|
|
18
20
|
exit /b %ERRORLEVEL%
|
|
19
21
|
)
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
rem Fallback: run the DLL via dotnet (dev layout where .exe is not present).
|
|
24
|
+
cd /d "%BAT_DIR%"
|
|
22
25
|
dotnet GxMcp.Gateway.dll
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
[
|
|
2
2
|
{"name":"genexus_whoami","description":"KB context + version + playbooks + skills catalog. Call FIRST every session — the `skills` block lists verified GeneXus reference resources (navigation, GAM, SD panel, WebPanel events). Read those BEFORE invoking properties/methods you aren't 100% sure exist.","inputSchema":{"type":"object","properties":{},"examples":[{}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
3
3
|
{"name":"genexus_recipe","description":"Named playbooks + self-extending macros. action=list|describe|run|suggest_macro|crystallize.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Recipe key (latest version), 'name@v1' (pinned), or 'list'."},"action":{"type":"string","enum":["list","describe","run","suggest_macro","crystallize"],"description":"suggest_macro: detect repeated sequences; crystallize: save one as a recipe."},"windowMinutes":{"type":"integer","description":"suggest_macro: history window (default 30)."},"minRepetitions":{"type":"integer","description":"suggest_macro: threshold (default 3)."},"macroName":{"type":"string","description":"crystallize: proposed name from suggest_macro."},"description":{"type":"string","description":"crystallize: human-readable description."}},"examples":[{"name":"list"},{"name":"wwp_on_transaction"},{"action":"suggest_macro"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
4
|
-
{"name":"genexus_query","description":"Search objects in active KB. Prefixes: name:, type:, usedby:, parent:, parentPath:, description:. name:\"X\" (or bare quoted \"X\") demands exact-name match — use it when you know the object's name. Compact by default. See genexus://kb/tool-help/genexus_query.","inputSchema":{"type":"object","properties":{"query":{"type":"string"},"typeFilter":{"type":"string"},"domainFilter":{"type":"string"},"limit":{"type":"integer"},"inline_read_top":{"type":"integer","description":"0-3. Inline reads of top N."},"sort":{"type":"string","enum":["relevance","lastUpdate"],"description":"relevance (default) or lastUpdate (newest first; bypasses score ranking)."},"since":{"type":"string","description":"ISO-8601 UTC. Only items with lastUpdate >= since."},"modifiedBefore":{"type":"string","description":"ISO-8601 UTC. Only items with lastUpdate < modifiedBefore."},"cursor":{"type":"string","description":"Opaque token from prior nextCursor. Use with sort=lastUpdate for stable paging."},"kb":{"type":"string","description":"KB alias."},"axiCompact":{"type":"boolean","description":"Compact projection (default true).","default":true}},"required":["query"],"examples":[{"query":"type:Transaction parent:Customers"},{"query":"\"Customer\"","limit":5}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
4
|
+
{"name":"genexus_query","description":"Search objects in active KB. Prefixes: name:, type:, usedby:, parent:, parentPath:, description:. name:\"X\" (or bare quoted \"X\") demands exact-name match — use it when you know the object's name. Compact by default. See genexus://kb/tool-help/genexus_query. Requires the KB index to be Ready — check genexus_lifecycle action=status if results look empty.","inputSchema":{"type":"object","properties":{"query":{"type":"string"},"typeFilter":{"type":"string"},"domainFilter":{"type":"string"},"limit":{"type":"integer"},"inline_read_top":{"type":"integer","description":"0-3. Inline reads of top N."},"sort":{"type":"string","enum":["relevance","lastUpdate"],"description":"relevance (default) or lastUpdate (newest first; bypasses score ranking)."},"since":{"type":"string","description":"ISO-8601 UTC. Only items with lastUpdate >= since."},"modifiedBefore":{"type":"string","description":"ISO-8601 UTC. Only items with lastUpdate < modifiedBefore."},"cursor":{"type":"string","description":"Opaque token from prior nextCursor. Use with sort=lastUpdate for stable paging."},"kb":{"type":"string","description":"KB alias."},"axiCompact":{"type":"boolean","description":"Compact projection (default true).","default":true}},"required":["query"],"examples":[{"query":"type:Transaction parent:Customers"},{"query":"\"Customer\"","limit":5}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
5
5
|
{"name":"genexus_list_objects","description":"List objects with pagination. Feed nextOffset until hasMore=false. Returns minimal shape by default (name, type, path, parent); verbose=true for full shape.","inputSchema":{"type":"object","properties":{"filter":{"type":"string","description":"Legacy: name OR description. Prefer nameFilter/descriptionFilter."},"nameFilter":{"type":"string","description":"Substring on name."},"descriptionFilter":{"type":"string","description":"Substring on description."},"pathPrefix":{"type":"string","description":"Folder prefix, e.g. 'Root Module/X/'."},"limit":{"type":"integer"},"offset":{"type":"integer"},"parent":{"type":"string"},"parentPath":{"type":"string"},"typeFilter":{"type":"string"},"verbose":{"type":"boolean","description":"Full item shape."},"sort":{"type":"string","enum":["name","lastUpdate"],"description":"name (default, type-bucketed) or lastUpdate (newest first)."},"since":{"type":"string","description":"ISO-8601 UTC. Only items with lastUpdate >= since."},"modifiedBefore":{"type":"string","description":"ISO-8601 UTC. Only items with lastUpdate < modifiedBefore."},"cursor":{"type":"string","description":"Opaque token from prior nextCursor. Use with sort=lastUpdate for stable paging."},"inline_read_top":{"type":"integer","description":"0-3. Inline reads of top N."},"kb":{"type":"string","description":"KB alias."},"axiCompact":{"type":"boolean","description":"Compact projection (default true).","default":true},"projection":{"type":"string","enum":["minimal","standard","verbose"],"description":"minimal=name+type+lastUpdate; standard=default compact; verbose=all fields. Overrides axiCompact when set."}},"examples":[{"limit":25},{"typeFilter":"Transaction","limit":10}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
6
6
|
{"name":"genexus_read","description":"Read parts of objects. name or targets + parts=[...]. Paginate via offset/limit. See genexus://kb/tool-help/genexus_read.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"targets":{"type":"array","items":{"type":"string"}},"part":{"type":"string"},"parts":{"type":"array","items":{"type":"string"},"description":"When set, only the listed parts are returned in a combined response. Mutually exclusive with part/offset/limit."},"offset":{"type":"integer"},"limit":{"type":"integer"},"type":{"type":"string"},"kb":{"type":"string","description":"KB alias."}},"examples":[{"name":"Customer"},{"name":"Customer","part":"Source"}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
7
|
-
{"name":"genexus_edit","description":"Edit object part. name or targets (exclusive). mode: full|patch|ops. dryRun first. async=true returns an operationId for lifecycle polling. For WWP edit host's PatternInstance NOT the parent WebForm (gets overwritten on reapply). Uncertain about a property/method/event? → resources/read uri=genexus://kb/skills/navigation (or gam-integrated-security / sd-panel-mobile / webpanel-events) first.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"part":{"type":"string"},"mode":{"type":"string","enum":["full","patch","ops"]},"content":{"type":"string"},"ops":{"type":"array","description":"GeneXus semantic ops (NOT RFC 6902 JSON-Patch). Each item: {op, args}. Supported ops: set_attribute, add_attribute, remove_attribute (Transaction); add_rule, remove_rule (Transaction/Procedure/WebPanel); set_property (any kind). Use mode=patch for textual find/replace.","items":{"type":"object","properties":{"op":{"type":"string","enum":["set_attribute","add_attribute","remove_attribute","add_rule","remove_rule","set_property"]},"args":{"type":"object","description":"Op-specific args. set_attribute: {name, type?, description?}. add_attribute: {name, type, ...}. add_rule: {rule}. set_property: {name, value}."}},"required":["op"]}},"patch":{"description":"String or {find,replace} object. Prefer operation+context+content."},"context":{"type":"string"},"operation":{"type":"string","enum":["Replace","Insert_After","Append"]},"expectedCount":{"type":"integer"},"replaceAll":{"type":"boolean","description":"patch mode only. Apply to ALL occurrences instead of requiring expectedCount to match exactly."},"dryRun":{"type":"boolean"},"async":{"type":"boolean","description":"Run as a background job. Result returns operationId/job_id for genexus_lifecycle polling."},"estimated_seconds":{"type":"integer","description":"When async=true, expected runtime used for progress/job metadata (default 30)."},"verifyRollback":{"type":"boolean"},"targets":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"content":{"type":"string"}},"required":["name","content"]}},"type":{"type":"string"},"return_post_state":{"type":"boolean","description":"Omit post_state.diff (default true)."},"verbose":{"type":"boolean","description":"Add ±15-line slices to post_state."},"validate":{"type":"string","enum":["strict","best-effort","only"],"description":"strict (default) aborts on first error. best-effort applies what compiles. only runs in-memory, no persist."},"visualVerify":{"type":"boolean","default":false,"description":"Post-edit headless screenshot + pixel-diff vs baseline. See tool-help."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"name":"Customer","mode":"patch","part":"Source","patch":{"find":"old","replace":"new"}},{"name":"Customer","mode":"patch","part":"Rules","patch":{"find":"error(","replace":"msg("},"dryRun":true}]},"annotations":{"readOnlyHint":false,"destructiveHint":
|
|
7
|
+
{"name":"genexus_edit","description":"Edit object part. name or targets (exclusive). mode: full|patch|ops. dryRun first. async=true returns an operationId for lifecycle polling. For WWP edit host's PatternInstance NOT the parent WebForm (gets overwritten on reapply). Uncertain about a property/method/event? → resources/read uri=genexus://kb/skills/navigation (or gam-integrated-security / sd-panel-mobile / webpanel-events) first.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"part":{"type":"string"},"mode":{"type":"string","enum":["full","patch","ops"]},"content":{"type":"string"},"ops":{"type":"array","description":"GeneXus semantic ops (NOT RFC 6902 JSON-Patch). Each item: {op, args}. Supported ops: set_attribute, add_attribute, remove_attribute (Transaction); add_rule, remove_rule (Transaction/Procedure/WebPanel); set_property (any kind). Use mode=patch for textual find/replace.","items":{"type":"object","properties":{"op":{"type":"string","enum":["set_attribute","add_attribute","remove_attribute","add_rule","remove_rule","set_property"]},"args":{"type":"object","description":"Op-specific args. set_attribute: {name, type?, description?}. add_attribute: {name, type, ...}. add_rule: {rule}. set_property: {name, value}."}},"required":["op"]}},"patch":{"description":"String or {find,replace} object. Prefer operation+context+content."},"context":{"type":"string"},"operation":{"type":"string","enum":["Replace","Insert_After","Append"]},"expectedCount":{"type":"integer"},"replaceAll":{"type":"boolean","description":"patch mode only. Apply to ALL occurrences instead of requiring expectedCount to match exactly."},"dryRun":{"type":"boolean"},"async":{"type":"boolean","description":"Run as a background job. Result returns operationId/job_id for genexus_lifecycle polling."},"estimated_seconds":{"type":"integer","description":"When async=true, expected runtime used for progress/job metadata (default 30)."},"verifyRollback":{"type":"boolean"},"targets":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"content":{"type":"string"}},"required":["name","content"]}},"type":{"type":"string"},"return_post_state":{"type":"boolean","description":"Omit post_state.diff (default true)."},"verbose":{"type":"boolean","description":"Add ±15-line slices to post_state."},"validate":{"type":"string","enum":["strict","best-effort","only"],"description":"strict (default) aborts on first error. best-effort applies what compiles. only runs in-memory, no persist."},"visualVerify":{"type":"boolean","default":false,"description":"Post-edit headless screenshot + pixel-diff vs baseline. See tool-help."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"name":"Customer","mode":"patch","part":"Source","patch":{"find":"old","replace":"new"}},{"name":"Customer","mode":"patch","part":"Rules","patch":{"find":"error(","replace":"msg("},"dryRun":true}]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},
|
|
8
8
|
{"name":"genexus_inspect","description":"Use to snapshot an object: metadata, variables, structure, signature. Raw shape, no source text — use genexus_read for code. runtimeIds requires a prior build.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"include":{"type":"array","items":{"type":"string","enum":["metadata","variables","signature","structure","parts","controls","events_repertoire","callers","runtimeIds"]}},"projection":{"type":"string","enum":["minimal","standard","verbose"],"description":"minimal=name+type+lastUpdate; standard=default; verbose=all fields."},"type":{"type":"string"},"kb":{"type":"string","description":"KB alias."}},"required":["name"],"examples":[{"name":"Customer"},{"name":"Customer","include":["variables","signature"]}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
9
|
-
{"name":"genexus_analyze","description":"Use this for cross-object semantic analysis: impact, dependencies, complexity, naming, summary. See tool-help for mode selection.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"mode":{"type":"string","enum":["linter","navigation","hierarchy","impact","cross_platform_impact","callers","event_flow","data_context","ui_context","pattern_metadata","summary","dependency_heatmap"]},"format":{"type":"string","enum":["json","ascii"],"description":"mode=dependency_heatmap: ascii adds rendered bar chart."},"kb":{"type":"string","description":"KB alias."},"waitForIndex":{"type":"boolean","description":"mode=impact: block up to 30s for Ready index (default true).","default":true}},"required":["name","mode"],"examples":[{"name":"Customer","mode":"impact"},{"name":"Customer","mode":"summary"}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
10
|
-
{"name":"genexus_lifecycle","description":"Build, validate, index, or poll the KB. Long ops are async with operationId. dryRun=true (build/rebuild/index) returns the build plan or index plan without executing. See genexus://kb/tool-help/genexus_lifecycle for actions and target formats.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["build","cancel","rebuild","reorg","reorg_preview","validate","validate-kb","sync","index","status","result","snapshots-list","snapshots-restore"]},"target":{"type":"string","description":"Object name(s), taskId, job_id, or op:<id>. Build accepts CSV ('Foo,Bar')."},"code":{"type":"string"},"limit":{"type":"integer"},"snapshotPath":{"type":"string"},"estimated_seconds":{"type":"integer","description":"Build: <20 sync, >=20 async (default 60)."},"wait_seconds":{"type":"integer","description":"Status/build long-poll cap, 0-600s."},"wait_until_done":{"type":"boolean","description":"Build/rebuild: block in one turn until terminal (up to wait_seconds, default 600)."},"wait":{"type":"integer","description":"Status taskId event-driven block, 0-600s."},"since":{"type":"string","description":"Status: prior _meta.snapshot for chained waits."},"compact":{"type":"boolean","description":"Status: counts + top-10 errors (default true)."},"force":{"type":"boolean","description":"Index: full SDK rescan (clears snapshot)."},"dryRun":{"type":"boolean","default":false,"description":"build/rebuild/index: returns the plan (object list / index entries) without executing."},"includeCallees":{"type":"string","enum":["none","direct","transitive"],"description":"Build: expand call graph so callees compile first (default transitive)."},"buildPlanCap":{"type":"integer","description":"Build: max nodes before BuildPlanTooLarge (default 200)."},"
|
|
9
|
+
{"name":"genexus_analyze","description":"Use this for cross-object semantic analysis: impact, dependencies, complexity, naming, summary. See tool-help for mode selection. Requires the KB index to be Ready for impact/callers modes — check genexus_lifecycle action=status if results look empty.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"mode":{"type":"string","enum":["linter","navigation","hierarchy","impact","cross_platform_impact","callers","event_flow","data_context","ui_context","pattern_metadata","summary","dependency_heatmap"]},"format":{"type":"string","enum":["json","ascii"],"description":"mode=dependency_heatmap: ascii adds rendered bar chart."},"kb":{"type":"string","description":"KB alias."},"waitForIndex":{"type":"boolean","description":"mode=impact: block up to 30s for Ready index (default true).","default":true}},"required":["name","mode"],"examples":[{"name":"Customer","mode":"impact"},{"name":"Customer","mode":"summary"}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
10
|
+
{"name":"genexus_lifecycle","description":"Build, validate, index, or poll the KB. Long ops are async with operationId. dryRun=true (build/rebuild/index) returns the build plan or index plan without executing. See genexus://kb/tool-help/genexus_lifecycle for actions and target formats.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["build","cancel","rebuild","reorg","reorg_preview","validate","validate-kb","sync","index","status","result","snapshots-list","snapshots-restore"]},"target":{"type":"string","description":"Object name(s), taskId, job_id, or op:<id>. Build accepts CSV ('Foo,Bar')."},"code":{"type":"string"},"limit":{"type":"integer"},"snapshotPath":{"type":"string"},"estimated_seconds":{"type":"integer","description":"Build: <20 sync, >=20 async (default 60)."},"wait_seconds":{"type":"integer","description":"Status/build long-poll cap, 0-600s."},"wait_until_done":{"type":"boolean","description":"Build/rebuild: block in one turn until terminal (up to wait_seconds, default 600)."},"wait":{"type":"integer","description":"Status taskId event-driven block, 0-600s."},"since":{"type":"string","description":"Status: prior _meta.snapshot for chained waits."},"compact":{"type":"boolean","description":"Status: counts + top-10 errors (default true)."},"force":{"type":"boolean","description":"Index: full SDK rescan (clears snapshot)."},"dryRun":{"type":"boolean","default":false,"description":"build/rebuild/index: returns the plan (object list / index entries) without executing."},"includeCallees":{"type":"string","enum":["none","direct","transitive"],"description":"Build: expand call graph so callees compile first (default transitive)."},"buildPlanCap":{"type":"integer","description":"Build: max nodes before BuildPlanTooLarge (default 200)."},"kb":{"type":"string","description":"KB alias."}},"required":["action"],"examples":[{"action":"build"},{"action":"status","target":"op:abc123"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
11
11
|
{"name":"genexus_test","description":"Execute native GeneXus tests (GXtest).","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"kb":{"type":"string","description":"KB alias."}},"required":["name"],"examples":[{"name":"MyTestProc"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},
|
|
12
12
|
{"name":"genexus_sdk_probe","description":"Dump SDK surface (types/methods/props) to docs/sdk-probe/. Use when hunting for entry points.","inputSchema":{"type":"object","properties":{"outputDir":{"type":"string","description":"Absolute path. Default <repo>/docs/sdk-probe/."}},"examples":[{}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
13
|
-
{"name":"genexus_worker_reload","description":"Reload worker. modes: soft (drain+respawn), hard (copy sourceDir+respawn)
|
|
13
|
+
{"name":"genexus_worker_reload","description":"Reload worker. modes: soft (drain+respawn), hard (copy sourceDir+respawn). force=true: gateway kills directly. See tool-help.","inputSchema":{"type":"object","properties":{"mode":{"type":"string","enum":["soft","hard"]},"force":{"type":"boolean","description":"Bypass drain; gateway kills + respawns. Use when worker is wedged."},"sourceDir":{"type":"string","description":"Required for mode=hard."},"drainTimeoutMs":{"type":"integer","description":"Soft only; default 30000."}},"examples":[{"mode":"soft"},{"mode":"hard","sourceDir":"C:\\Projetos\\Genexus18MCP\\src\\GxMcp.Worker\\bin\\Debug"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},
|
|
14
14
|
{"name":"genexus_delete_object","description":"Delete an object from the KB. Irreversible — confirm=true required. dryRun=true returns what would be deleted without persisting.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"confirm":{"type":"boolean"},"dryRun":{"type":"boolean","default":false,"description":"When true, returns the object that would be deleted without deleting it."},"kb":{"type":"string","description":"KB alias."}},"required":["name","confirm"],"examples":[{"name":"ObsoletePanel","type":"WebPanel","confirm":true},{"name":"ObsoletePanel","type":"WebPanel","confirm":true,"dryRun":true}]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},
|
|
15
|
-
{"name":"genexus_refactor","description":"Run GeneXus refactor: rename, extract procedure, or WWP condition set. dryRun=true previews what would change without persisting.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["RenameAttribute","RenameVariable","RenameObject","ExtractProcedure","WWPSetCondition"]},"target":{"type":"string","description":"Primary object or symbol to refactor."},"newName":{"type":"string"},"objectName":{"type":"string"},"code":{"type":"string"},"procedureName":{"type":"string"},"controlAttribute":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"dryRun":{"type":"boolean","default":false,"description":"When true, returns what would be changed without persisting."},"kb":{"type":"string","description":"KB alias."}},"required":["action"],"examples":[{"action":"RenameObject","target":"Customer","newName":"Client"},{"action":"RenameAttribute","target":"CustomerId","newName":"ClientId"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
15
|
+
{"name":"genexus_refactor","description":"Run GeneXus refactor: rename, extract procedure, or WWP condition set. For KB-wide rename with call-site patching (RenameObject/RenameAttribute), the response includes a patched-site count from RefactorService. dryRun=true previews what would change without persisting.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["RenameAttribute","RenameVariable","RenameObject","ExtractProcedure","WWPSetCondition"]},"target":{"type":"string","description":"Primary object or symbol to refactor."},"newName":{"type":"string"},"objectName":{"type":"string"},"code":{"type":"string"},"procedureName":{"type":"string"},"controlAttribute":{"type":"string"},"value":{"type":"string"},"type":{"type":"string"},"dryRun":{"type":"boolean","default":false,"description":"When true, returns what would be changed without persisting."},"kb":{"type":"string","description":"KB alias."}},"required":["action"],"examples":[{"action":"RenameObject","target":"Customer","newName":"Client"},{"action":"RenameAttribute","target":"CustomerId","newName":"ClientId"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
16
16
|
{"name":"genexus_run_object","description":"Resolve runtime URL for an object (webRoot + aspx + encoded args). gamSession='auto'|{user,pass,...} captures GAM cookies. Does NOT open a browser. dryRun=true returns the resolved URL without performing GAM login.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"args":{"type":"array","items":{"type":"string"},"description":"Positional parameter values."},"gamSession":{"description":"'auto' (use GXMCP_GAM_USER/PASS env) or {user, pass, repository?, loginUrl?}."},"dryRun":{"type":"boolean","default":false,"description":"When true, returns the resolved URL without performing the GAM login step."},"kb":{"type":"string","description":"KB alias."}},"required":["name"],"examples":[{"name":"WPMain"},{"name":"WPCustomer","args":["42"]}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},
|
|
17
17
|
{"name":"genexus_format","description":"Format a GeneXus code snippet using worker rules.","inputSchema":{"type":"object","properties":{"code":{"type":"string"},"kb":{"type":"string","description":"KB alias."}},"required":["code"],"examples":[{"code":"for each Customer where CustomerId = &Id\n &Name = CustomerName\nendfor"}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
18
|
-
{"name":"genexus_properties","description":"Read or update GeneXus object properties. Note: Description is the title-bar text shown when a WebPanel/Popup is opened via .Popup(). Uncertain a property exists or what values it takes? → resources/read uri=genexus://kb/skills/navigation (CallProtocol does NOT apply to Web/SD Panels and 'Modal' is not a value).","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["get","set"]},"name":{"type":"string"},"control":{"type":"string","description":"Optional. Layout control name (e.g. BtnConfirmar), variable name with & prefix (e.g. &Alu2RegProf), or attribute name."},"propertyName":{"type":"string"},"value":{"type":"string"},"kb":{"type":"string","description":"KB alias."}},"required":["action","name"],"examples":[{"action":"get","name":"MyPanel"},{"action":"set","name":"MyPanel","propertyName":"Description","value":"Customer Details"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
19
|
-
{"name":"genexus_structure","description":"Read or update visual and logical structure of GeneXus objects.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["get_visual","update_visual","get_indexes","get_logic"]},"name":{"type":"string"},"payload":{"type":"object","description":"Update payload for update_visual."},"kb":{"type":"string","description":"KB alias."}},"required":["action","name"],"examples":[{"action":"get_visual","name":"Customer"},{"action":"get_indexes","name":"Customer"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
20
|
-
{"name":"genexus_layout","description":"SDK layout/WebForm ops: get_tree, set_property, find_controls, inspect_surface, scan_mutators.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["get_tree","set_property","find_controls","set_properties","inspect_surface","get_preview","scan_mutators","rename_printblock","add_printblock"]},"name":{"type":"string"},"
|
|
18
|
+
{"name":"genexus_properties","description":"Read or update GeneXus object properties. Note: Description is the title-bar text shown when a WebPanel/Popup is opened via .Popup(). Uncertain a property exists or what values it takes? → resources/read uri=genexus://kb/skills/navigation (CallProtocol does NOT apply to Web/SD Panels and 'Modal' is not a value). Use genexus_layout set_property for layout control properties.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["get","set"]},"name":{"type":"string"},"control":{"type":"string","description":"Optional. Layout control name (e.g. BtnConfirmar), variable name with & prefix (e.g. &Alu2RegProf), or attribute name."},"propertyName":{"type":"string"},"value":{"type":"string"},"kb":{"type":"string","description":"KB alias."}},"required":["action","name"],"examples":[{"action":"get","name":"MyPanel"},{"action":"set","name":"MyPanel","propertyName":"Description","value":"Customer Details"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
19
|
+
{"name":"genexus_structure","description":"Read or update visual and logical structure of GeneXus objects. For layout control trees use genexus_layout get_tree; for object-level visual structure use get_visual here.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["get_visual","update_visual","get_indexes","get_logic"]},"name":{"type":"string"},"payload":{"type":"object","description":"Update payload for update_visual."},"kb":{"type":"string","description":"KB alias."}},"required":["action","name"],"examples":[{"action":"get_visual","name":"Customer"},{"action":"get_indexes","name":"Customer"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
20
|
+
{"name":"genexus_layout","description":"SDK layout/WebForm ops: get_tree, set_property, find_controls, inspect_surface, scan_mutators. For object-level properties use genexus_properties; for object-level visual structure use genexus_structure get_visual.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["get_tree","set_property","find_controls","set_properties","inspect_surface","get_preview","scan_mutators","rename_printblock","add_printblock"]},"name":{"type":"string"},"control":{"type":"string"},"propertyName":{"type":"string"},"value":{"type":"string"},"query":{"type":"string"},"changes":{"type":"array","items":{"type":"object","properties":{"control":{"type":"string"},"propertyName":{"type":"string"},"value":{"type":"string"}},"required":["control","propertyName","value"]}},"limit":{"type":"integer"},"currentName":{"type":"string"},"newName":{"type":"string"},"printBlockName":{"type":"string"},"height":{"type":"integer"},"kb":{"type":"string","description":"KB alias."}},"required":["action"],"examples":[{"action":"get_tree","name":"WPMain"},{"action":"find_controls","name":"WPMain","query":"Button"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
21
21
|
{"name":"genexus_doc","description":"Use to generate structured docs (wiki, sequence diagrams, health reports). Don't use for programmatic analysis (see genexus_analyze) or source (see genexus_read).","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["wiki","visualize","health"]},"target":{"type":"string","description":"Object or domain name."}},"required":["action"],"examples":[{"action":"wiki","target":"Customer"},{"action":"health"}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
22
|
-
{"name":"genexus_search_source","description":"Regex/semantic search across Procedure/DataProvider/WebPanel/Transaction source.","inputSchema":{"type":"object","properties":{"callee":{"type":"string","description":"Method/function name (qualified or unqualified)."},"argMatches":{"type":"object","description":"Positional arg index to expected literal text."},"pattern":{"type":"string"},"typeFilter":{"type":"string"},"scope":{"type":"array","items":{"type":"string"}},"fields":{"type":"array","items":{"type":"string","enum":["source","caption","description","parmNames","webForm"]},"description":"Fields to search. Default [source]. Add webForm to scan WebPanel/Transaction WebForm XML (layout-form examples)."},"maxResults":{"type":"integer"},"caseSensitive":{"type":"boolean"},"includeComments":{"type":"boolean"},"inline_read_top":{"type":"integer","description":"0-3. Inline reads of top N distinct objects in response."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"pattern":"ControlType=\"Radio\""},{"pattern":"for each","typeFilter":"Procedure","maxResults":20}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
22
|
+
{"name":"genexus_search_source","description":"Regex/semantic search across Procedure/DataProvider/WebPanel/Transaction source. Requires the KB index to be Ready — check genexus_lifecycle action=status if results look empty.","inputSchema":{"type":"object","properties":{"callee":{"type":"string","description":"Method/function name (qualified or unqualified)."},"argMatches":{"type":"object","description":"Positional arg index to expected literal text."},"pattern":{"type":"string"},"typeFilter":{"type":"string"},"scope":{"type":"array","items":{"type":"string"}},"fields":{"type":"array","items":{"type":"string","enum":["source","caption","description","parmNames","webForm"]},"description":"Fields to search. Default [source]. Add webForm to scan WebPanel/Transaction WebForm XML (layout-form examples)."},"maxResults":{"type":"integer"},"caseSensitive":{"type":"boolean"},"includeComments":{"type":"boolean"},"inline_read_top":{"type":"integer","description":"0-3. Inline reads of top N distinct objects in response."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"pattern":"ControlType=\"Radio\""},{"pattern":"for each","typeFilter":"Procedure","maxResults":20}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
23
23
|
{"name":"genexus_kb","description":"Manage open KBs and startup config. list/open/close/set_default operate on WorkerPool; set_startup/get_startup mirror IDE 'Set As Startup Object'.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["list","open","close","set_default","set_startup","get_startup"]},"alias":{"type":"string","description":"KB alias. open: auto from path basename if omitted."},"path":{"type":"string","description":"Absolute KB path (required for open if alias not in config)."},"name":{"type":"string","description":"Object name (required for set_startup)."}},"required":["action"],"examples":[{"action":"open","path":"C:\\KBs\\MyKb"},{"action":"list"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
24
24
|
{"name":"genexus_navigation","description":"View navigation report (IDE Right-click → View Navigation). latest=true returns cached report from .gx/navigation-cache; else runs fresh.","inputSchema":{"type":"object","required":["action","name"],"properties":{"action":{"type":"string","enum":["view"]},"name":{"type":"string"},"latest":{"type":"boolean","default":false,"description":"Return the most recent cached navigation if any; otherwise run fresh."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"view","name":"Customer"},{"action":"view","name":"Customer","latest":true}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
25
25
|
{"name":"genexus_api","description":"Introspect REST endpoints exposed by HTTP procedures. action=list|describe|snapshot|diff_baseline. Returns endpoints + detects breaking changes vs a saved baseline.","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["list","describe","snapshot","diff_baseline"]},"target":{"type":"string","description":"Procedure name (action=describe)."},"name":{"type":"string","description":"Baseline name (action=snapshot)."},"baseline":{"type":"string","description":"Baseline name under .gx/api-baselines/ or absolute path (action=diff_baseline)."},"pathPrefix":{"type":"string","description":"Folder prefix filter (action=list), e.g. 'Root Module/API/'."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"list"},{"action":"describe","target":"ApiCustomerGet"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
@@ -28,17 +28,12 @@
|
|
|
28
28
|
{"name":"genexus_security","description":"Audit KB security. action=audit_gam scans GAM/env props; action=scan_secrets greps Source for credential-shaped literals. Returns findings with severity.","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["audit_gam","scan_secrets"]},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"audit_gam"},{"action":"scan_secrets"}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
29
29
|
{"name":"genexus_doctor","description":"Health check: GX install, KB state, worker, cache age, recent telemetry. Paste output for triage when something feels off.","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"examples":[{}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
30
30
|
{"name":"genexus_edit_form","description":"Semantic WebForm edits. Actions: add_textblock, add_button, set_visibility, remove_control, wrap_in_fieldset.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["add_textblock","add_button","set_visibility","remove_control","wrap_in_fieldset"]},"name":{"type":"string"},"parent":{"type":"string"},"position":{"type":"string","description":"first|last|after:<id>"},"caption":{"type":"string"},"format":{"type":"string","enum":["Text","HTML"]},"event":{"type":"string"},"controlId":{"type":"string"},"controlIds":{"type":"array","items":{"type":"string"}},"legend":{"type":"string"},"visible":{"type":"boolean"},"dryRun":{"type":"boolean"},"kb":{"type":"string","description":"KB alias."}},"required":["action","name"],"examples":[{"action":"add_button","name":"WPMain","caption":"Confirmar","event":"OnConfirm"},{"action":"set_visibility","name":"WPMain","controlId":"GrpDetail","visible":false}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
31
|
-
{"name":"genexus_worker_pool","description":"Pre-spawn N warm workers bound to declared KBs to skip cold-start. Returns {status,spareCount,configured}. spareCount<=0 disables; capped at 5.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["warm_spares"]},"spareCount":{"type":"integer","description":"Number of spares to pre-spawn (0 disables; capped at 5)."}},"examples":[{"action":"warm_spares","spareCount":2}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},
|
|
32
31
|
{"name":"genexus_gxserver","description":"Surface GxServer sync state (status/pending/conflicts/history). Read-only v1. Returns {connected:false} when KB is not linked.","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["status","pending","conflicts","history"]},"limit":{"type":"integer","description":"history only; default 10, max 200."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"status"},{"action":"history","limit":20}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
33
|
-
{"name":"
|
|
34
|
-
{"name":"
|
|
35
|
-
{"name":"
|
|
36
|
-
{"name":"
|
|
37
|
-
{"name":"genexus_browser","description":"Headless-browser verification umbrella. action=smoke (HTTP 200 + clean console), a11y (axe), wcag (caption/tooltip lint), capture (console/network/exceptions), cross (multi-engine), preview (render WebPanel + capture HTML/a11y/screenshot, optionally diff baseline). preview uses mode=render|run (default render; run auto-resolves the KB launcher, IDE F5 parity).","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["smoke","a11y","wcag","capture","cross","preview"]},"target":{"type":"string","description":"WebPanel name. Alias of 'name'."},"name":{"type":"string","description":"Alias of 'target'."},"mode":{"type":"string","enum":["render","run"],"description":"preview only."},"capture":{"type":"array","items":{"type":"string"},"description":"capture|cross|preview channels: console|network|exceptions|html|a11y|screenshot."},"browsers":{"type":"array","items":{"type":"string","enum":["chrome","firefox","safari","webkit"]},"description":"cross only."},"parms":{"type":"object","description":"preview only."},"launcher":{"type":"string","description":"preview only."},"buildFirst":{"type":"boolean","description":"preview only."},"waitMs":{"type":"integer","description":"preview only."},"diffBaseline":{"type":"boolean","description":"preview only."},"updateBaseline":{"type":"boolean","description":"preview only."},"fill":{"type":"object","description":"preview only."},"click":{"type":"string","description":"preview only."},"auth":{"type":"object","description":"preview only."},"emulate":{"type":"string","enum":["iPhone12","iPhone15Pro","iPadPro","Pixel7","desktop1920","desktop1280"],"description":"preview only."},"network":{"type":"string","enum":["fast","slow3g","fast3g","offline"],"description":"preview only."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"preview","name":"WPMain"},{"action":"cross","name":"WPMain","browsers":["chrome","firefox"]}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},
|
|
38
|
-
{"name":"genexus_db","description":"Database umbrella. action: drift_check|drift_report (Transaction↔DB schema drift) | optimize_analyze|optimize_suggest|optimize_report (static index advisor) | sql_ddl|sql_navigation (SQL for Transaction/Procedure) | sample_data (fake INSERTs) | types_list|types_describe|types_validate (Domains/SDT constraints) | translations_import.","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["drift_check","drift_report","optimize_analyze","optimize_suggest","optimize_report","sql_ddl","sql_navigation","sample_data","types_list","types_describe","types_validate","translations_import"]},"target":{"type":"string","description":"Object/transaction/type name. Alias of name/trn."},"name":{"type":"string","description":"Alias of target."},"trn":{"type":"string","description":"sample_data: Transaction name."},"rows":{"type":"integer","description":"sample_data: 1-1000; default 5."},"includeSubordinated":{"type":"boolean","description":"sql_ddl only."},"levelNumber":{"type":"integer","description":"sql_navigation only."},"includeExecutionPlan":{"type":"boolean","description":"sql_navigation."},"includeIndexAdvisor":{"type":"boolean","description":"sql_navigation."},"format":{"type":"string","enum":["json","markdown"],"description":"optimize_report only."},"kind":{"type":"string","enum":["domain","sdt","all"],"description":"types_list filter."},"value":{"type":"string","description":"types_validate."},"type":{"type":"string","description":"types_validate / disambiguator."},"inputPath":{"type":"string","description":"translations_import: CSV path."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"drift_check"},{"action":"sql_ddl","target":"Customer"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
39
|
-
{"name":"genexus_versioning","description":"Versioning umbrella. action: history_list|history_get|history_save|history_restore (snapshot store; restore+discard=true is IDE 'Discard changes' parity) | undo (revert last N edits) | time_travel (recover bytes from a past git commit) | blame (git blame an object part) | diff (text: mode=textVsText|currentVsText) | diff_generated (against=last-build|git-head).","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["history_list","history_get","history_save","history_restore","undo","time_travel","blame","diff","diff_generated"]},"name":{"type":"string"},"part":{"type":"string"},"versionId":{"type":"integer"},"snapshot":{"type":"string"},"discard":{"type":"boolean"},"dryRun":{"type":"boolean"},"last":{"type":"integer","description":"undo: default 1, max 20."},"at":{"type":"string","description":"time_travel: ISO-8601 or commit sha."},"line":{"type":"integer","description":"blame."},"filePath":{"type":"string","description":"blame."},"context":{"type":"integer","description":"blame."},"mode":{"type":"string","enum":["textVsText","currentVsText"],"description":"diff."},"left":{"type":"string","description":"diff."},"right":{"type":"string","description":"diff."},"against":{"type":"string","enum":["last-build","git-head"],"description":"diff_generated."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"history_list","name":"Customer"},{"action":"time_travel","name":"Customer","at":"2026-05-20T10:00:00Z"}]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}},
|
|
40
|
-
{"name":"genexus_io","description":"IO umbrella for assets, part text exchange, screenshots, OCR. action: asset_find|asset_read|asset_write (binary asset CRUD) | export_part|import_part (object part to/from a text file) | export_unified (full object envelope JSON) | screenshot_publish (copy PNG to .gx/published-screenshots) | ocr (Tesseract stub).","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["asset_find","asset_read","asset_write","export_part","import_part","export_unified","screenshot_publish","ocr"]},"path":{"type":"string","description":"asset/screenshot_publish/ocr."},"name":{"type":"string","description":"export/import/export_unified."},"outputPath":{"type":"string","description":"export_part."},"inputPath":{"type":"string","description":"import_part."},"part":{"type":"string","description":"export/import_part."},"type":{"type":"string","description":"export/import/export_unified disambiguator."},"overwrite":{"type":"boolean","description":"export_part."},"pattern":{"type":"string","description":"asset_find."},"relativeRoot":{"type":"string","description":"asset_find."},"limit":{"type":"integer","description":"asset_find."},"includeContent":{"type":"boolean","description":"asset_find."},"maxBytes":{"type":"integer","description":"asset_read."},"contentBase64":{"type":"string","description":"asset_write."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"asset_read","path":"C:\\KBs\\MyKb\\custom.xml"},{"action":"export_part","name":"Customer","part":"Source","outputPath":"C:\\tmp\\Customer.gxp"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
32
|
+
{"name":"genexus_browser","description":"Headless-browser verification umbrella. action=smoke (HTTP 200 + clean console), a11y (axe), wcag (caption/tooltip lint), capture (console/network/exceptions), cross (multi-engine), preview (render WebPanel + capture HTML/a11y/screenshot, optionally diff baseline). preview uses mode=render|run (default render; run auto-resolves the KB launcher, IDE F5 parity).","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["smoke","a11y","wcag","capture","cross","preview"]},"name":{"type":"string","description":"WebPanel name."},"mode":{"type":"string","enum":["render","run"],"description":"preview only."},"capture":{"type":"array","items":{"type":"string"},"description":"capture|cross|preview channels: console|network|exceptions|html|a11y|screenshot."},"browsers":{"type":"array","items":{"type":"string","enum":["chrome","firefox","safari","webkit"]},"description":"cross only."},"parms":{"type":"object","description":"preview only."},"launcher":{"type":"string","description":"preview only."},"buildFirst":{"type":"boolean","description":"preview only."},"waitMs":{"type":"integer","description":"preview only."},"diffBaseline":{"type":"boolean","description":"preview only."},"updateBaseline":{"type":"boolean","description":"preview only."},"fill":{"type":"object","description":"preview only."},"click":{"type":"string","description":"preview only."},"auth":{"type":"object","description":"preview only."},"emulate":{"type":"string","enum":["iPhone12","iPhone15Pro","iPadPro","Pixel7","desktop1920","desktop1280"],"description":"preview only."},"network":{"type":"string","enum":["fast","slow3g","fast3g","offline"],"description":"preview only."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"preview","name":"WPMain"},{"action":"cross","name":"WPMain","browsers":["chrome","firefox"]}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},
|
|
33
|
+
{"name":"genexus_db","description":"Database umbrella. action: drift_check|drift_report (Transaction↔DB schema drift) | optimize_analyze|optimize_suggest|optimize_report (static index advisor) | sql_ddl|sql_navigation (SQL for Transaction/Procedure) | sample_data (fake INSERTs) | types_list|types_describe|types_validate (Domains/SDT constraints) | translations_import.","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["drift_check","drift_report","optimize_analyze","optimize_suggest","optimize_report","sql_ddl","sql_navigation","sample_data","types_list","types_describe","types_validate","translations_import"]},"name":{"type":"string","description":"Object/transaction/type name."},"trn":{"type":"string","description":"sample_data: Transaction name."},"rows":{"type":"integer","description":"sample_data: 1-1000; default 5."},"includeSubordinated":{"type":"boolean","description":"sql_ddl only."},"levelNumber":{"type":"integer","description":"sql_navigation only."},"includeExecutionPlan":{"type":"boolean","description":"sql_navigation."},"includeIndexAdvisor":{"type":"boolean","description":"sql_navigation."},"format":{"type":"string","enum":["json","markdown"],"description":"optimize_report only."},"kind":{"type":"string","enum":["domain","sdt","all"],"description":"types_list filter."},"value":{"type":"string","description":"types_validate."},"type":{"type":"string","description":"types_validate / disambiguator."},"inputPath":{"type":"string","description":"translations_import: CSV path."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"drift_check"},{"action":"sql_ddl","name":"Customer"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
34
|
+
{"name":"genexus_versioning","description":"Versioning umbrella. action: history_list|history_get|history_save|history_restore (snapshot store; restore+discard=true is IDE 'Discard changes' parity) | undo (revert last N edits) | time_travel (recover bytes from a past git commit) | blame (git blame an object part) | diff (text: mode=textVsText|currentVsText) | diff_generated (against=last-build|git-head).","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["history_list","history_get","history_save","history_restore","undo","time_travel","blame","diff","diff_generated"]},"name":{"type":"string"},"part":{"type":"string"},"versionId":{"type":"integer"},"snapshot":{"type":"string"},"discard":{"type":"boolean"},"dryRun":{"type":"boolean"},"last":{"type":"integer","description":"undo: default 1, max 20."},"at":{"type":"string","description":"time_travel: ISO-8601 or commit sha."},"line":{"type":"integer","description":"blame: 1-based line number to annotate."},"filePath":{"type":"string","description":"blame: absolute or KB-relative file path."},"context":{"type":"integer","description":"blame: surrounding lines of context."},"mode":{"type":"string","enum":["textVsText","currentVsText"],"description":"diff."},"left":{"type":"string","description":"diff: left-side text or snapshot label."},"right":{"type":"string","description":"diff: right-side text or snapshot label."},"against":{"type":"string","enum":["last-build","git-head"],"description":"diff_generated."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"history_list","name":"Customer"},{"action":"time_travel","name":"Customer","at":"2026-05-20T10:00:00Z"}]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},
|
|
35
|
+
{"name":"genexus_io","description":"IO umbrella for assets, part text exchange, screenshots, OCR. action: asset_find|asset_read|asset_write (binary asset CRUD) | export_part|import_part (object part to/from a text file) | export_unified (full object envelope JSON) | screenshot_publish (copy PNG to .gx/published-screenshots) | ocr (Tesseract stub).","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["asset_find","asset_read","asset_write","export_part","import_part","export_unified","screenshot_publish","ocr"]},"path":{"type":"string","description":"asset/screenshot_publish/ocr: file path."},"name":{"type":"string","description":"export/import/export_unified: object name."},"outputPath":{"type":"string","description":"export_part: destination file path."},"inputPath":{"type":"string","description":"import_part: source file path."},"part":{"type":"string","description":"export/import_part: part name (e.g. Source)."},"type":{"type":"string","description":"export/import/export_unified disambiguator."},"overwrite":{"type":"boolean","description":"export_part: overwrite if exists."},"pattern":{"type":"string","description":"asset_find: glob pattern."},"relativeRoot":{"type":"string","description":"asset_find: root for relative paths."},"limit":{"type":"integer","description":"asset_find: max results."},"includeContent":{"type":"boolean","description":"asset_find: inline file content."},"maxBytes":{"type":"integer","description":"asset_read: max bytes to return."},"contentBase64":{"type":"string","description":"asset_write: base64-encoded file content."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"asset_read","path":"C:\\KBs\\MyKb\\custom.xml"},{"action":"export_part","name":"Customer","part":"Source","outputPath":"C:\\tmp\\Customer.gxp"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
41
36
|
{"name":"genexus_variable","description":"Variables part CRUD. action: add | delete (idempotent; refuses GAM/WWP+ framework-managed vars) | modify (atomically change type; preserves name+description). async=true returns an operationId for lifecycle polling. dryRun=true previews the change without persisting. varName required for all; typeName required for add+modify.","inputSchema":{"type":"object","required":["action","name","varName"],"properties":{"action":{"type":"string","enum":["add","delete","modify"]},"name":{"type":"string"},"varName":{"type":"string"},"typeName":{"type":"string"},"basedOn":{"type":"string","description":"modify optional: Domain."},"dryRun":{"type":"boolean","default":false,"description":"When true, returns what would change without persisting."},"async":{"type":"boolean","description":"Run as a background job. Result returns operationId/job_id for genexus_lifecycle polling."},"estimated_seconds":{"type":"integer","description":"When async=true, expected runtime used for progress/job metadata (default 30)."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"add","name":"MyPanel","varName":"&Choice","typeName":"Numeric"},{"action":"delete","name":"MyPanel","varName":"&OldVar"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
42
|
-
{"name":"genexus_telemetry","description":"Observability umbrella. action: executions (recent invocations) | watch_event (ops mentioning an event) | friction_append|friction_tail (.gx/friction.jsonl) | learning_report (aggregate friction) | logs (worker_debug.log tail) | profile_analyze|profile_hotspots|profile_correlate (GeneXus profiler XML).","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["executions","watch_event","friction_append","friction_tail","learning_report","logs","profile_analyze","profile_hotspots","profile_correlate"]},"target":{"type":"string"},"event":{"type":"string","description":"watch_event."},"last":{"type":"integer","description":"executions/watch_event."},"tool":{"type":"string","description":"friction_append."},"message":{"type":"string","description":"friction_append."},"severity":{"type":"string","enum":["info","warn","error","critical"],"description":"friction_append."},"n":{"type":"integer","description":"friction_tail."},"since":{"type":"string","description":"learning_report/logs."},"until":{"type":"string","description":"learning_report."},"tail":{"type":"integer","description":"logs."},"filterCorrelation":{"type":"string","description":"logs."},"grep":{"type":"string","description":"logs."},"path":{"type":"string","description":"profile_
|
|
37
|
+
{"name":"genexus_telemetry","description":"Observability umbrella. action: executions (recent invocations) | watch_event (ops mentioning an event) | friction_append|friction_tail (.gx/friction.jsonl) | learning_report (aggregate friction) | logs (worker_debug.log tail) | profile_analyze|profile_hotspots|profile_correlate (GeneXus profiler XML).","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["executions","watch_event","friction_append","friction_tail","learning_report","logs","profile_analyze","profile_hotspots","profile_correlate"]},"target":{"type":"string","description":"executions/watch_event: object name to filter."},"event":{"type":"string","description":"watch_event: event name to match in operation payload."},"last":{"type":"integer","description":"executions/watch_event: max results."},"tool":{"type":"string","description":"friction_append: tool name that produced the friction entry."},"message":{"type":"string","description":"friction_append: description of the friction encountered."},"severity":{"type":"string","enum":["info","warn","error","critical"],"description":"friction_append: severity level."},"n":{"type":"integer","description":"friction_tail: number of recent lines to return."},"since":{"type":"string","description":"learning_report/logs: ISO-8601 start time filter."},"until":{"type":"string","description":"learning_report: ISO-8601 end time filter."},"tail":{"type":"integer","description":"logs: number of tail lines from worker_debug.log."},"filterCorrelation":{"type":"string","description":"logs: filter by correlation/operation ID."},"grep":{"type":"string","description":"logs: substring filter on log lines."},"path":{"type":"string","description":"profile_*: path to the GeneXus profiler XML file."},"top":{"type":"integer","description":"profile_hotspots: top-N hottest procedures to return."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"executions"},{"action":"friction_tail","n":20}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
43
38
|
{"name":"genexus_create","description":"Creation umbrella. action: object (Transaction/Procedure/WebPanel/SDT/Domain/Dashboard; Domain takes dataType+length or enumValues; NOT WWP — use genexus_apply_pattern) | popup (popup WebPanel with Form type='layout' body) | sd_panel_create|sd_panel_inspect|sd_panel_edit | save_as (clone parts) | scaffold|translate|sample (forge) | template (kpi_header|empty_state|confirm_dialog).","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["object","popup","sd_panel_create","sd_panel_inspect","sd_panel_edit","save_as","scaffold","translate","sample","template"]},"type":{"type":"string"},"name":{"type":"string"},"newName":{"type":"string","description":"save_as."},"description":{"type":"string"},"dataType":{"type":"string","description":"object Domain."},"length":{"type":"integer","description":"object Domain."},"decimals":{"type":"integer","description":"object Domain."},"signed":{"type":"boolean","description":"object Domain."},"basedOn":{"type":"string","description":"object Domain."},"enumValues":{"type":"array","items":{"type":"object"},"description":"object Domain enum."},"spec":{"type":"object","description":"popup."},"part":{"type":"string","description":"sd_panel_edit/template."},"content":{"type":"string","description":"sd_panel_edit/scaffold/translate."},"includePatternInstance":{"type":"boolean","description":"save_as."},"overwrite":{"type":"boolean","description":"save_as."},"dryRun":{"type":"boolean","description":"popup/save_as/template/object."},"template":{"type":"string","enum":["kpi_header","empty_state","confirm_dialog"],"description":"template."},"args":{"type":"object","description":"template."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"object","name":"NewPanel","type":"WebPanel"},{"action":"popup","name":"MyPopup","spec":{"host":"Customer"}}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}}
|
|
44
39
|
]
|
|
Binary file
|