Agent skill

Java Actions

by mendixlabs in mendixlabs/mxcli

Create and call custom Java actions — extending Mendix with server-side Java, and invoking those actions from microflows in MDL.

Apache-2.0Auto-check passedBackend & APIs

Install Java Actions

skills CLI
$ npx skills add mendixlabs/mxcli --skill java-actions -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mendixlabs/mxcli java-actions --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/mendix/java-actions .claude/skills/java-actions && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
java-actions
GitHub stars
128
Token cost
~4.8k tokens
SKILL.md length
1,210 words
Files
3
Skills in repo
72
Repo updated
First seen
Licence
Apache-2.0

At a glance

Create and call custom Java actions — extending Mendix with server-side Java, and invoking those actions from microflows in MDL.

  • Works in 3 steps: Define the Java action in Studio Pro… → Implement the Java code in Eclipse/IDE → Call the Java action from microflows…
  • Logic needs a Java library
  • SKILL.md covers Reference files, When to Use This Skill, Overview and Part 2.5: Creating Java…, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Java Actions is an agent skill from mendixlabs/mxcli. Create and call custom Java actions — extending Mendix with server-side Java, and invoking those actions from microflows in MDL. Use when logic needs a Java library, an algorithm microflows cannot express, or an integration only available in Java.

Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `reference/best-practices.md` and `reference/writing-java.md`).

It sits in Backend & APIs, covering Backend development. It works with Java. The repository describes itself as: Mendix cli tool, a headless way to work with Mendix projects. Enables Mendix projects for use with 3rd party agentic coding tools like Claude Code and Copilot. Includes a… The licence is Apache-2.0.

When your agent uses it

  • Logic needs a Java library
  • An algorithm microflows cannot express
  • An integration only available in Java

Example prompts

  • “/java-actions”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Define the Java action in Studio Pro (parameters, return type)
  2. Implement the Java code in Eclipse/IDE
  3. Call the Java action from microflows using MDL

What it can do on your machine

Read from SKILL.md and the folder at commit 20a6c89. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are mdl and java).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.mendix.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Java Actions loads about 4.8k tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 1,210 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~65
When it runs · the whole SKILL.md, loaded when a task matches
~4.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mendixlabs/mxcli at commit 20a6c89, republished under its Apache-2.0 licence (© mendixlabs). 1,210 words, ~4,752 tokens.

Download SKILL.mdSave it as .claude/skills/java-actions/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
java-actions
description
Create and call custom Java actions — extending Mendix with server-side Java, and invoking those actions from microflows in MDL. Use when logic needs a Java library, an algorithm microflows cannot express, or an integration only available in Java.

Mendix Java Actions Skill

This skill provides comprehensive guidance for creating and using custom Java actions in Mendix projects.

Reference files

SKILL.md covers declaring a Java action in MDL and calling it from a microflow — the parts that touch the model. The Java side is next door:

  • reference/writing-java.md — creating the action in Studio Pro, writing the executeAction body, the Core API surface you have, and the recurring patterns (HTTP calls, file handling, batch work).
  • reference/best-practices.md — error handling, transactions and rollback, logging, threading, security, and performance. Read it before shipping a Java action that touches data or an external system.

When to Use This Skill

Use this skill when:

  • You need to extend Mendix with custom Java logic
  • Building integrations with external Java libraries
  • Implementing complex algorithms not feasible in microflows
  • Calling Java actions from MDL microflows
  • Debugging Java action calls

Overview

Java actions allow you to extend Mendix with custom Java code. The workflow is:

  1. Define the Java action in Studio Pro (parameters, return type)
  2. Implement the Java code in Eclipse/IDE
  3. Call the Java action from microflows using MDL

Part 2.5: Creating Java Actions in MDL

MDL supports defining Java actions with inline Java code using create java action.

Basic Syntax
mdl
mdl 1;
create java action Module.ActionName(param1: type, param2: type) returns ReturnType
as $$
// java code here
return result;
$$;

AS $$ ... $$ is mandatory. The body cannot be omitted even for placeholder or stub actions. Omitting it causes a parse error: no viable alternative at input '...'. Use a minimal body if the real implementation is not yet written:

mdl
mdl 1;
create java action Module.Stub() returns boolean
as $$
return false;
$$;
Type Parameters (Generics)

