v0.4.0 — component is now app
This release renames the core noun. What the engine builds is called an app, everywhere. It used to be called a component — a word borrowed from front-end frameworks, where it means a piece of a page. What this engine builds is not a piece of anything: it is a thing a person opens, keeps, and comes back to.
What breaks
- 12 tool names change.
open_component→open_app,save_component→save_app,list_components→list_apps, and so on for every tool that carried the word. Per-app tools follow:open_<name>is unchanged in shape. - Schema keys change. The
componentargument is nowapp; thecomponentsarray in results is nowapps. - The
omaruntime surface changes.oma.state.componentis nowoma.state.app. If you wrote an app that reads it, update that read — nothing else inwindow.omamoved.
Your hosts will ask you to re-authorize the tools (they are new names, so previously granted permissions do not carry over), and the first request after upgrading pays a one-time prompt-cache miss.
🔴 The store upgrade is one-way
Opening your store with 0.4.0 migrates it, and an engine at 0.3.x will refuse to open it afterwards. There is no downgrade path. If you want one, copy your store file before upgrading — the location is printed by the installer, and OMA_DB overrides it.
What the migration does for you
- Tables, history and event types move over in one transaction; the ledger keeps its old event names, because a ledger is a record of what happened, not of what things are called now.
- If you already had an app named
app,componentorloader, it is renamed onto the first free name rather than left to collide, its files and history follow it, and the ledger records where it went and why. That case is why 0.3.2 could fail to start for some stores; it is now handled during the upgrade instead. - Re-opening a migrated store changes nothing further.
Also
The tool surface got smaller: 48,589 → 47,890 bytes. A shorter noun in twelve tool names and every schema key adds up, and that headroom is now available for capabilities the MCP Apps spec recommends declaring.
Compatibility
Requires Node 22+ (engines.node: ">=22"). Depends on @modelcontextprotocol/ext-apps ^1.7.4 and @modelcontextprotocol/sdk ^1.30.0; the committed lockfile resolves them to 1.7.4 and 1.30.0.
The open-mcp-apps package on the npm registry is not this project — that name is held by an unrelated package. Install from this repository.