cmpose
Generate buildable Compose Multiplatform and Unity game projects locally from tested templates.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
@cmpose/mcpclaude mcp add cmpose -- npx -y @cmpose/mcp@0.8.6
{
"mcpServers": {
"cmpose": {
"command": "npx",
"args": [
"-y",
"@cmpose/mcp@0.8.6"
]
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
cmpose
Generate Compose Multiplatform projects on your own machine — from any AI agent, through MCP.
Ask your agent for an app ("a blank Compose Multiplatform app called Habits with Room and theming") and get a buildable Android + iOS project from a tested template: Koin, Navigation, Ktor, Room, DataStore, theming, multi-language, RevenueCat purchases, AdMob ads, detekt, backend (Ktor server, Firebase sign-in, sharing; blank only; turns on multi-language and networking) and CI as options. What each option adds: packages/mcp/README.md.
It also generates Unity mobile games ("a 2D Unity game called SkyHopper with ads and
leaderboards"): a Unity 6 (URP) Android + iOS project from the pinned game template
(whinstudio/cmpose-game-template), as a showcase sample game (2D runner or 3D track) or a
blank game with flags for saving, theming, multi-language, networking, RevenueCat purchases,
AdMob ads and Play Games / Game Center leaderboards, up to 3 feature modules and your real IDs.
And it generates a standalone Kotlin/Ktor backend ("a backend called NotesBackend with
sharing"): Firebase sign-in verified on the server, PostgreSQL with Flyway, file uploads, a
sample feature to copy and the parts to deploy it as one Docker container, from the pinned
backend template (whinstudio/cmpose-backend-template), with an optional sharing part
(spaces, roles and invitations).
@cmpose/core— the generator library.@cmpose/mcp— a local stdio MCP server with six tools:cmp_describe,cmp_generate,game_describe,game_generate,backend_describeandbackend_generate.
Requires Node.js 20+ and git. The first generation downloads the pinned template
(whinstudio/cmpose-template) into ~/.cache/cmpose (override: CMPOSE_CACHE_DIR).
Developer guide (architecture, modules, backend, release): https://whinstudio.github.io/cmpose/guide.html
Use with Claude Code
claude mcp add -s user cmpose -- npx -y @cmpose/mcp
-s user makes the server available in every directory; without it, it is added only for the
directory you run the command in.
Optional skills for Claude Code live in whinstudio/skills:
cmp-new-project generates a project through this server asking only four questions, and
cmp-feature, cmp-code-rules, cmp-testing and others help when working in a generated
project. Install one into ~/.claude/skills/:
git clone https://github.com/whinstudio/skills.git ln -s "$PWD/skills/cmp-new-project" ~/.claude/skills/cmp-new-project
Use with other MCP clients
Add the server to the client's mcpServers configuration:
{
"mcpServers": {
"cmpose": {
"command": "npx",
"args": ["-y", "@cmpose/mcp"]
}
}
}
cmp_generate takes projectName, appName, packageName and an absolute outputDir
(required), plus optional templateType (showcase | blank), features, featuresConfig
(blank only), minSdk, iosVersion, ci, templateRef and backendTemplateRef (the
backend template tag that server/ comes from; blank with the backend only); cmp_describe
lists the defaults and rules. game_generate takes the same required fields plus optional
companyName, templateType, render (2d | 3d), flags and features (blank only),
minSdk, iosVersion, ids, theme and templateRef; game_describe lists the flags, ID
groups, limits and the template's theme families.
backend_generate takes the same required fields (appName is the service name, e.g.
notes-api) plus optional sharing, sample (the sample items feature, default on) and
templateRef; backend_describe lists the rules and the conventions an agent follows when it
adds code to the generated backend.
Develop
npm install npm test npm run scan # public hygiene scan: private paths, names, addresses, secrets
The 5 real-template tests in packages/core/test/fileService.importSort.test.js run only
when CMP_REAL_TEMPLATE_DIR points to a checkout of the template, e.g.
CMP_REAL_TEMPLATE_DIR=/path/to/template-checkout npm test; otherwise they are skipped.
CMPOSE_BACKEND_TEMPLATE_DIR points to a checkout of the backend template (an absolute path).
The MCP server then generates from that checkout instead of the pinned tag: backend_generate
and the server/ of a cmp_generate blank project with the backend. Only git's tracked files
are copied, and the result warns that it is not a released tag. The real backend-template tests
in packages/core/test/backend-generate.real.test.js (and, together with CMP_REAL_TEMPLATE_DIR,
in generate.backend.real.test.js) run only when it is set, e.g.
CMP_REAL_TEMPLATE_DIR=/path/to/template-checkout CMPOSE_BACKEND_TEMPLATE_DIR=/path/to/backend-template-checkout npm test.
Frequently asked questions
What is cmpose?
Generate buildable Compose Multiplatform and Unity game projects locally from tested templates.
How do I install cmpose?
It runs on your machine. In Claude Code: claude mcp add cmpose -- npx -y @cmpose/mcp@0.8.6. For other clients, paste the JSON configuration from this page into their MCP settings.
Does cmpose need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is cmpose open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains cmpose?
It is published by whinstudio. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.