Type parameters let Java actions accept any entity type dynamically. Use entity <pEntity> in a parameter type to declare the type parameter inline. That parameter becomes the entity type selector (receives the entity type name, e.g., 'Module.Entity'). Bare pEntity parameters become parameterized entity params (receive entity instances, e.g., $Variable).

mdl
mdl 1;
-- ENTITY <pEntity> declares the type parameter; bare pEntity references it
create java action Module.Validate(
  EntityType: entity <pEntity> not null,
  InputObject: pEntity not null
) returns boolean
as $$
return InputObject != null;
$$;

Multiple type parameters use separate entity <...> declarations:

mdl
mdl 1;
create java action Module.Transform(
  SourceType: entity <pSource> not null,
  TargetType: entity <pTarget> not null,
  source: pSource not null,
  Target: pTarget not null
) returns boolean
as $$
return true;
$$;

A list of type-parameter instances is list of pEntity (Studio Pro's "List of <type parameter>").

A type parameter named after a primitive (String, Integer, … — Studio Pro allows it): declare it with entity <String>, and refer to it quoted — "String", list of "String". Unquoted String is always the primitive. DESCRIBE quotes such names for you, so its output re-creates the action.

Type parameter names can be mixed with regular parameter types:

mdl
mdl 1;
create java action Module.CopyAttributes(
  EntityType: entity <pEntity> not null,
  source: pEntity not null,
  Target: pEntity not null,
  AttributeNames: string not null
) returns boolean
as $$
return true;
$$;

When calling these actions from microflows, the entity type selector receives the entity type name as a string literal, while instance params receive variables:

mdl
$Result = call java action Module.CopyAttributes(
  EntityType = 'Module.ProcessResult',
  source = $source,
  Target = $Target,
  AttributeNames = 'Name,Status'
);
EXPOSED AS (Toolbox Visibility)

The exposed as 'caption' in 'Category' clause makes the Java action appear as a toolbox item in Studio Pro's microflow editor:

mdl
mdl 1;
create java action Module.FormatCurrency(
  Amount: decimal not null,
  CurrencyCode: string not null
) returns string
exposed as 'Format Currency' in 'Formatting'
as $$
return String.format("%.2f %s", Amount, CurrencyCode);
$$;

Type parameters and EXPOSED AS can be combined:

mdl
mdl 1;
create java action Module.DeepClone(
  EntityType: entity <pEntity> not null,
  Original: pEntity not null
) returns boolean
exposed as 'Deep Clone Object' in 'Object Utils'
as $$
return true;
$$;
Toolbox icon and image

The entry also carries four PNG bitmaps — an icon and a larger image, each with a dark-mode variant. Paths resolve against the directory of the .mdl file, so a script and its artwork travel together:

mdl
exposed as 'Format Currency' in 'Formatting'
  icon 'assets/currency-64.png'
  icon dark 'assets/currency-64-dark.png'
  image 'assets/currency-256.png'

The icon should be 64x64 and the image 256x192. A different size is written with a warning (Studio Pro scales it); a file that is not a PNG is refused, because Studio Pro renders nothing for one.

An omitted clause preserves — it does not clear

This is the rule to remember, and it is not the obvious one:

You writeWhat happens
exposed as 'X' in 'Y'Caption and category from MDL; icon and image carried from what was stored
(no clause at all)The whole entry is preserved, bitmaps included
not exposedThe entry is removed
exposed as 'X' in 'Y' drop icon darkClears one bitmap; the other three are untouched

Rewriting a Java action to change its body must not cost it the icon a designer set in Studio Pro, and saying nothing about the toolbox is not the same as asking to be taken out of it. Nothing below Studio Pro can see the difference: an action with no toolbox entry is a valid action, so mx check reports 0 errors either way.

describe java action reports the bitmaps as comments rather than re-emitting icon/image clauses — the clause names a file on disk and the model holds only bytes. They survive a describe → exec round trip regardless, because an omitted bitmap is preserved.

Microflows have this too, and two of them: exposed as microflow action and exposed as workflow action, for Studio Pro's two toolboxes. See write-microflows. Nanoflows and rules do not — only Microflows$Microflow stores a toolbox entry, and the clause is refused on the other two with a message saying so.

Studio Pro-authored Java actions: there is no alter java action. Before re-executing describe output for one, note its export level; a create or modify from describe output has changed an action's export level to Public. Check it again after exec (see choose-edit-mode).

Show full SKILL.md (436 more words)Show less
Supported Parameter Types
MDL TypeDescription
stringText value
integerWhole number
longLarge whole number
decimalDecimal number
booleanTrue/false
datetimeDate and time
Module.EntityEntity reference
list of Module.EntityList of entities
stringtemplate(sql)SQL/OQL query template with parameters
stringtemplate(text)Text template with parameters
entity <pEntity>Type parameter declaration (entity type selector)
enum Module.EnumNameEnumeration type
enumeration(Module.EnumName)Enumeration type (alternative syntax)
pEntity (type param ref)Type parameter reference (entity instance)
list of pEntityList of type-parameter instances

In the $$ body, a parameter is the generated field — not the raw value. An entity parameter is its proxy class (module.proxies.Entity; .getMendixObject() for the IMendixObject), a list a java.util.List of proxies, integer a java.lang.Long, an enumeration its proxy enum (but an enumeration return is a String). The full table is in writing-java.md; it is what mxbuild generates, so the body compiles both under --watch and after a full build.

Examples
Simple Action (No Parameters)
mdl
mdl 1;
/** Returns the current timestamp. */
create java action MyModule.GetCurrentTimestamp() returns datetime
as $$
return new java.util.Date();
$$;
Action with Primitive Parameters
mdl
mdl 1;
/** Calculates tax amount. */
create java action Finance.CalculateTax(Amount: decimal, TaxRate: decimal) returns decimal
as $$
if (Amount == null || TaxRate == null) {
    return java.math.BigDecimal.ZERO;
}
return Amount.multiply(TaxRate).divide(java.math.BigDecimal.valueOf(100), 2, java.math.RoundingMode.HALF_UP);
$$;
Action with StringTemplate (SQL/OQL)
mdl
mdl 1;
/** Executes an OQL statement with parameterized query. */
create java action Database.ExecuteOQLStatement(OqlStatement: stringtemplate(sql) not null) returns boolean
as $$
// execute the parameterized OQL statement
// The stringtemplate handles parameter substitution safely
return true;
$$;
Action with NOT NULL Parameter
mdl
mdl 1;
/** Validates an email address - email is required. */
create java action Validation.ValidateEmail(EmailAddress: string not null) returns boolean
as $$
string emailRegex = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$";
return EmailAddress.matches(emailRegex);
$$;
Action with Type Parameter (Generic)
mdl
mdl 1;
/** Validates any entity - checks that required fields are filled. */
create java action Validation.ValidateEntity(
  EntityType: entity <pEntity> not null,
  InputObject: pEntity not null
) returns boolean
as $$
return InputObject.getMembers().values().stream()
    .allMatch(m -> !m.isRequired() || m.getValue(getContext()) != null);
$$;
Action with Type Parameter + EXPOSED AS
mdl
mdl 1;
/** Deep clones any entity (toolbox-visible). */
create java action Utils.DeepClone(
  EntityType: entity <pEntity> not null,
  Original: pEntity not null
) returns boolean
exposed as 'Deep Clone Object' in 'Object Utils'
as $$
return true;
$$;

Part 3: Calling Java Actions from MDL

Basic Syntax
mdl
-- Call Java action (no return value)
call java action Module.JA_ActionName(
    ParamName1 = value1,
    ParamName2 = value2
);

-- Call Java action with return value
$Result = call java action Module.JA_ActionName(
    ParamName1 = value1,
    ParamName2 = value2
);
Avoiding Duplicate Variables (CE0111)

$Var = call java action ... creates a new variable. Do NOT declare a variable with the same name first:

mdl
-- WRONG: DECLARE + CALL both create $Success → CE0111
declare $success boolean = false;
$success = call java action Module.DoWork();

-- CORRECT: Use a separate name when you need a default
declare $success boolean = false;
$WorkResult = call java action Module.DoWork();
set $success = $WorkResult;

-- CORRECT: Simple pass-through (no default needed)
$success = call java action Module.DoWork();
return $success;

When calling Java actions in multiple branches, use unique result variable names:

mdl
declare $success boolean = false;
if $Priority = 'HIGH' then
    $UrgentResult = call java action Module.SendUrgent(Msg = $Email);
    set $success = $UrgentResult;
else
    $NormalResult = call java action Module.SendNormal(Msg = $Email);
    set $success = $NormalResult;
end if;
Expression Escaping in String Arguments

Single quotes within string literal arguments must be doubled (''):

mdl
-- OQL with embedded quotes — use '' to escape
$count = call java action Module.ExecuteOQL(
    Statement = 'SELECT * FROM Module.Entity WHERE Status = ''Active'''
);
Complete Examples
Example 1: Simple Calculation
mdl
mdl 1;
/**
 * Calculate tax using custom Java action
 */
create microflow Tax.ACT_CalculateOrderTax($order: Tax.Order)
returns decimal as $taxAmount
begin
    declare $subtotal decimal = $order/Subtotal;
    declare $taxRate decimal = 0.21;

    -- Call Java action for complex calculation
    $taxAmount = call java action Tax.JA_CalculateTax(
        Amount = $subtotal,
        TaxRate = $taxRate
    );

    change $order (TaxAmount = $taxAmount);
    commit $order;

    return $taxAmount;
end;
Example 2: External API Integration
mdl
mdl 1;
/**
 * Send notification via external service using Java action
 */
create microflow Notifications.ACT_SendOrderConfirmation($order: Sales.Order)
returns boolean as $success
begin
    declare $customerEmail string = $order/Sales.Order_Customer/Email;
    declare $orderNumber string = $order/OrderNumber;

    -- Call Java action that integrates with external email service
    $success = call java action Notifications.JA_SendEmail(
        ToAddress = $customerEmail,
        Subject = 'Order Confirmation: ' + $orderNumber,
        body = 'Your order has been confirmed.',
        TemplateName = 'OrderConfirmation'
    );

    if $success then
        change $order (NotificationSent = true);
        commit $order;
    else
        log warning node 'Notifications' 'Failed to send email for order: ' + $orderNumber;
    end if;

    return $success;
end;
Example 3: OQL Bulk Operations (Mendix 11.6+)
mdl
mdl 1;
/**
 * Bulk update using OQL via Java action
 */
create microflow Finance.ACT_ArchiveOldTransactions()
returns integer as $rowsAffected
begin
    -- Use built-in OQL execution Java action
    $rowsAffected = call java action CustomActivities.ExecuteOQLStatement(
        OqlStatement = 'UPDATE Finance.Transaction SET Status = ''ARCHIVED'' WHERE TransactionDate < ''2024-01-01'' AND Status = ''COMPLETED'''
    );

    log info node 'Finance' 'Archived ' + toString($rowsAffected) + ' transactions';

    return $rowsAffected;
end;
Example 4: OQL with Parameters
mdl
/**
 * Parameterized OQL update via Java action
 */
create microflow Finance.ACT_UpdateTransactionStatus(
    $oldStatus: string,
    $newStatus: string,
    $cutoffDate: datetime
)
returns integer as $rowsUpdated
begin
    $rowsUpdated = call java action CustomActivities.ExecuteOQLStatementPars(
        OqlStatement = 'UPDATE Finance.Transaction SET Status = {1} WHERE Status = {2} AND TransactionDate < {3}' with (
            {1} = $newStatus,
            {2} = $oldStatus,
            {3} = $cutoffDate as datetime
        )
    );

    return $rowsUpdated;
end;
Example 5: Returning Objects
mdl
mdl 1;
/**
 * Create complex object structure using Java action
 */
create microflow Import.ACT_ParseCSVFile($fileDocument: System.FileDocument)
returns list of Import.ImportRecord as $records
begin
    -- Java action parses CSV and returns list of objects
    $records = call java action Import.JA_ParseCSV(
        FileDocument = $fileDocument,
        HasHeader = true,
        Delimiter = ','
    );

    if $records = empty then
        log warning node 'Import' 'No records parsed from file';
    else
        log info node 'Import' 'Parsed ' + toString(length($records)) + ' records';
    end if;

    return $records;
end;

Validation Checklist

Before deploying Java actions, verify:

  • Java action has JA_ prefix naming convention
  • All parameters are defined with correct types
  • Return type matches what you return in Java
  • Code is only between begin user CODE / end user CODE markers
  • Proper null checks for all parameters
  • Exception handling with logging
  • No hardcoded credentials or sensitive data
  • Entity and attribute names match model exactly
  • Unit tests cover main scenarios

Common Errors

ErrorCauseFix
ClassNotFoundExceptionMissing libraryAdd JAR to userlib/ folder
NullPointerExceptionNull parameterAdd null checks
Could not find entityWrong entity nameUse exact qualified name
attribute not foundWrong attribute nameCheck model for exact name
ClassCastExceptionWrong type castCheck parameter types
no viable alternative at input '...' (parse error)AS $$ ... $$ body is missing — it is mandatory even for void/stub actionsAdd as $$ return null; $$; (or appropriate stub)

Quick Reference

Java Action Definition Syntax
mdl
mdl 1;
-- Basic Java action
create java action Module.JA_IsValid(Param: string not null) returns boolean
as $$
return true;
$$;

-- With type parameters (generics)
-- ENTITY <pEntity> = entity type selector, bare pEntity = entity instances
create java action Module.JA_HasObject(
  EntityType: entity <pEntity> not null,
  Obj: pEntity not null
) returns boolean
as $$
return Obj != null;
$$;

-- With EXPOSED AS (toolbox visibility)
create java action Module.JA_FormatAmount(Amount: decimal) returns string
exposed as 'Format Amount' in 'Formatting'
as $$
return Amount.toString();
$$;

-- Combined type parameters + EXPOSED AS
create java action Module.JA_ValidateObject(
  EntityType: entity <pEntity> not null,
  Obj: pEntity not null
) returns boolean
exposed as 'Validate Object' in 'Validation'
as $$
return Obj != null;
$$;
Java Action Call Syntax
mdl
-- Without return value
call java action Module.JA_ActionName(Param1 = value1, Param2 = value2);

-- With return value
$Result = call java action Module.JA_ActionName(Param1 = value1);

-- With OQL parameters (Mendix 11.6+)
$Rows = call java action Module.JA_ExecuteOQL(
    Statement = 'UPDATE Module.Entity SET Attr = {1} WHERE Id = {2}' with (
        {1} = $value1,
        {2} = $value2 as integer
    )
);
Core API Quick Reference
java
// context
IContext context = getContext();

// create
IMendixObject obj = Core.instantiate(context, "Module.Entity");

// read
object value = obj.getValue(context, "attributename");

// update
obj.setValue(context, "attributename", newValue);

// Save
Core.commit(context, obj);

// delete
Core.delete(context, obj);

// query
list<IMendixObject> results = Core.createXPathQuery("//Module.Entity[attr = 'value']").execute(context);

// log
Core.getLogger("ModuleName").info("message");

© mendixlabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in .claude/skills/mendix/java-actions of mendixlabs/mxcli.

  • SKILL.md
  • reference/best-practices.md
  • reference/writing-java.md

Open the folder on GitHubat commit 20a6c89

Compare with similar skills

Java Actions next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Java Actions compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Java Actions this skillmendixlabs/mxcli128—~4.8kAutomated safety check: PassApache-2.0
Spring Bootpiomin/claude-ai-spring-boot1.3k—~2kAutomated safety check: PassApache-2.0
Dr Jskilljdubois/dr-jskill342—~4.6kAutomated safety check: NotesApache-2.0
WxJava Integration Guidebinarywang/WxJava33k—~123Automated safety check: PassApache-2.0
Flycms Devsunkaifei/FlyCms656—~827Automated safety check: PassMIT
Intelliconnect Service Styleruanrongman/IntelliConnect147—~2.4kAutomated safety check: PassApache-2.0

Similar skills

  • Spring Boot

    piomin/claude-ai-spring-boot

    Spring Boot 3.x development - REST APIs, JPA, Security, Testing, and Cloud-native patterns.

    1.3k GitHub stars~2k tokensUpdated 5 mo ago
    Backend & APIsAuto-check passed
  • Dr Jskill

    jdubois/dr-jskill

    Creates Java + Spring Boot projects: Web applications, full-stack apps with Vue.js or Angular or React or vanilla JS, PostgreSQL, REST APIs, and Docker.

    342 GitHub stars~4.6k tokensUpdated 8 days ago
    Backend & APIsAuto-check: notes
  • WxJava Integration Guide

    binarywang/WxJava

    Plans a WxJava setup for Java, Spring Boot or Solon projects that call WeChat services, from module and BOM choice to config and a minimal working call.

    33k GitHub stars~123 tokensUpdated 12 days ago
    Backend & APIsAuto-check passed
  • Flycms Dev

    sunkaifei/FlyCms

    FlyCms 项目(backend/ Spring Boot 4.1.1 + frontend/ vue-vben-admin v5)的架构地图与开发规范总纲。凡在本仓库做任何开发——写后端接口、新增/修改模块、管理页面、数据库变更、修 bug、重构——都要先加载本 skill 再动手,即使用户只说"改一下""加个功能";前端登录/菜单/权限专项另见…

    656 GitHub stars~827 tokensUpdated 5 days ago
    Backend & APIsAuto-check passed
  • Intelliconnect Service Style

    ruanrongman/IntelliConnect

    Create or update IntelliConnect Spring Boot service/serviceimpl code in this repository style.

    147 GitHub stars~2.4k tokensUpdated today
    Backend & APIsAuto-check passed
  • Java Coding Standards

    Snailclimb/AIGuide

    Java/Spring Boot 编码规范:用于编写、审查、重构和讲解 Java 代码。适用于 Java 风格、Spring Boot 架构、Controller/Service/Manager/DAO 分层、API 边界、Entity/VO/Form/DTO/BO 设计、MyBatis/MyBatis-Plus 持久化、事务、异常、日志、安全、性能、测试和 Java 代码评审等场景。默认结合…

    669 GitHub stars~1k tokensUpdated 3 mo ago
    Backend & APIsAuto-check passed

More from mendixlabs/mxcli

All 72 skills in this repo
  • Mendix Odata Pushdown

    mendixlabs/mxcli

    Push OData query options into the SQL of a Mendix resource served by a read microflow, so $filter, $orderby, $top, $skip, $count and the key lookup reach the database instead of being silently…

    128 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Mendix Vega Charts

    mendixlabs/mxcli

    Chart a Mendix app with Vega-Lite through a pluggable widget that takes the specification and the data as separate properties, so the model emits rows and never assembles a chart payload.

    128 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Agents

    mendixlabs/mxcli

    Author Mendix AI agent documents in MDL — Model, Knowledge Base, Consumed MCP Service and Agent, with variables, tools and multi-line prompts.

    128 GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check passed
  • Mendix Bulk Oql Dml

    mendixlabs/mxcli

    Run set-based INSERT, UPDATE and DELETE against Mendix entities through OQL statements, which the runtime supports and Studio Pro cannot author.

    128 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Business Events

    mendixlabs/mxcli

    Define event-driven APIs over Kafka with Mendix business event services — publish and subscribe contracts, CREATE/DROP/DESCRIBE.

    128 GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed
  • Catalog Search

    mendixlabs/mxcli

    Search the Mendix Catalog platform service registry (catalog.mendix.com) from the CLI to find services published across an organisation.

    128 GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check passed

Works with

Categories

Questions about Java Actions

What does Java Actions do?

Create and call custom Java actions — extending Mendix with server-side Java, and invoking those actions from microflows in MDL. Java Actions is an agent skill from mendixlabs/mxcli. Create and call custom Java actions — extending Mendix with server-side Java, and invoking those actions from microflows in MDL.

When should I use Java Actions?

Java Actions fits situations like: logic needs a Java library; an algorithm microflows cannot express; an integration only available in Java.

How do I install Java Actions in Claude Code?

Run `npx skills add mendixlabs/mxcli --skill java-actions -a claude-code`. Or copy the skill folder (.claude/skills/mendix/java-actions in mendixlabs/mxcli) into .claude/skills/java-actions in your project. Claude Code loads it when a task matches its description.

How do I install Java Actions in Codex?

Run `npx skills add mendixlabs/mxcli --skill java-actions -a codex`. Or copy the skill folder (.claude/skills/mendix/java-actions in mendixlabs/mxcli) into .agents/skills/java-actions in your project. Codex loads it when a task matches its description.

Can I use Java Actions in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mendixlabs/mxcli --skill java-actions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/java-actions, .gemini/skills/java-actions, .github/skills/java-actions and .opencode/skills/java-actions in your project.

What does Java Actions need to run?

SKILL.md names no scripts, command-line tools or credentials: Java Actions is instructions for the agent only.

Does Java Actions access the network?

SKILL.md names 1 domain. As links in the text: docs.mendix.com. This is read from the text; nothing was executed.

Is Java Actions safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Java Actions use?

Java Actions is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Java Actions use?

About 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Java Actions?

Skills that share tags, products or a category with Java Actions: Spring Boot (piomin/claude-ai-spring-boot, 1.3k stars), Dr Jskill (jdubois/dr-jskill, 342 stars), WxJava Integration Guide (binarywang/WxJava, 33k stars) and Flycms Dev (sunkaifei/FlyCms, 656 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Java Actions?

mendixlabs (a GitHub organization) maintains it in mendixlabs/mxcli, which has 128 GitHub stars. The repository holds 72 skills in this directory. The repository was last updated on October 7, 2026.

Source: mendixlabs/mxcli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.