cmpose

Generate buildable Compose Multiplatform and Unity game projects locally from tested templates.

OtherJavaScriptv0.8.3

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 and CI as options. What each option adds: packages/mcp/README.md.

  • @cmpose/core — the generator library (the same code cmpose.dev runs).
  • @cmpose/mcp — a local stdio MCP server with two tools: cmp_describe and cmp_generate.

Requires Node.js 20+ and git. The first generation downloads the pinned template (Keremturker/cmpose-template) into ~/.cache/cmpose (override: CMPOSE_CACHE_DIR).

Use with Claude Code

claude mcp add cmpose -- npx -y @cmpose/mcp

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 and templateRef; cmp_describe lists the defaults and rules.

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.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @cmpose/mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-keremturker-cmpose": {
      "command": "npx",
      "args": [
        "-y",
        "@cmpose/mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@cmpose/mcpnpm

Compatible MCP Clients

cmpose works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More