mxstage
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mxstageload the overdue work orders into a staging sheet and propose fixes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MX Stage
English | 日本語
MX Stage is a local-only AI workbench for correcting IBM Maximo data with your own AI assistant (Claude Desktop, ChatGPT, Antigravity, IBM Bob): every change is staged, diffed and approved by a human before it is written to Maximo.
Website: https://mxstage.tsunagi.app · Contact: mxstage@tsunagi.app
Your AI works on a staging sheet, not on Maximo. The AI assistant loads Maximo data into a sheet in the work screen (a browser tab), analyses it and proposes changes with reasons. You see every changed cell. The sheets live only in the work screen tab and the bridge's memory; loaded tables are never written to disk.
Only a person can commit. The AI's tools cannot write to Maximo. Changes are written only when you press Commit to Maximo in the work screen. MX Stage writes one record first and lets you check it before it sends the rest. Records that someone else changed after you loaded them are skipped and listed; it stops on an error or a result it cannot confirm. Any batch of changes can be undone before you commit. You choose in the commit panel how many records one commit sends (all of them, or a number; 200 by default).
Keep a record of what was approved. The commit panel saves a diff report (Excel): one row per changed cell with the old value, the new value, who changed it (the AI assistant or a person) and why. After a commit, it also holds the write log of that commit.
Nothing leaves your PC except calls to your Maximo and your AI assistant. There is no MX Stage cloud and no telemetry. There are two optional exceptions: if you turn on Settings → Updates → Update automatically (off by default), the bridge asks GitHub once a day for the latest version number; and if you choose Settings → Demo → Download data and connect, it downloads fictional sample data once from
mxstage-demo.pages.dev(nothing is sent). Installs made with the setup script then update themselves while no work is open (the new version from GitHub, its packages from the npm registry); the Claude Desktop extension downloads the new file from GitHub and checks it for you to install. A small local process (the bridge) serves the work screen, talks MCP to your AI assistant and relays requests to Maximo, so Maximo needs no CORS settings. Your Maximo API key is saved on this PC by the bridge, encrypted with Windows data protection (DPAPI), and is not sent to the browser (on macOS, untested, the Keychain protects it; on Linux, a file only your user can read). Every window of the work screen — the installed app, a browser tab, or the browser inside your AI assistant — connects automatically, even after a restart, and you can switch between saved Maximo environments in Settings. (You can also connect without saving; the key then stays only in the tab's memory.)Teach it your procedures. Save a procedure worked out in a conversation as a Skill; the AI follows it next time.
Keep the customer's way of writing. Customer dictionaries hold how a customer writes names, the words that mean a failure code, and how values such as maker or department names are written. The AI adds entries and the work screen applies them as rules (matching, codes from text, value replacement), so the next month's files need less reading. You check and save them in the work screen. Each connection keeps its dictionaries and Skills in its own folder (Documents\MX Stage<connection> by default); choose a shared folder (OneDrive, SharePoint, a network folder…) in Settings → Skills & dictionaries, and saved entries reach every member through your own file sync. MX Stage itself sends them nowhere.
Why not call the Maximo REST API from the AI directly?
Several Maximo MCP servers let the AI call the REST API. That is fine for reading, but risky for bulk changes: you cannot see what the AI is about to write, and a wrong guess goes straight into production. MX Stage puts a staging sheet, a diff, an undo and a human approval in between.
Related MCP server: SheetForge MCP
Supported AI assistants
Assistant | Status |
Claude Desktop (chat and Code tab) | Supported |
ChatGPT desktop — Codex or Work mode (Chat mode cannot use local MCP servers) | Supported |
Antigravity (2.0, IDE) | Supported (registered by the installer) |
IBM Bob | Supported (registered by the installer) |
Claude Code, Codex CLI and IDE extension | Work, not officially supported |
Requirements
Windows (macOS and Linux are untested)
For the installer: Node.js 22.6 or later and Git (the installer offers to install them). The Claude Desktop extension needs neither; the npm package (
npx @mxstage/mxstage) needs Node.js 20 or later.Chrome or Edge
IBM Maximo or Maximo Application Suite (Manage) with the JSON API at
/maximo/apiand an API key
Install
Claude Desktop (simplest)
Download
mxstage-<version>.mcpbfrom the latest release.In Claude Desktop, open Settings → Extensions, then Advanced settings → Install Extension… and choose the file (or double-click the file, or drag it onto the Extensions page). Choose Install.
Open
http://127.0.0.1:8788/appin Chrome or Edge and enter your Maximo URL and API key in Settings. Never paste the API key into the chat.In a new chat, ask "show the MX Stage status".
The extension needs no Node.js or Git: Claude Desktop runs it. To use MX Stage from other assistants as well (ChatGPT desktop, IBM Bob, Claude Code in the terminal, Antigravity), use the installer below; it detects the extension and does not register MX Stage twice.
Try without Maximo
No Maximo at hand? MX Stage includes a demo: a fictional Maximo with three waste incineration plants (assets, locations, about 52,000 work orders, inventory and the data quality problems migrations leave behind), in Japanese or English, running inside the bridge on your PC.
Install MX Stage (above), then open
http://127.0.0.1:8788/settings#demo.Choose Download data and connect. MX Stage downloads about 10 MB of fictional data (no programs) once from
mxstage-demo.pages.devand checks it against a SHA-256 built into this version.Ask your AI assistant, for example "Check the data quality of the operating assets at North Clean Center and list the problems with counts."
Commits change only the copy on your PC (Reset to the initial state puts it back), and no license is needed. The demo takes about 0.5 GB of memory while in use. Five sample Excel files to merge with Maximo (purchase orders without work order numbers, a legacy equipment register, daily work reports printed as A4 forms (a repair log table in the English data), an equipment register ahead of Maximo, a star chart) are in the same tab. See docs/demo.en.md.
Claude plugin (Skills)
The mxstage plugin in plugin/ adds two Skills to Claude (planning a safe bulk correction of Maximo data; explaining, installing and troubleshooting MX Stage) and, in Claude Code and Cowork, starts the MX Stage server with npx @mxstage/mxstage (Node.js 20 or later). Chat does not start local servers, so use the extension there. In Claude Code: /plugin marketplace add mxstage/mxstage, then /plugin install mxstage@mxstage.
Other assistants (installer)
Ask Claude Code (or the Code tab of Claude Desktop) to install it: give it this repository's URL and say "install this". It follows Installation steps for Claude Code below and asks before running each command.
To install by hand, clone this repository to %USERPROFILE%\mxstage and run node scripts/setup-local.mjs in it.
One install registers MX Stage with every supported assistant found on this PC. Then restart the assistant you use, open mxstage on the desktop (or http://127.0.0.1:8788/app), and enter your Maximo URL and API key in Settings. Never paste the API key into the chat.
In Settings, also choose for each Maximo whether it is production or test. Committing to production needs a license (see License); everything else is free.
MCP clients that start servers with npm can also run the server alone with npx -y @mxstage/mxstage (Node.js 20 or later; the Skills and shortcuts come only with the installer).
To update, say "update MX Stage"; to remove it, say "uninstall MX Stage" (see Uninstall).
Where it is registered
~ is %USERPROFILE%. The installer only touches assistants that are installed (Claude Desktop: its settings folder exists; Antigravity: ~\.gemini; Codex: ~\.codex; IBM Bob: ~\.bob), backs up every file before changing it (to ~\.config\mxstage\backup\), and never changes other servers' settings. node scripts/setup-local.mjs --status shows what is registered without changing anything. To leave an assistant out, add --no-claude-desktop, --no-antigravity, --no-codex or --no-bob (--no-skills copies no Skills). --claude-code registers Claude Code even when the extension is enabled.
Assistant | MCP server | Skills | After installing or updating |
Claude Code (CLI) |
|
| Restart Claude Code |
Claude Desktop (Code tab) | Same as Claude Code, or the extension ( | Same as Claude Code | Quit Claude Desktop from the system tray and open it again |
Claude Desktop (chat) |
| Not copied (see Skills) | Quit from the system tray (closing the window is not enough) and open again |
Antigravity |
|
| Start a new conversation |
Codex (ChatGPT desktop, CLI, IDE extension) |
|
| Restart Codex |
IBM Bob |
|
| Restart IBM Bob |
The installer copies the 17 built-in Skills (the index mxstage-workbench, the basic operations mxstage-core-* and the standard objects mxstage-obj-*) and your own Skills (in ~\.config\mxstage\skills\). Assistants that get no Skill files (Claude Desktop chat, the agy CLI) still receive the index and the list of Skills in tool results (see Skills).
Checking in each assistant
Screen names are those in each product's documentation (English UI, September 2026).
Assistant | MCP ( | Skills ( |
Claude Code (CLI) |
|
|
Claude Desktop (Code tab) | + in the input box → Connectors | Type |
Claude Desktop (chat) | + in the input box → Connectors → Manage connectors shows the tools. Connection state and logs: Settings → Developer (log: | Not shown (no files are copied). Ask "show the MX Stage Skills" and the tools return the list |
Antigravity 2.0 | Settings at the bottom left ( | The same Customizations. Call one with |
Antigravity IDE | … at the top of the agent panel → MCP Servers → Manage MCP Servers (View raw config opens the file) | Customizations in the agent panel |
|
| Not shown (no files are copied) |
Codex (ChatGPT desktop) | Settings → MCP servers. | Skills on the left. Type |
Codex CLI |
|
|
Codex IDE extension | Gear menu → MCP servers |
|
Uninstall
Remove everything
Say "uninstall MX Stage" to Claude Code, or run in %USERPROFILE%\mxstage:
node scripts/setup-local.mjs --uninstallThis removes the mxstage entries from every assistant (restoring any setting the installer replaced), the Skills it copied (unless you edited them), the sign-in shortcut and desktop shortcut, and the bridge it started. It keeps your own Skills (~\.config\mxstage\skills\) and the backups. To remove everything, also delete %USERPROFILE%\mxstage and ~\.config\mxstage (the backups are full copies of the original settings files, including any tokens in them), and clear the site data for 127.0.0.1:8788 in your browser.
Remove it from some assistants only
The installer has no option to remove a single assistant, so delete only the mxstage entry from that assistant's settings. Other servers' settings stay.
Assistant | Remove the MCP server | Remove the Skills |
Claude Code (CLI) |
| In |
Claude Desktop (chat and Code tab) | Settings → Developer → Edit Config opens | None in chat. The Code tab uses Claude Code's |
Antigravity | Delete the | Delete the same folders in |
Codex | Delete the | Delete the same folders in |
IBM Bob | Delete the | Delete the same folders in |
Running the installer again registers it with that assistant again, unless you add --no-claude-desktop, --no-antigravity, --no-codex or --no-bob (Claude Code has no such option, but it is not registered while the MX Stage extension is enabled in Claude Desktop, unless you add --claude-code).
Installation steps for Claude Code
When the user asks to install MX Stage, follow these steps and get the user's approval before each command.
Check prerequisites:
node --version(22.6 or later) andgit --version. If missing, with the user's agreement install them withwinget install OpenJS.NodeJS.LTS/winget install Git.Git, then confirmnodeandgitwork in a new shell.Get the code into
%USERPROFILE%\mxstage(~/mxstageon macOS and Linux):if it does not exist:
git clone <this repository URL> "%USERPROFILE%\mxstage"if it exists:
git pull --ff-onlyin it (if local changes block it, stop and tell the user)
Install: in that folder run
node scripts/setup-local.mjs --json. This also runsnpm installand builds the work screen. Do not usemxstage.cmd(it waits for a key press at the end).Read the result: success if no item in
stepshas"level": "error". Forerrororwarn, tell the user itsmessageandhintand follow thehint. Do not edit settings files by guesswork.Tell the user to restart the assistant they use, to enter the Maximo URL and API key in the work screen settings (
http://127.0.0.1:8788/app), and never to paste the API key into the chat.
Update: steps 2 to 4. Ask the user to restart their assistant afterwards so the new bridge is used. Uninstall: node scripts/setup-local.mjs --uninstall --json. Status: node scripts/setup-local.mjs --status --json (changes nothing).
What the installer does
What | Details |
Bridge | Starts on port |
MCP and Skills | Registers them as in Where it is registered. To leave some out: |
Startup and shortcuts | A shortcut that starts the bridge at sign-in, and |
Running it again is safe. See docs/local.md (in Japanese) for details.
Skills
A Skill is a procedure the AI assistant follows.
Location | Contents | Updates | |
Built-in: index |
| The rules for every task and which Skill to read when | Replaced with MX Stage updates; do not edit |
Built-in: basic operations |
| Loading, analysing, changing, matching, importing, committing, the work screen, writing Skills | Same |
Built-in: standard Maximo objects |
| Assets and meters, locations, classifications and specifications, work orders, PMs and job plans, items and inventory, purchasing, reference data: what Maximo does with them, what MX Stage can change and the traps | Same |
A customer's | The connection's folder, with its dictionaries ( | That customer's environment (custom objects, attributes, rules) and repeated tasks | Shared with the members who use the same folder; every save is a new version. Given to the AI only while the work screen is connected to that customer |
Yours on this PC |
| Your own procedures for any connection | Kept across updates and never sent anywhere. Names starting with |
Every assistant gets the index: it is attached, with the list of all Skills, to the result of the first tool call in each conversation, so assistants that cannot load Skill files (Claude Desktop chat, for example) follow the same rules. Tool results name the Skills for each step (for example the asset and classification Skills when asset specifications are loaded), and the AI reads them with
get_skill.Your Skills come first for their customer: they may replace steps of the built-in Skills, never the rules of the index. A customer's Skill is used instead of one of this PC with the same name.
Create Skills from the chat: say "keep this procedure as a Skill". The AI shows the name, description and body and, after you agree, keeps a draft; the work screen shows a notice, and the draft is used only after you check it and press Save in Settings → Skills & dictionaries. Each Skill there has a history and can be restored.
Run the installer again to copy new or changed Skills of this PC to each assistant. A customer's Skills are never copied there, so they are not read while you work for another customer.
Documentation
The detailed guides are in Japanese for now, except the demo guide:
docs/demo.en.md — trying MX Stage without Maximo (the built-in demo; in English)
docs/local.md — daily use, updates, uninstalling, troubleshooting, where things are written
docs/status.md — what works today
docs/publish.md — checks before pushing to GitHub (no customer data)
docs/design.md — the design rules of the work screen
Development
npm run typecheck # tsc (app and bridge)
npx vitest run # tests (app, bridge and the demo data generator)
npm run test:setup # installer tests (write only to temporary folders)
npm run build # build the built-in Skills and the work screen (dist/app)
npm run dev:app # dev server for the work screen (http://localhost:5173/app?samples=1 shows sample data; relays to the dev bridge on 8790)
npm run dev:fake-maximo # a fake Maximo at https://127.0.0.1:9797 (API key: test-api-key)
npm run dev:bridge # a bridge on port 8790 that accepts the development license for the fake Maximo
node scripts/check-publish.mjs --worktree # checks before pushing (docs/publish.md)Disable IBM telemetry when installing dependencies ($env:IBM_TELEMETRY_DISABLED='true'; npm install in PowerShell); the installer does this itself. See dev/README.md for developing and testing license checks.
Only test commits against a development Maximo with dummy data. There is no automatic rollback of changes written to Maximo.
License
MX Stage is licensed under the Business Source License 1.1. The source is available, but it is not open source. The LICENSE file is authoritative; this is a summary.
Free: everything except committing to a production Maximo — loading, analysing and editing production data, building Skills, and committing to test environments. You may read, modify and redistribute the source under the same license.
License needed: using MX Stage to create, change or delete data in a production Maximo environment — US$4,800 per production environment per year, for any number of users and PCs. The license key names the environment's URLs (up to three aliases). License and purchase.
Production environment: the Maximo your organization uses to record day-to-day operations, and an environment being prepared to replace it (for example, a migration target before go-live). Test environment: everything else (development, test, training, demonstration, migration rehearsal), even if it holds a copy of production data.
Each version becomes Apache License 2.0 four years after its release. From then on, that version can also write to production under Apache 2.0.
Third-party packages and fonts (IBM Carbon Design System, IBM Plex and others) keep their own licenses (THIRD_PARTY_NOTICES.md).
IBM and Maximo are trademarks of International Business Machines Corporation. MX Stage is an independent product and is not affiliated with or endorsed by IBM.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
List, read, edit, and deploy your GenMB AI-generated apps from any MCP client.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- AlicenseNot gradedqualityCmaintenancehe Maximo MCP Server bridges AI agents (Claude, Cursor, Antigravity) with your IBM Maximo environment. It empowers your AI to autonomously discover Object Structures (APIs), inspect schemas, and query live data via OSLC. Instead of hallucinating field names, the AI validates queries instantly and ca31 npm10Apache 2.0
- AlicenseCqualityAmaintenanceLocal-first Excel MCP server for AI agents enabling structured reads, workbook introspection, and safer .xlsx mutation without Microsoft Excel or LibreOffice.7843 PyPI2MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Google Docs and Sheets that enables AI assistants to read, create, edit, style, export, and collaborate on documents using local OAuth authentication.16 npm1MIT
- AlicenseNot gradedqualityAmaintenanceThis MCP server enables safe local access to tables and spreadsheets for AI agents, providing typed tools for reading, previewing, and committing table changes through a permission-brokered interface.MIT