mcpField
C
cmpose

cmpose

本地服务
github.com开发工具02 天前更新

关于 cmpose

@cmpose/mcp 是本地 MCP 服务,可根据经过测试的模板生成可构建的 Compose Multiplatform 应用、Unity 手机游戏和 Kotlin/Ktor 后端。面向使用 AI Agent 在本机创建项目文件的开发者,并提供可配置的模板和选项。

主要功能

  1. 01生成 Compose Multiplatform 应用
  2. 02生成 Unity 手机游戏
  3. 03生成 Kotlin/Ktor 后端
  4. 04选择模板和项目选项
  5. 05查询生成器默认值与规则

适用场景

  1. 01创建 Android 和 iOS 应用项目
  2. 02启动 Unity 手机游戏项目
  3. 03生成独立的 Ktor 后端
  4. 04为模板项目添加指定功能

MCP 相关

本地 stdio MCP 服务提供六个工具,用于查询生成器选项以及创建应用、游戏和后端项目。生成过程在本机运行,首次使用时下载固定版本的模板。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"keremturker-cmpose": {
"command": "npx",
"args": [
"-y",
"@cmpose/mcp"
]
}
}
}
启动命令npx -y @cmpose/mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@cmpose/mcp0.8.9

工具

4

收录的工具列表 · 更新于 2 天前

此工具无需参数。

详细介绍

@cmpose/mcp

向 AI Agent 描述你想要的 Compose Multiplatform 应用,即可在磁盘上获得一个真正可构建的 Android + iOS 项目。项目根据经过测试的模板在本地生成。它还可生成 Unity 移动游戏(Android + iOS)和独立的 Kotlin/Ktor 后端。这是一个本地 stdio MCP 服务,提供六个工具:cmp_describe、cmp_generate、game_describe、game_generate、backend_describe 和 backend_generate。它在你的机器上运行,无需账号、API 密钥,也不会上传任何内容。

“创建一个空白的 Compose Multiplatform 应用,名称为 Habits,包名为 com.acme.habits,放在 ~/Projects 中,并添加 Room、浅色/深色主题和 AdMob 广告。”

生成项目的开发者指南:https://whinstudio.github.io/cmpose/guide.html

安装

需要 Node.js 20+ 和 git。

Claude Code

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

Claude Desktop、Cursor、Windsurf 和其他 MCP 客户端(mcpServers 配置):

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

VS Code(.vscode/mcp.json):

{
  "servers": {
    "cmpose": { "type": "stdio", "command": "npx", "args": ["-y", "@cmpose/mcp"] }
  }
}

你将获得

每个项目都包含 androidApp、iosApp(Xcode 项目)、一个集成 Koin 和 Navigation 的 shared 模块、日志记录(Kermit)、图片加载(Coil)、应用内评价、更新检查、关于页面、包含约定插件的 build-logic,以及一份附带发布检查清单的 README。

  • 模板:showcase(包含首页、引导和付费墙演示页面)或 blank(包含示例功能的简洁框架)。
  • **blank 的选项:**Ktor 网络功能(可选应用内网络检查器)、主题(浅色/深色/跟随系统)、多语言字符串、DataStore、Room(KMP,内置 SQLite)、RevenueCat 购买功能(带自定义 Compose 付费墙)、AdMob 广告(带 UMP/ATT 同意机制)、detekt、后端(Ktor 服务、Firebase 登录、分享;仅限 blank;启用多语言和网络功能)、洞察(Firebase Crashlytics + Analytics;添加 Firebase 配置文件前默认关闭)。
  • **自定义功能模块:**最多 3 个,每个包含 contract/data/domain/presentation 层。
  • **CI:**可选的 GitHub Actions 工作流。
  • **项目各处均可自定义名称:**包名、bundle id、应用名称、最低 SDK 和 iOS 部署目标。

游戏(Unity)

“创建一个名为 SkyHopper 的 2D Unity 游戏,包名为 com.acme.skyhopper,放在 ~/Projects 中,使用 blank 模板, 并包含广告和排行榜”

