genexus-mcp 2.26.0 β 2.27.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/README.md +98 -13
- package/package.json +1 -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/tool_definitions.json +3 -2
- package/publish/worker/GxMcp.Worker.exe +0 -0
package/README.md
CHANGED
|
@@ -18,6 +18,27 @@ In practice: you point the MCP at your KB, then ask your AI assistant things lik
|
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
21
|
+
## What you can do with it
|
|
22
|
+
|
|
23
|
+
A quick map of what the agent can do against your real KB through the **44 tools** (details in [Tool Surface](#tool-surface)):
|
|
24
|
+
|
|
25
|
+
| Area | What the agent can do |
|
|
26
|
+
|---|---|
|
|
27
|
+
| π **Explore** | Search & list objects, read any part (source, rules, events, structure, docs, pattern XML), inspect metadata & callers, regex-search source, view the navigation report |
|
|
28
|
+
| βοΈ **Edit code** | Edit any object part (`full`/`patch`/`ops` modes), variables CRUD, format, create & delete objects, edit + rebuild callers in one shot |
|
|
29
|
+
| ποΈ **Author the data model** | Transaction structure (DSL), **unique/non-unique indexes** (create & drop), **attribute formulas & subtypes**, level Description/Image attributes, **Domain enum values**, folders & modules |
|
|
30
|
+
| π§© **Author other objects** | External Object methods & properties, Menu options, REST API objects, WorkWithPlus / WorkWith patterns |
|
|
31
|
+
| π¨ **UI & WorkWithPlus** | Full read/write of pattern XML (controls, actions, grids, orders, groups), theme classes & styling, native WebForm/layout edits, headless-browser verification |
|
|
32
|
+
| π¬ **Analyze** | Impact/dependency analysis, complexity & code metrics, naming, explain-what-this-does, security audit, generated-SQL & DDL preview, schema-drift check |
|
|
33
|
+
| π οΈ **Build & test** | Build (full or fast `compile_check`), validate, reorg, index, run native GXtest tests |
|
|
34
|
+
| π **Refactor & compare** | Rename across the KB, extract procedure, compare & merge objects (IDE parity) |
|
|
35
|
+
| πΏ **Versioning & teams** | KB model versions/branches, GXserver (Team Development) sync, git-style history, multi-KB parallel work |
|
|
36
|
+
| π **Security** | GAM / integrated-security provisioning, KB security audit |
|
|
37
|
+
|
|
38
|
+
It works through the **native GeneXus SDK** β the same code paths the IDE uses β so edits are real and validated, not text hacks on KB files.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
21
42
|
## Prerequisites
|
|
22
43
|
|
|
23
44
|
Before you start, make sure you have:
|
|
@@ -145,6 +166,13 @@ Once installed, here's what unlocks. Try these as your first prompts:
|
|
|
145
166
|
- *"Add a new attribute CreatedAt of type DateTime to the Customer transaction."*
|
|
146
167
|
- *"Rename the variable &qty to &quantity in procedure CreateOrder."*
|
|
147
168
|
|
|
169
|
+
**Data model authoring** (no IDE round-trip)
|
|
170
|
+
- *"Make CustomerEmail unique on the Customer transaction."* (creates a unique index)
|
|
171
|
+
- *"Turn CustomerBalance into a formula: sum(InvoiceAmount)."*
|
|
172
|
+
- *"Add the enum values Active/Inactive/Pending to the Status domain."*
|
|
173
|
+
- *"Add a property apiKey and a method Connect(url) to the PaymentGateway external object."*
|
|
174
|
+
- *"Add a menu option 'Customers' to MainMenu that opens CustomerWW."*
|
|
175
|
+
|
|
148
176
|
**WorkWithPlus pattern editing** (full structural + theming control)
|
|
149
177
|
- *"In WorkWithPlusOrder, add a 'Duplicate' button to the transaction view alongside Save/Cancel/Delete."*
|
|
150
178
|
- *"Group the Customer transaction attributes into a 'Contact Info' section with theme class GroupTelaResp."*
|
|
@@ -162,7 +190,7 @@ Once installed, here's what unlocks. Try these as your first prompts:
|
|
|
162
190
|
- *"Build the KB and report any errors."*
|
|
163
191
|
- *"Run the unit tests and show me which failed."*
|
|
164
192
|
|
|
165
|
-
The agent picks the right tool from the **
|
|
193
|
+
The agent picks the right tool from the **40+ tools** the MCP exposes (read, edit, refactor, analyze, build, data-model authoring, layout automation, DB/DDL, versioning, security, SQL preview, etc.). The full tool list is in [Tool Surface](#tool-surface) below.
|
|
166
194
|
|
|
167
195
|
---
|
|
168
196
|
|
|
@@ -206,22 +234,79 @@ Still stuck? [Open an issue](https://github.com/lennix1337/Genexus18MCP/issues)
|
|
|
206
234
|
|
|
207
235
|
## Tool Surface
|
|
208
236
|
|
|
209
|
-
The worker exposes
|
|
237
|
+
The worker exposes **44 tools** to the MCP router, grouped by capability below. Most are umbrellas with an `action` (e.g. `genexus_db action=sql_ddl`); the detailed schemas live in [`src/GxMcp.Gateway/tool_definitions.json`](src/GxMcp.Gateway/tool_definitions.json).
|
|
238
|
+
|
|
239
|
+
**Orientation & health**
|
|
240
|
+
- `genexus_whoami` β KB context, version, worker/index/database health, self-update check, next-step hints
|
|
241
|
+
- `genexus_doctor` β connection + install + cache health check
|
|
242
|
+
- `genexus_recipe` β named playbooks / self-extending macros
|
|
243
|
+
- `genexus_telemetry` β observability (metrics, latency, errors)
|
|
244
|
+
|
|
245
|
+
**Search & discovery**
|
|
246
|
+
- `genexus_query` β object search (prefixes `name:`, `type:`, `usedby:`, `parent:`, β¦)
|
|
247
|
+
- `genexus_list_objects` β paginated object listing with aggregates
|
|
248
|
+
- `genexus_read` β read any part of an object (source, structure, rules, events, docs, pattern XML, β¦)
|
|
249
|
+
- `genexus_inspect` β one-shot object snapshot (metadata, variables, structure, signature, callers)
|
|
250
|
+
- `genexus_search_source` β regex/semantic search across Procedure/DataProvider/WebPanel/Transaction source
|
|
251
|
+
- `genexus_navigation` β the IDE "View Navigation" report
|
|
210
252
|
|
|
211
|
-
|
|
212
|
-
-
|
|
213
|
-
-
|
|
214
|
-
-
|
|
215
|
-
-
|
|
216
|
-
-
|
|
217
|
-
-
|
|
218
|
-
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
-
|
|
253
|
+
**Editing**
|
|
254
|
+
- `genexus_edit` β edit any object part; modes `full` / `patch` / `ops`
|
|
255
|
+
- `genexus_edit_and_build` β edit + rebuild callers in one call
|
|
256
|
+
- `genexus_edit_form` β semantic WebForm edits
|
|
257
|
+
- `genexus_variable` β Variables-part CRUD
|
|
258
|
+
- `genexus_create` β creation umbrella (Transaction, Procedure, Domain, SDT, API, Folder, Module, β¦)
|
|
259
|
+
- `genexus_delete_object` β delete an object
|
|
260
|
+
- `genexus_format` β format a code snippet with the worker's rules
|
|
261
|
+
|
|
262
|
+
**Data model & structure authoring**
|
|
263
|
+
- `genexus_structure` β read/write the data model: `get_visual`/`get_logic`, `update_visual` (structure DSL), `create_index`/`drop_index` (unique/non-unique indexes β the GeneXus way to enforce uniqueness), `set_attribute` (Formula, subtype, Title/ColumnTitle, IsCollection, basedOnDomain), `set_level` (level Description/Image attribute), `set_domain` (edit an existing Domain's enum values / base type)
|
|
264
|
+
- `genexus_authoring` β members of object types the structure DSL doesn't cover: `add_external_method`/`add_external_property` (External Objects), `add_menu_option` (Menus)
|
|
265
|
+
- `genexus_properties` β read/update object-level properties
|
|
266
|
+
|
|
267
|
+
**Refactor, patterns & compare**
|
|
268
|
+
- `genexus_refactor` β rename, extract procedure, WWP condition set
|
|
269
|
+
- `genexus_apply_pattern` β apply a GeneXus pattern (WorkWith, WorkWithPlus, β¦)
|
|
270
|
+
- `genexus_compare` β IDE "Compare Objects" parity (`IComparerService`)
|
|
271
|
+
- `genexus_merge` β 2- or 3-way object merge (`IMergeService`)
|
|
272
|
+
|
|
273
|
+
**Analysis, docs & API**
|
|
274
|
+
- `genexus_analyze` β cross-object semantic analysis (impact, dependencies, complexity, naming, code_metrics, summary, explain, β¦)
|
|
275
|
+
- `genexus_doc` β generate wiki / sequence diagrams / health reports
|
|
276
|
+
- `genexus_api` β introspect REST endpoints exposed by HTTP procedures
|
|
277
|
+
- `genexus_security` β audit KB security
|
|
278
|
+
|
|
279
|
+
**Lifecycle, build, test & DB**
|
|
280
|
+
- `genexus_lifecycle` β build (incl. `compile_check`), validate, index, reorg, poll status
|
|
281
|
+
- `genexus_test` β run native GXtest tests
|
|
282
|
+
- `genexus_db` β DB umbrella: schema-drift, `sql_ddl`/`sql_navigation`, static index advisor, `sample_data`, Domain/SDT type introspection, translation import
|
|
283
|
+
- `genexus_run_object` / `genexus_browser` β resolve runtime URL and headless-browser verification
|
|
284
|
+
|
|
285
|
+
**Native layout / UI**
|
|
286
|
+
- `genexus_layout` β SDK layout/WebForm ops (`get_tree`, `find_controls`, `set_property`, `add_printblock`, `get_preview`, β¦)
|
|
287
|
+
|
|
288
|
+
**KB pool, versioning & team dev**
|
|
289
|
+
- `genexus_kb` β multi-KB pool (`list`/`open`/`close`/`set_default`)
|
|
290
|
+
- `genexus_module` β Module Manager (`IModuleManagerService`)
|
|
291
|
+
- `genexus_kb_version` β model version/branch management (Create/Activate/Revert)
|
|
292
|
+
- `genexus_versioning` β versioning umbrella (git-style history over the KB)
|
|
293
|
+
- `genexus_gxserver` β GXserver / Team Development sync
|
|
294
|
+
- `genexus_memory` β per-KB fact store for the agent
|
|
295
|
+
|
|
296
|
+
**Security provisioning, IO & meta**
|
|
297
|
+
- `genexus_gam` β GAM / integrated-security provisioning (`IIntegratedSecurityService`)
|
|
298
|
+
- `genexus_io` β assets, part-text exchange, screenshots, OCR
|
|
299
|
+
- `genexus_sdk_probe` β dump the live SDK surface (types/methods/props) for capability discovery
|
|
300
|
+
- `genexus_worker_reload` β hot-swap the worker without restarting the client
|
|
222
301
|
|
|
223
302
|
> **Multi-KB (v2.3.0+):** every non-meta tool takes an optional `kb` argument (alias or absolute path). The gateway can hold up to `Server.MaxOpenKbs` (default 3) KBs open at once, each in its own Worker process β calls to different KBs run truly in parallel. See [Advanced Configuration](#advanced-configuration) for the `KBs[]` schema.
|
|
224
303
|
|
|
304
|
+
### WorkWithPlus & theming (via `genexus_read` / `genexus_edit`)
|
|
305
|
+
|
|
306
|
+
- Full read/write of `PatternInstance` / `PatternVirtual` XML: containers (`<table>`, groups), controls (`<textBlock>`, `<attribute>`, `<gridAttribute>`, `<filterAttribute>`, `<errorViewer>`), actions (`<standardAction>`, `<userAction>`), grids, orders, rules, event blocks. Transaction and Selection views are addressable independently.
|
|
307
|
+
- `Documentation` (markdown) and `Help` (HTML) are first-class write targets.
|
|
308
|
+
- Apply real ThemeClass values (`themeClass`, `buttonClass`, `groupThemeClass`, β¦); discover them with `genexus_list_objects --typeFilter ThemeClass`.
|
|
309
|
+
|
|
225
310
|
**Edit modes** (`genexus_edit`): `full` (whole-part replacement, default), `patch` (Replace/Insert_After/Append over a context anchor β works on source code AND pattern XML), `ops` (typed semantic ops like `set_attribute`, `add_rule` for source-bearing parts).
|
|
226
311
|
|
|
227
312
|
**Pattern XML auto-reconcile**: WorkWithPlus encodes IDE rendering order in a per-parent `childrenOrderedList` attribute. The MCP now rebuilds (and **creates if missing**) every list from the actual XML child order on each write β callers only describe *where* an element goes in the tree and the MCP makes the IDE render it there. The response includes a `childrenOrderedListReconciliation` block listing each (re)written parent plus any structural elements that couldn't be inferred safely.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "genexus-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.27.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": [
|
|
@@ -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.27.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.27.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
|
+
"WorkerExecutable": "C:\\Projetos\\Genexus18MCP\\publish\\\\worker\\\\GxMcp.Worker.exe",
|
|
4
|
+
"InstallationPath": "C:\\\\Program Files (x86)\\\\GeneXus\\\\GeneXus18"
|
|
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
|
"HttpPort": 5000,
|
|
@@ -7,7 +7,7 @@
|
|
|
7
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":"Shorthand for {find,replace}. Equivalent to operation=Replace + context=find + content=replace."},"context":{"type":"string","description":"Exact existing text to find (Replace) or anchor after (Insert_After). Required for both."},"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 and post-write-verifies visual/PatternInstance writes (re-reads + diffs the persisted XML). best-effort applies what compiles and SKIPS the post-write XML re-read/diff (faster on large WebForm/PatternInstance writes; build to confirm). only runs in-memory, no persist."},"visualVerify":{"type":"boolean","default":false,"description":"Post-edit headless screenshot + pixel-diff vs baseline. See tool-help."},"baseVersion":{"type":"string","description":"Optimistic concurrency: pass the versionToken from the genexus_read this edit is based on. If the object changed since (e.g. edited in the IDE), the write is refused with StaleObject instead of overwriting the newer version. Omit to skip the check."},"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":"Snapshot an object: metadata, variables, structure, signature. runtimeIds needs a prior build; use genexus_read for full source.","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":"Token budget. minimal=name/type/lastUpdate; standard=default (varsβ€40 name+type, source heads 1200c); verbose=full vars + 8000c heads."},"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
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","code_metrics"]},"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":["mode"],"examples":[{"name":"Customer","mode":"impact"},{"name":"Customer","mode":"summary"}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
10
|
-
|
|
10
|
+
{"name":"genexus_lifecycle","description":"Build, validate, index, or poll the KB. action=specify runs a spec-check (Spec+Gen only, no Compile/deploy) returning spc*/gen* diagnostics for the target fast (catch spec errors without a full build). action=build with mode=compile_check spec+gen+compiles the target(s) PLUS their transitive callers and skips the KB-wide DeveloperMenu regen (the dominant build-all cost) -- a fast 'did my edit break the build?' check that requires a target. 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","specify","rebuild","reorg","reorg_preview","validate","validate-kb","sync","index","status","result","snapshots-list","snapshots-restore"]},"mode":{"type":"string","enum":["compile_check"],"description":"With action=build: compile_check spec+gen+compiles target(s) plus their transitive callers and SKIPS the KB-wide DeveloperMenu regen (the dominant build-all cost). Fast 'did my edit break the build?' check; requires target."},"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 block, 0-600s. With a build taskId (or since): event-driven, returns on change. On index status with no since: blocks until index is Ready."},"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"},{"action":"build","mode":"compile_check","target":"MyObject"}]},"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
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}},
|
|
@@ -17,7 +17,8 @@
|
|
|
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
18
|
{"name":"genexus_gam","description":"GAM / integrated-security provisioning via the SDK's IIntegratedSecurityService β distinct from genexus_security (env-scan/regex audit). action=status (default) is read-only: IsEnabledIntegratedSecurity + GAM-DB-reorganize flag. action=define_api / action=deploy are DESTRUCTIVE β they create/alter GAM security tables in the KB's datastore; no default reaches them, action must be set explicitly.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["status","define_api","deploy"],"description":"status (default, read-only) | define_api | deploy."},"force":{"type":"boolean","description":"define_api only: force flag passed to DefineAPI."},"forceTableCreation":{"type":"boolean","description":"deploy only: force GAM table creation."},"rebuild":{"type":"boolean","description":"deploy only: rebuild flag."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"status"},{"action":"deploy","forceTableCreation":true}]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},
|
|
19
19
|
{"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}},
|
|
20
|
-
{"name":"genexus_structure","description":"Read or
|
|
20
|
+
{"name":"genexus_structure","description":"Read or write the structure/data-model of GeneXus objects. Read: get_visual, get_logic, get_indexes (source=User indexes are droppable). Write: update_visual (structure DSL); create_index/drop_index (unique/non-unique indexes β the GeneXus way to enforce uniqueness, there is no Unique() rule); set_attribute (Formula, subtype, Title/ColumnTitle, IsCollection, basedOnDomain on a KB-global attribute); set_level (Transaction level DescriptionAttribute/ImageAttribute); set_domain (edit an existing Domain's enumValues/dataType). After index/type changes run genexus_lifecycle action=reorg. For layout control trees use genexus_layout.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["get_visual","update_visual","get_indexes","create_index","drop_index","set_attribute","set_level","set_domain","get_logic"]},"name":{"type":"string","description":"Object name. For set_attribute it is the attribute name; for set_domain the domain name."},"payload":{"type":"object","description":"update_visual:{children:[...]}. create_index:{attributes:[\"Attr\"],unique?:true,name?,order?}. drop_index:{indexName}. set_attribute:{formula?,subtypeOf?,title?,columnTitle?,contextualTitle?,isCollection?,basedOnDomain?}. set_level:{level?,descriptionAttribute?,imageAttribute?}. set_domain:{enumValues:[{name,value,description?}],dataType?,length?,decimals?,signed?}."},"kb":{"type":"string","description":"KB alias."}},"required":["action","name"],"examples":[{"action":"get_indexes","name":"Customer"},{"action":"create_index","name":"Country","payload":{"attributes":["CountryName"],"unique":true}},{"action":"set_attribute","name":"CustomerBalance","payload":{"formula":"sum(InvoiceAmount)"}},{"action":"set_level","name":"Customer","payload":{"descriptionAttribute":"CustomerName"}}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
21
|
+
{"name":"genexus_authoring","description":"Author members of object types the structure DSL doesn't cover. add_external_method / add_external_property add a method (with parameters) or property to an External Object; add_menu_option adds an option to a Menu (target = a KB object to call). name = the ExternalObject/Menu name.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["add_external_method","add_external_property","add_menu_option"]},"name":{"type":"string","description":"ExternalObject or Menu name."},"payload":{"type":"object","description":"add_external_method:{name,returnType?,parameters?:[{name,type?,inout?}]}. add_external_property:{name,type?}. add_menu_option:{description,target?,optionCode?}."},"kb":{"type":"string","description":"KB alias."}},"required":["action","name"],"examples":[{"action":"add_external_property","name":"MyExternalObject","payload":{"name":"apiKey","type":"Character"}},{"action":"add_menu_option","name":"MainMenu","payload":{"description":"Customers","target":"CustomerWW"}}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
21
22
|
{"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}},
|
|
22
23
|
{"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}},
|
|
23
24
|
{"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"},"objectName":{"type":"string","description":"Restrict the scan to these exact object name(s), comma-separated. Makes a search inside one known object O(object) not O(KB), and bypasses the type whitelist."},"startIndex":{"type":"integer","description":"Resume cursor. On Timeout the response returns nextCursor; pass it here to continue where the scan stopped."},"timeoutMs":{"type":"integer","description":"Wall-clock budget (default 30000). Raise it to scan more objects per call."},"scope":{"type":"array","items":{"type":"string","enum":["source","rules","conditions","events","webForm","layout"]},"description":"Parts to scan with line-numbered context. Default [source]. webForm/layout scans the WebPanel/Transaction visual XML (control names, captions, classes, bindings)."},"fields":{"type":"array","items":{"type":"string","enum":["source","caption","description","parmNames","webForm"]},"description":"Whole-field metadata match (returns matchedValue, no line context). Default [source]. Prefer scope=[webForm] for line-context WebForm hits; use fields=[webForm] only for a coarse contains-match."},"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}},
|
|
Binary file
|