GeneXus 18BLOCK
GeneXus MCP server with native SDK support for GeneXus 16–18 plus basic legacy compatibility for GeneXus 8, 9, 10.1–10.3, and 15 via reflection/COM drivers.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://www.npmjs.com/package/genexus-mcp) [](https://www.npmjs.com/package/genexus-mcp) [](https://opensource.org/licenses/MIT) [](https://safeskill.dev/scan/lennix1337-genexus18mcp) [](https://lobehub.com/mcp/lennix1337-genexus18mcp)
¿Hablás español? → Guía de inicio en español Fala português? → Guia de início em português Stuck? → Troubleshooting guide
GeneXus MCP Server lets AI agents — Claude Desktop, Claude Code, Cursor, Antigravity, and any MCP-compatible client — read, edit, analyze, and refactor objects inside a Knowledge Base supported by the selected native SDK or legacy compatibility driver. Native SDK paths work with the real GeneXus SDK and legacy paths use explicit reflection/COM adapters; neither path relies on a parsed copy of the KB.
In practice: you point the MCP at your KB, then ask your AI assistant things like "list all transactions with attribute CustomerId", "add a rule to the Order transaction that validates the total", or "refactor this procedure to use the new SDT" — and it does it.
Multi-version GeneXus support
The same MCP distribution supports the official native SDK majors listed in the generated compatibility document. It also includes basic, best-effort compatibility for the legacy versions listed there through separate drivers; that path is not equivalent to full native-SDK support. A process can route each declared KB to its own SDK/driver; --gx remains the convenient
f14e66e3ca4bOBSERVED · 2026-10-08Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add genexus-mcp -- npx -y [email protected]
Exposed tools (76)
71 read · 2 write · 3 destructive. Blast radius: 3 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
Add | write | Adds an item to the collection. |
AddDays | read | Adds days. |
AddSeconds | read | Adds seconds. |
Audio | read | Audio asset reference. |
Blob | read | Binary Large Object. |
BlobFile | read | Reference to a file stored in a folder. |
Boolean | read | Logical value (True/False). |
CharAt | read | Returns the character at the specified index. |
Character | read | Fixed-length character string. |
Clear | destructive | Removes all items from the collection. |
Contains | read | Checks if the string contains a substring. |
Count | read | Returns the number of items in the collection. |
DAdd | read | Adds a number of days to a Date or DateTime value. |
DDiff | read | Returns the difference in days between two Date or DateTime values. |
Date | read | Date value. |
DateTime | read | Date and time value. |
Day | read | Returns the day. |
Default | read | Assigns a default value to an attribute or variable. |
EndsWith | read | Checks if the string ends with a substring. |
Error | read | Displays an error message and stops execution if a condition is met. |
FromJson | read | Loads the collection from a JSON string. |
FromString | read | Parses a string into a numeric value. |
GUID | read | Globally Unique Identifier. |
HTMLClean | read | Cleans HTML content. |
Hidden | read | Hides an attribute in the form. |
Hour | read | Returns the hour. |
If | read | Conditional execution block. |
Iif | read | Returns one of two values depending on the result of a logical expression. |
Image | read | Image asset reference. |
IndexOf | read | Finds substring position. |
IsEmpty | read | Checks if a value is empty (null or zero/blank). |
IsMatch | read | Checks if the string matches a regular expression. |
IsNull | read | Checks if a value is null. |
Item | read | Returns an item from the collection by index. |
LastIndexOf | read | Returns the last index of a substring. |
Len | read | Returns the length of a string. |
Length | read | Returns string length. |
LongVarChar | read | Large variable-length character string. |
Lower | read | Converts a string to lowercase. |
Minute | read | Returns the minute. |
Month | read | Returns the month. |
Msg | read | Displays a message to the user. |
New | read | Creates a new record in a table. |
NoAccept | read | Prevents editing of an attribute or variable. |
Now | read | Returns the current date and time of the local machine. |
NullValue | read | Returns the null value of a given expression or attribute. |
Numeric | read | Numeric value with optional decimals. |
Order | write | Specifies the order of records in a Transaction or Data Provider. |
Parm | read | Defines the parameters of the object. |
Prompt | read | Calls a prompt object for an attribute or variable. |
Ref | read | Defines a referential integrity rule. |
Remove | destructive | Removes an item from the collection by index. |
Replace | read | Replaces all occurrences of a string within another string. |
Round | read | Rounds the value. |
ServerNow | read | Returns the current date and time of the application server. |
SetEmpty | read | Sets to empty value. |
StartsWith | read | Checks if the string starts with a substring. |
Str | read | Converts a numeric value to a string. |
Sub | read | Defines a subroutine. |
Substr | read | Returns a substring from a string. |
TAdd | read | Adds a number of seconds to a DateTime value. |
TDiff | read | Returns the difference in seconds between two DateTime values. |
ToFormattedString | read | Converts to formatted string. |
ToJson | read | Returns a JSON representation of the collection. |
ToLower | read | Converts to lowercase. |
ToString | read | Converts to string. |
ToUpper | read | Converts to uppercase. |
Today | read | Returns the current date. |
Trim | read | Removes leading and trailing spaces. |
Truncate | destructive | Truncates decimals. |
Upper | read | Converts a string to uppercase. |
Val | read | Converts a string to a numeric value. |
VarChar | read | Variable-length character string. |
Video | read | Video asset reference. |
YMDtoD | read | Returns a Date value from Year, Month, and Day. |
Year | read | Returns the year. |
Trust audit
BLOCKgrade F · trust 33/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (5 observation(s))
- Network
- declared (3 observation(s))
- Shell
- declared (3 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
var hits = SecurityAuditService.ScanText("-----BEGIN RSA PRIVATE KEY-----\nMIIEvAIBADANBgkq\n-----END RSA PRIVATE KEY-----");if (text.Contains("-----BEGIN RSA PRIVATE KEY-----") || text.Contains("-----BEGIN PRIVATE KEY-----"))if (/^(?:-e|-p|--eval(?:=|$)|--print(?:=|$)|--check(?:=|$))/.test(arg)) {* Read `*.env.gx` to get environment name and generator
- `+` — 0 methods, 0 props
- `+` — 0 methods, 0 props
const fallback = 'http://127.0.0.1:5000/mcp';
# GeneXus MCP - one-shot release script
[CmdletBinding()]
# GeneXus MCP - Corporate Installer (fixed-path)
function Test-GxMcpReleaseHasField {[CmdletBinding()]
room.token = "eyJhbGciOiJIUzI1NiIs..."; // JWT access token
room.token = "eyJhbGciOiJIUzI1NiIs...";
'[COLD-START] token=abc123def456 ghp_ABCDEFGHIJKLMNOPQRSTUVWXYZ012345',
'ghp_ABCDEFGHIJKLMNOPQRSTUVWXYZ012345', # gh_ literal prefix
'ghp_ABCDEFGHIJKLMNOPQRSTUVWXYZ012345',
'/c', 'echo token=abc123 & echo ghp_ABCDEFGHIJKLMNOPQRSTUVWXYZ012345 & echo user id=sa& echo MOCK-SECRET-TAIL', '1>&2'
foreach ($secret in @('abc123', 'ghp_ABCDEFGHIJKLMNOPQRSTUVWXYZ012345', 'user id=sa')) {<span style="background: orange; color: white; border-radius: 9999px; padding: 2px 8px; font-size: 11px;">3</span>
style="display: none;"
Clear, Remove, Truncate
const pkg = require('../../package.json');vsce package --out ../../release/nexus-ide.vsix
const extensionDevelopmentPath = path.resolve(__dirname, '../../');
Gates applied: critical_finding, no_behavioural_pass.
f14e66e3ca4bfull audit observations/trust-audit/mcp-server/lennix1337__genexus-18.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | f14e66e3ca4b | BLOCK | F | 33 | first audit |
Questions
What is the GeneXus 18 MCP server?
GeneXus MCP server with native SDK support for GeneXus 16–18 plus basic legacy compatibility for GeneXus 8, 9, 10.1–10.3, and 15 via reflection/COM drivers.
What tools does GeneXus 18 expose?
76 in total: 71 read-only, 2 that write, and 3 that can delete or overwrite (Clear, Remove, Truncate). Every one is listed on this page with its risk.
Is GeneXus 18 safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (33/100) and found 6 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 3 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does GeneXus 18 need?
No credential environment variables were found in its source, so it appears to need none.
How does GeneXus 18 run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as nexus-ide at 3.12.0.
How current is this page?
The grade is for one exact copy of the source (f14e66e3ca4b), read on 2026-10-08. The repository is watched and re-audited when it changes.