每个游戏项目都是 Unity 6 项目(编辑器版本为 6000.3.25f1,使用 URP),面向 Android 和 iOS,包含 VContainer + UniTask、uGUI 界面、Boot → Menu → Game 场景流程、设置屏幕、存档、深度链接、应用内评价和更新检查。

  • 模板:showcase(启用所有标志的示例游戏:2D 跑酷游戏,或使用 render: "3d" 的 3D 赛道游戏)或 blank(可自行选择标志的空游戏)。render 为 2d(默认值)或 3d。
  • blank 的标志:saveSystem、uiTheme、multiLang、network、networkInspector(需要 network,会自动为你添加)、purchases(RevenueCat)、ads(AdMob)和 leaderboards(Google Play Games 和 Game Center)。
  • **自定义功能模块(blank):**最多 3 个。
  • ID:ids 接受你实际的 AdMob(admob)、RevenueCat(revenueCat)以及 Play Games + Game Center(gameServices)ID,每组 ID 都需启用对应标志;game_describe 会列出相关字段。未提供的 ID 组会保留测试 ID / 占位符,并显示警告。
  • **外观(theme):**选择模板中的一种风格系列(bright、neon、pastel、bold、nature、clean;包括配色、形状、动效和字体组合)。game_describe 会在 themes 下列出这些风格及其适用场景。theme: { family, primary, accent, fontPair } 中的所有字段均可选:primary 和 accent(#RRGGBB)会调整所选系列的颜色明度,直到文本和按钮保持足够的对比度;如果颜色仍无法满足要求,则保留该系列的颜色,并显示警告。未设置 theme 时,项目会使用 clean,与模板自带的设置完全一致。
  • **所有位置使用你自己的名称:**包名(应用标识符)、公司名称、应用名称、最低 SDK 版本(25 到 36)和 iOS 部署目标(15.0 到 26.2)。

“创建一个名为 NotesBackend 的后端,服务名称为 notes-api,包名为 com.acme.notes,放在 ~/Projects 中,并支持共享”

每个后端都是 Kotlin(JVM 21)Ktor 服务,使用 PostgreSQL(Exposed、Flyway),在服务端验证 Firebase ID 令牌(不使用 Admin SDK),并包含文件上传、账号删除、一个可复制的示例功能、安全检查清单、本地运行器(./gradlew runLocal),以及将其作为单个 Docker 容器部署在 nginx 后所需的配置。sharing 会添加空间、角色和邀请。

工具

  • cmp_describe:默认值、选项和规则(名称格式、限制,以及选项之间的依赖关系)。Agent 会先调用此工具。
  • cmp_generate:创建项目。必填:projectName(仅限字母,最多 30 个)、appName(最多 30 个字符)、packageName(例如 com.acme.habits,最多 50 个字符)和绝对路径 outputDir。可选:templateType、features(模块名称,最多 20 个)、featuresConfig、minSdk(24 到 36)、iosVersion(15.0 到 26.2)、ci、templateRef、backendTemplateRef(server/ 所用的后端模板标签;仅使用后端时留空)。 返回项目路径、使用的模板版本、警告(例如需要替换的测试广告 ID)和后续步骤。
  • game_describe:Unity 游戏生成器的引擎和编辑器版本、模板类型、渲染模式、标志及其依赖关系、ID 组、默认值、限制,以及固定版本模板的主题系列(themes:default,以及每个系列的 id、title、suits 和 fontPairs;首次调用时会下载模板)。Agent 会先调用此工具。
  • game_generate:创建游戏。必填:projectName(1 到 30 个字母或数字,且必须以字母开头)、appName(最多 30 个字符)、packageName(例如 com.acme.skyhopper,至少 3 段,最多 50 个字符)和绝对路径 outputDir。可选:companyName(格式与 projectName 相同;默认取包名的第二段并将首字母大写)、templateType、render、flags、features(模块名称:1 到 20 个小写字母或数字,且必须以字母开头)、minSdk(25 到 36)、iosVersion(15.0 到 26.2,以 major.minor 格式书写)、ids、theme、templateRef。它不会覆盖非空文件夹。结果会指出应用的主题(theme),并在警告中列出颜色回退。
  • backend_describe:后端生成器的选项、appName 规则、项目结构,以及添加代码时应遵循的约定(受保护的路由、404 规则、功能放置位置、安全检查清单、配额、本地运行器和部署部分)。Agent 会先调用此工具。
  • backend_generate:创建后端。必填:projectName(仅限字母,最多 30 个)、appName(服务名称:2 到 31 个小写字母、数字或 -,且必须以字母开头;不能是 api、health、admin 或 static)、packageName(例如 com.acme.notes)和绝对路径 outputDir。可选:sharing(默认 false)、sample(示例条目功能,默认 true)、templateRef。它不会覆盖非空文件夹。 CMPOSE_BACKEND_TEMPLATE_DIR(后端模板检出副本的绝对路径)会使用该副本生成,而不是使用固定标签。

工作原理

生成完全在你的机器上运行。首次调用会将固定版本模板(whinstudio/cmpose-template)下载到 ~/.cache/cmpose(可通过 CMPOSE_CACHE_DIR 覆盖),后续调用会复用该模板。游戏也会以相同方式从固定版本的游戏模板(whinstudio/cmpose-game-template)获取;生成期间不会运行 Unity。后端则来自固定版本的后端模板(whinstudio/cmpose-backend-template)。每个版本都会固定使用每个模板的一个标签,因此 @cmpose/[email protected] 始终会生成相同的项目。

源代码和问题反馈:github.com/whinstudio/cmpose。基于 MIT 许可。你生成的项目归你所有。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。