MCP Server Builder
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
Move a project to a newer Mendix version headlessly, with no Studio Pro.
$ npx skills add mendixlabs/mxcli --skill upgrade-mendix-version -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mendixlabs/mxcli upgrade-mendix-version --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/mendix/upgrade-mendix-version .claude/skills/upgrade-mendix-version && rm -rf skills-srcUse ~/.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/
Install the "upgrade-mendix-version" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/upgrade-mendix-version into .claude/skills/upgrade-mendix-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "upgrade-mendix-version", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/upgrade-mendix-versionType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mendixlabs/mxcli --skill upgrade-mendix-version -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mendixlabs/mxcli upgrade-mendix-version --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/mendix/upgrade-mendix-version .agents/skills/upgrade-mendix-version && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "upgrade-mendix-version" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/upgrade-mendix-version into .agents/skills/upgrade-mendix-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "upgrade-mendix-version", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mendixlabs/mxcli --skill upgrade-mendix-version -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mendixlabs/mxcli upgrade-mendix-version --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/mendix/upgrade-mendix-version .cursor/skills/upgrade-mendix-version && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "upgrade-mendix-version" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/upgrade-mendix-version into .cursor/skills/upgrade-mendix-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "upgrade-mendix-version", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mendixlabs/mxcli.git --path .claude/skills/mendix/upgrade-mendix-version--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mendixlabs/mxcli --skill upgrade-mendix-version -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mendixlabs/mxcli upgrade-mendix-version --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/mendix/upgrade-mendix-version .gemini/skills/upgrade-mendix-version && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "upgrade-mendix-version" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/upgrade-mendix-version into .gemini/skills/upgrade-mendix-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "upgrade-mendix-version", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mendixlabs/mxcli upgrade-mendix-versionInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mendixlabs/mxcli --skill upgrade-mendix-version -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/mendix/upgrade-mendix-version .github/skills/upgrade-mendix-version && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "upgrade-mendix-version" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/upgrade-mendix-version into .github/skills/upgrade-mendix-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "upgrade-mendix-version", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mendixlabs/mxcli --skill upgrade-mendix-version -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mendixlabs/mxcli upgrade-mendix-version --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mendixlabs/mxcli.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/mendix/upgrade-mendix-version .opencode/skills/upgrade-mendix-version && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "upgrade-mendix-version" agent skill from https://github.com/mendixlabs/mxcli/tree/main/.claude/skills/mendix/upgrade-mendix-version into .opencode/skills/upgrade-mendix-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "upgrade-mendix-version", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
upgrade-mendix-versionMove a project to a newer Mendix version headlessly, with no Studio Pro.
Upgrade Mendix Version is an agent skill from mendixlabs/mxcli. Move a project to a newer Mendix version headlessly, with no Studio Pro. Use when raising a project's Mendix version, when a build complains the project version does not match MxBuild, or before adopting a newer runtime. Covers the one check that decides whether a converter must run, and the two green false successes that upgrade nothing.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with SQLite. 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.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit a924d11. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Upgrade Mendix Version loads about 1.9k tokens when it runs. Until then it costs about 91 tokens; SKILL.md has 877 words of instructions outside code blocks.
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.
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.
The full file from mendixlabs/mxcli at commit a924d11, republished under its Apache-2.0 licence (© mendixlabs). 877 words, ~1,866 tokens.
.claude/skills/upgrade-mendix-version/SKILL.md (or your agent's skills folder).Both ways of getting it wrong look like success:
| what you do | what you see | what is true |
|---|---|---|
mxbuild --loose-version-check | BUILD SUCCEEDED | the project is still on the old version |
UPDATE _MetaData SET _ProductVersion | the project reports the new version, and mxcli agrees | every unit is read against the wrong schema |
Neither prints a warning. The first is not hypothetical — it is what happened to the project that reported this, and it took going back to look at the version column to notice that a successful build had upgraded nothing.
A .mpr is SQLite. The version lives in one table, _MetaData, with columns
_FormatVersion, _ProductVersion, _BuildVersion and _SchemaHash.
Use Python rather than the sqlite3 CLI: python3 ships with a sqlite3
module, while the CLI is frequently absent (it is not in the mxcli devcontainer).
mprhash() { python3 -c "import sqlite3,sys
print(*sqlite3.connect(sys.argv[1]).execute(
'SELECT _ProductVersion,_SchemaHash FROM _MetaData').fetchone(), sep=' ')" "$1"; }
mprhash app.mpr11.13.0 {SHA256}5Fk35jOyzj+cWnJe9ZkGWQjMEzsge3nIzS2zxH9jp6M=For the version alone, mxcli says it on connect — no SQL needed:
Connected to: /path/App.mpr (Mendix 11.14.0)One UPDATE would make the project claim the new version. Whether that is an
upgrade or a corruption is decided by the fourth column:
_SchemaHash._SchemaHash is a property of the Mendix version, not of the project —
which is what makes this usable. Measured across two unrelated projects and two
machines: a 517-unit application and a blank app, both at 11.13.0, carry
byte-identical hashes, and the same holds at 11.14.0. So a reference value can be
recorded and reused rather than rebuilt each time.
11.13.0 {SHA256}5Fk35jOyzj+cWnJe9ZkGWQjMEzsge3nIzS2zxH9jp6M=
11.14.0 {SHA256}o9B9S8lorV9RD5gY9B6j1bJp4ALW87u4newnreIbRAg=Two values are not a rule. Treat the table as a cache to check against, and re-derive the target version's hash from a blank project the first time you go to a version that is not listed — one command, and it is the only thing that actually answers the question.
mx convert is the converter. It sits beside mxbuild in the toolset, and
mxcli does not wrap it.
# 1. Cache the target toolchain.
mxcli setup mxbuild --version 11.14.0 # ~/.mxcli/mxbuild/11.14.0/modeler/
# 2. Get the reference hash for the target version, if you do not have it.
mx create-project --app-name Ref --output-dir /short/path
mprhash /short/path/Ref.mpr
# 3. Convert a COPY first, never the project.
cp -a MyApp /short/MyApp-probe
mx convert --in-place /short/MyApp-probe
# 4. Verify the copy before touching anything real.
mprhash /short/MyApp-probe/App.mpr # must equal the reference from step 2
mx check /short/MyApp-probe/App.mpr
# 5. Only now, the real project.
mx convert --in-place MyAppConverting a copy first, confirming its hash matches the reference, and only then touching the real project is what makes this safe rather than lucky. Step 4 is the whole point: it is the difference between "the conversion ran" and "the conversion produced what the target version expects".
mx convert preserves MPR v2 — which is not a given. Its siblings
mx update-widgets and mx rename-design-properties collapse a v2 project into
a single-file v1 .mpr and delete mprcontents/ as a side effect, one-way. That
is the whole reason mxcli fix widgets exists.
Check the storage format, not the unit count. Measured on an 11.13 → 11.14
conversion: .mxunit files went 391 → 386 while v2 was perfectly intact. A
conversion may legitimately drop or merge units, so an unchanged count is a
coincidence, not the invariant. What actually distinguishes preserved from
collapsed:
[ -d MyApp/mprcontents ] && echo "v2 intact" # a collapse deletes this
stat -c%s MyApp/App.mpr # v2: tens of KB. v1: tens of MBOn the measured run: mprcontents/ present, .mpr 73,728 bytes.
mx convert takes the app DIRECTORY, not the .mpr. Pointing it at the file
fails with a message that reads like the project is missing:
Conversion failed: The app directory '/path/App.mpr' does not exist.--loose-version-check suppresses the check, it does not run a converter.
Verified: after invoking mxbuild with the flag, _ProductVersion and
_SchemaHash are untouched. A green build proves nothing about the version.
A runtime version and its tooling move together. The upgrade may break the tools around it, and the failure need not mention a version at all. On 11.13 → 11.14 it surfaced as:
Error: bundling web client: no rollup.config.mjs in .../deployment/web
(run a serve Deploy build first)— because 11.14's MxBuild bundles the web client itself, so the separate rollup
step has nothing left to configure. Deleting deployment/ and rebuilding does
not help; a newer mxcli is what fixes it. When something breaks right after an
upgrade and names no version, suspect the toolchain before the model.
mx create-project needs a short output path. It fails with
System.IO.PathTooLongException under a deeply nested directory, during package
extraction — the message names a path length, not the real constraint.
Most version-pair specifics will be wrong next time. The web-client bundling change is 11.13 → 11.14 and will not recur; the two hashes above are facts about two releases, not a pattern.
What generalises is the decision procedure — _SchemaHash decides label vs
convert — plus the three traps: convert takes a directory, --loose-version-check
upgrades nothing, and the tooling moves with the runtime. Check the specifics
against your own versions rather than trusting them.
Re-run whatever the project relies on that is not covered by mx check, because
a clean check is not evidence the app still works. On the reporting project the
thing worth being anxious about was a non-standard database connection type not
in Mendix's own picker; it survived, and a full sync cycle proved it. Pick your
own equivalent — the integration nobody would notice breaking — and exercise it.
run-local — booting the app after an upgrade; the toolchain mismatch above
surfaces there first.debug-bson — if the converted model behaves oddly, and for why mx convert's
bare error count is not evidence about a model.© 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
Just SKILL.md in .claude/skills/mendix/upgrade-mendix-version of mendixlabs/mxcli.
Open the folder on GitHubat commit a924d11
Upgrade Mendix Version 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Upgrade Mendix Version this skillmendixlabs/mxcli | 128 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server BuildershareAI-lab/learn-claude-code | 78k | 5 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Copilot Session Failure Analysisdotnet/maui | 23k | — | ~3.4k | Automated safety check: Pass | MIT | |
| RTK Rust Design Patternsrtk-ai/rtk | 83k | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| OpenWork Desktop CDP Driverdifferent-ai/openwork | 24k | — | ~465 | Automated safety check: Pass | Custom licence | |
| Add Memory KindEverMind-AI/EverOS | 13k | — | ~2.6k | Automated safety check: Pass | Apache-2.0 |
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
dotnet/maui
Mines local Copilot CLI session logs for dotnet/maui to rank costly or failing runs, tag recurring failure modes, propose repo edits and emit guard evals.
rtk-ai/rtk
Describes seven Rust design patterns for the RTK CLI filter modules, with when to use each, RTK examples, and notes on when a pattern is overkill.
different-ai/openwork
Drives a running OpenWork desktop window over CDP from the shell to evaluate JS, take screenshots, start sessions and send prompts for hand checks.
EverMind-AI/EverOS
Walks through adding a new persisted memory kind to EverOS: choose storage among Markdown, SQLite and LanceDB, pick a Markdown strategy, then wire schemas, repos and writers.
diegosouzapw/OmniRoute
Trigger system backups, restore from backup files, and manage the SQLite database lifecycle. Supports export, import, and incremental snapshot strategies.
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…
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.
mendixlabs/mxcli
Author Mendix AI agent documents in MDL — Model, Knowledge Base, Consumed MCP Service and Agent, with variables, tools and multi-line prompts.
mendixlabs/mxcli
Run set-based INSERT, UPDATE and DELETE against Mendix entities through OQL statements, which the runtime supports and Studio Pro cannot author.
mendixlabs/mxcli
Stand up an HTTP endpoint you control instead of a live third-party API, and point the Mendix app at it — Prism from an OpenAPI contract, a constant swap, or a forward proxy.
mendixlabs/mxcli
Call external REST APIs from Mendix — the three approaches (inline REST CALL, consumed REST client document, generated from OpenAPI) and how to choose.
Works with
Move a project to a newer Mendix version headlessly, with no Studio Pro. Upgrade Mendix Version is an agent skill from mendixlabs/mxcli. Move a project to a newer Mendix version headlessly, with no Studio Pro.
Upgrade Mendix Version fits situations like: raising a projects Mendix version; A build complains the project version does not match MxBuild; before adopting a newer runtime.
Run `npx skills add mendixlabs/mxcli --skill upgrade-mendix-version -a claude-code`. Or copy the skill folder (.claude/skills/mendix/upgrade-mendix-version in mendixlabs/mxcli) into .claude/skills/upgrade-mendix-version in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mendixlabs/mxcli --skill upgrade-mendix-version -a codex`. Or copy the skill folder (.claude/skills/mendix/upgrade-mendix-version in mendixlabs/mxcli) into .agents/skills/upgrade-mendix-version in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mendixlabs/mxcli --skill upgrade-mendix-version -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/upgrade-mendix-version, .gemini/skills/upgrade-mendix-version, .github/skills/upgrade-mendix-version and .opencode/skills/upgrade-mendix-version in your project.
SKILL.md names no scripts, command-line tools or credentials: Upgrade Mendix Version is instructions for the agent only. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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.
Upgrade Mendix Version 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.
About 1.9k tokens (SKILL.md is roughly 7.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Upgrade Mendix Version: MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), Copilot Session Failure Analysis (dotnet/maui, 23k stars), RTK Rust Design Patterns (rtk-ai/rtk, 83k stars) and OpenWork Desktop CDP Driver (different-ai/openwork, 24k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mendixlabs (a GitHub organization) maintains it in mendixlabs/mxcli, which has 128 GitHub stars. The repository holds 75 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.