genexus-mcp 2.5.0 → 2.6.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 +40 -11
- 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/GxMcp.Gateway.pdb +0 -0
- package/publish/tool_definitions.json +5 -1
- package/publish/worker/GxMcp.Worker.exe +0 -0
- package/publish/worker/GxMcp.Worker.pdb +0 -0
package/README.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
[](https://lobehub.com/mcp/lennix1337-genexus18mcp)
|
|
8
8
|
|
|
9
9
|
> **¿Hablás español?** → [Guía de inicio en español](docs/GETTING_STARTED.es.md)
|
|
10
|
+
> **Fala português?** → [Guia de início em português](docs/GETTING_STARTED.pt-br.md)
|
|
10
11
|
> **Stuck?** → [Troubleshooting guide](TROUBLESHOOTING.md)
|
|
11
12
|
|
|
12
13
|
---
|
|
@@ -21,17 +22,28 @@ In practice: you point the MCP at your KB, then ask your AI assistant things lik
|
|
|
21
22
|
|
|
22
23
|
Before you start, make sure you have:
|
|
23
24
|
|
|
24
|
-
- ✅ **Windows** (GeneXus is Windows-only
|
|
25
|
-
- ✅ **GeneXus 18** installed locally (
|
|
26
|
-
- ✅ **A GeneXus 18 Knowledge Base** opened at least once in the IDE (so it
|
|
27
|
-
- ✅ **Node.js 18+**
|
|
25
|
+
- ✅ **Windows** (GeneXus is Windows-only)
|
|
26
|
+
- ✅ **GeneXus 18** installed locally (default path: `C:\Program Files (x86)\GeneXus\GeneXus18`)
|
|
27
|
+
- ✅ **A GeneXus 18 Knowledge Base** opened at least once in the IDE (so it's initialized)
|
|
28
|
+
- ✅ **Node.js 18+** — check with `node --version` in a terminal; install from [nodejs.org](https://nodejs.org/) if missing
|
|
28
29
|
- ✅ **An MCP-compatible AI client** — [Claude Desktop](https://claude.ai/download), [Claude Code](https://claude.com/claude-code), Cursor, Antigravity, etc.
|
|
29
30
|
|
|
30
31
|
You do **not** need to clone this repo or install anything globally — `npx` handles it.
|
|
31
32
|
|
|
33
|
+
**Never used a terminal before?** Press `Win+R`, type `powershell`, hit Enter. That's your terminal.
|
|
34
|
+
|
|
32
35
|
---
|
|
33
36
|
|
|
34
|
-
## Quickstart (3 steps)
|
|
37
|
+
## Quickstart (3 steps, ~5 minutes)
|
|
38
|
+
|
|
39
|
+
### Find your two paths first
|
|
40
|
+
|
|
41
|
+
Before running the installer, note these down:
|
|
42
|
+
|
|
43
|
+
1. **GeneXus install folder** — where `GeneXus.exe` lives. Usually `C:\Program Files (x86)\GeneXus\GeneXus18`.
|
|
44
|
+
2. **Your KB folder** — the root folder of your Knowledge Base (contains the `.gx` file and subfolders like `Model/`, `WebSpa/`).
|
|
45
|
+
|
|
46
|
+
Not sure where your KB lives? Open it in GeneXus and check the title bar, or look in `File → Recent`.
|
|
35
47
|
|
|
36
48
|
### Step 1 — Run the installer
|
|
37
49
|
|
|
@@ -43,21 +55,38 @@ npx genexus-mcp@latest init --kb "C:\KBs\YourKB" --gx "C:\Program Files (x86)\Ge
|
|
|
43
55
|
|
|
44
56
|
> Prefer the wizard? Run `npx genexus-mcp@latest init --interactive` and answer the prompts.
|
|
45
57
|
|
|
46
|
-
|
|
58
|
+
What you'll see (takes ~30 seconds first time, faster on re-runs):
|
|
59
|
+
|
|
60
|
+
1. `npx` downloads the package.
|
|
61
|
+
2. The installer verifies the paths exist and GeneXus is present.
|
|
62
|
+
3. It **auto-detects** which AI clients you have installed and adds the MCP config to each one.
|
|
63
|
+
4. Prints a JSON snippet at the end — keep it in case you need to configure a client manually.
|
|
64
|
+
5. Finishes with `🎉 You are all set!`.
|
|
47
65
|
|
|
48
66
|
### Step 2 — Register the MCP in your AI client
|
|
49
67
|
|
|
50
|
-
|
|
68
|
+
Step 1 auto-registers with Claude Desktop, Claude Code, Cursor, and Antigravity when it detects them. If yours wasn't detected, copy the JSON snippet from Step 1 into your client's MCP config manually. See the [client setup guide](TROUBLESHOOTING.md#client-setup) if unsure where that file lives.
|
|
69
|
+
|
|
70
|
+
### Step 3 — Restart your AI client, then test
|
|
71
|
+
|
|
72
|
+
This part trips most people: **fully close** your AI client and reopen it. Not just the window — the whole process.
|
|
73
|
+
|
|
74
|
+
- **Claude Desktop**: right-click the system-tray icon → **Quit**. Then launch it again. (Closing the window is not enough.)
|
|
75
|
+
- **Claude Code**: end the session and start a fresh one.
|
|
76
|
+
- **Cursor / Antigravity**: close all windows and reopen.
|
|
77
|
+
|
|
78
|
+
Then paste this prompt:
|
|
51
79
|
|
|
52
|
-
|
|
80
|
+
> *"Using the GeneXus MCP, list the first 5 objects in my KB and show name + type."*
|
|
53
81
|
|
|
54
|
-
|
|
82
|
+
**What should happen:**
|
|
55
83
|
|
|
56
|
-
|
|
84
|
+
- The AI invokes the `genexus_list_objects` tool (some UIs show "calling tool…").
|
|
85
|
+
- A few seconds later, you get a list of objects from your KB.
|
|
57
86
|
|
|
58
87
|
If you get a list back — **you're done**. Skip to [What can I ask the AI?](#what-can-i-ask-the-ai) for ideas.
|
|
59
88
|
|
|
60
|
-
If
|
|
89
|
+
If the AI says it doesn't have a GeneXus tool, or nothing happens, go to [Troubleshooting](TROUBLESHOOTING.md) — most issues are covered there.
|
|
61
90
|
|
|
62
91
|
---
|
|
63
92
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "genexus-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.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.6.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.6.0": {
|
|
70
70
|
"type": "project",
|
|
71
71
|
"serviceable": false,
|
|
72
72
|
"sha512": ""
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
{"name":"genexus_test","description":"Execute native GeneXus tests (GXtest).","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"kb":{"type":"string","description":"Target KB. Required when 2+ open."}},"required":["name"]}},
|
|
13
13
|
{"name":"genexus_create_object","description":"Create a new GeneXus object in the active KB.","inputSchema":{"type":"object","properties":{"type":{"type":"string","description":"e.g. Procedure, Transaction, WebPanel, SDT."},"name":{"type":"string"},"kb":{"type":"string","description":"Target KB. Required when 2+ open."}},"required":["type","name"]}},
|
|
14
14
|
{"name":"genexus_logs","description":"Read worker_debug.log tail for error diagnosis or correlation.","inputSchema":{"type":"object","properties":{"lines":{"type":"integer"},"filterCorrelation":{"type":"string"},"grep":{"type":"string"}}}},
|
|
15
|
+
{"name":"genexus_sdk_probe","description":"Scan loaded GeneXus SDK assemblies and dump a structured map of every public type, method, property to docs/sdk-probe/. Use when investigating new SDK surface or hunting for an entry point. Outputs raw.json + INDEX.md + generators.md.","inputSchema":{"type":"object","properties":{"outputDir":{"type":"string","description":"Optional absolute path. Defaults to <repo>/docs/sdk-probe/ or %TEMP%/gxmcp_sdk_probe/."}}}},
|
|
15
16
|
{"name":"genexus_worker_reload","description":"Hot-reload worker: copy new binaries and respawn.","inputSchema":{"type":"object","properties":{"sourceDir":{"type":"string","description":"Absolute path to freshly built bin/Release."}},"required":["sourceDir"]}},
|
|
16
17
|
{"name":"genexus_delete_object","description":"Delete an object from the KB. Irreversible — confirm=true required.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"confirm":{"type":"boolean"},"kb":{"type":"string","description":"Target KB. Required when 2+ open."}},"required":["name","confirm"]}},
|
|
17
18
|
{"name":"genexus_export_object","description":"Export a GeneXus object part to a text file on disk.","inputSchema":{"type":"object","properties":{"name":{"type":"string"},"outputPath":{"type":"string"},"part":{"type":"string"},"type":{"type":"string"},"overwrite":{"type":"boolean"},"kb":{"type":"string","description":"Target KB. Required when 2+ open."}},"required":["name","outputPath"]}},
|
|
@@ -35,5 +36,8 @@
|
|
|
35
36
|
{"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"}},"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":"Target KB. Required when 2+ open."}}}},
|
|
36
37
|
{"name":"genexus_kb","description":"Manage open KBs: list (with PID/RSS/idle), open (acquire Worker), close (release), set_default (persist alias to config.json).","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["list","open","close","set_default"]},"alias":{"type":"string","description":"KB alias (for open/close). For open, auto-generated from path basename if omitted."},"path":{"type":"string","description":"Absolute path to the KB (required for action=open if alias is not declared in config)."}},"required":["action"]}},
|
|
37
38
|
{"name":"genexus_sql","description":"SQL for a Transaction/Table (DDL) or a procedure For Each navigation.","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["ddl","navigation"]},"name":{"type":"string"},"includeSubordinated":{"type":"boolean","description":"action=ddl only."},"levelNumber":{"type":"integer","description":"action=navigation only."},"type":{"type":"string"},"kb":{"type":"string","description":"Target KB. Required when 2+ open."}},"required":["action","name"]}},
|
|
38
|
-
{"name":"
|
|
39
|
+
{"name":"genexus_preview","description":"Render preview of a WebPanel via headless Chrome (chrome-devtools-axi). Opens the launcher page, fills required parms, navigates to the target, captures HTML/a11y/screenshot, optionally diffs vs baseline. Returns status + captures.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Target WebPanel name."},"parms":{"type":"object","description":"Per-call launcher parms (merged over config defaults and objectParms)."},"launcher":{"type":"string","description":"Launcher page (default 'auto' = config.launcher)."},"buildFirst":{"type":"boolean","default":false,"description":"If true, dispatch a build before opening the browser."},"waitMs":{"type":"integer","default":3000,"description":"Milliseconds to wait after navigation before capture."},"capture":{"type":"array","items":{"type":"string","enum":["html","a11y","screenshot","console"]},"description":"Capture set (default ['html','a11y'])."},"diffBaseline":{"type":"boolean","default":false,"description":"Compute structural diff vs stored a11y baseline."},"updateBaseline":{"type":"boolean","default":false,"description":"Persist current a11y snapshot as the new baseline."},"kb":{"type":"string","description":"Target KB. Required when 2+ open."}},"required":["name"]}},
|
|
40
|
+
{"name":"genexus_apply_pattern","description":"Apply a GeneXus pattern (e.g. WorkWithPlus) to a parent object. Equivalent to IDE 'Right-click → Apply Pattern'.","inputSchema":{"type":"object","required":["name","pattern"],"properties":{"name":{"type":"string","description":"Target KBObject name (Transaction, WebPanel, etc.)"},"pattern":{"type":"string","description":"Pattern key ('WorkWithPlus') or GUID"},"settings":{"type":"object","description":"Optional pattern-instance settings (deeply nested config tree from the pattern's settings dialog)"},"reapply":{"type":"boolean","default":false,"description":"Re-run on existing instance instead of first-time apply"},"kb":{"type":"string","description":"Target KB. Required when 2+ open."}}}},
|
|
41
|
+
{"name":"genexus_edit_and_build","description":"Edit an object then rebuild its callers in one call. Returns edit diff + impact + build operationId. See genexus://kb/tool-help/genexus_edit_and_build for examples.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Target object name."},"part":{"type":"string","description":"Part to edit (Source, Rules, ...)."},"content":{"type":"string","description":"New content or unified diff."},"mode":{"type":"string","enum":["full","patch"],"default":"patch"},"type":{"type":"string","description":"Disambiguates when name matches multiple objects."},"dryRun":{"type":"boolean","default":false},"buildIncludeCallees":{"type":"string","enum":["none","direct","transitive"],"default":"direct"},"buildPlanCap":{"type":"integer","default":200},"waitForIndex":{"type":"boolean","default":true},"waitTimeoutMs":{"type":"integer","default":30000}},"required":["name","part","content"]}},
|
|
42
|
+
{"name":"genexus_create_popup","description":"W3: create a popup WebPanel with a Form type=\"layout\" body so radio/combo bindings render editable. Spec carries title, description, inputs (radio|combo|text with options), buttons, inParms, outParms.","inputSchema":{"type":"object","required":["name","spec"],"properties":{"name":{"type":"string","description":"WebPanel name. Created if missing; updated if exists."},"spec":{"type":"object","description":"Popup spec.","properties":{"title":{"type":"string"},"description":{"type":"string"},"inputs":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["radio","combo","text"]},"varName":{"type":"string"},"label":{"type":"string"},"options":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}}}},"showWhen":{"type":"string","description":"e.g. \"RespRegProf == 'S'\"; emits Refresh event toggling group visibility."}},"required":["type","varName"]}},"buttons":{"type":"array","items":{"type":"object","properties":{"caption":{"type":"string"},"event":{"type":"string"}}}},"inParms":{"type":"array","items":{"type":"string"},"description":"e.g. [\"AluAnoCad:Numeric(2)\"]"},"outParms":{"type":"array","items":{"type":"string"}}}},"kb":{"type":"string","description":"Target KB. Required when 2+ open."}}}}
|
|
39
43
|
]
|
|
Binary file
|
|
Binary file
|