Token导航 LogoToken导航TokenDH.com
Appshots MCP logo
运维云端未说明官方级别未说明来源级核验

Appshots MCP

MCP Server

基于MCP协议的服务,通过AI生成应用商店优化(ASO)的应用截图,支持多语言和多设备,提高关键词覆盖率。

工具数

24

提示词数

0

GitHub Stars

2

资源数

0
RustClaude云端部署Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Murzav

提供方

Murzav

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

appshots mcp

![CI](https://github.com/Murzav/appshots-mcp/actions/workflows/ci.yml) Coverage ![Crates.io](https://crates.io/crates/appshots-mcp) ](https://crates.io/crates/appshots-mcp) ![MSRV](https://blog.rust-lang.org/) ![License](LICENSE-MIT) ![MCP](https://modelcontextprotocol.io)

MCP服务器,用于生成ASO优化的App Store屏幕截图。生成最多 780最终图像 每个应用程序(39个地区x 5-10个屏幕截图x 1-2个设备)。

人工智能逻辑存在于克劳德代码中;服务器提供工具、渲染和验证。

为什么选择appshots mcp?

当前解决方案问题
手动Figma工作天数,每次更新时重复
AppScreens/Screenshots.pro付费,供应商锁定
fastlane frameit+ImageMagick平面PNG帧,约10%的布局精度,RTL/neneneba表情中断

核心问题: 屏幕截图标题与ASO关键字断开连接。标题必须加强关键字的覆盖范围,而不是随机的营销文本。appshots-mcp通过将ASO关键字分析直接集成到屏幕截图生成管道中来解决这个问题。

特性

  • 24个MCP工具 完整的截图流程
  • 3个MCP提示 指导应用程序准备、模板设计和批量生成
  • 模拟器状态管理 --预热、种子用户默认值、捕获前滚动/点击
  • 干净的捕捉+Typst合成 --在模板中添加了设备帧的帧缓冲区屏幕截图
  • 典型渲染 --原生RTL/CJK支持,精确布局,亚秒级渲染
  • OKLCH颜色空间 排他性——感知一致,无十六进制/RGB
  • 39个ASO地区 带有后备链
  • 颗粒再生 --修复一个屏幕截图而不重新渲染全部780
  • 关键字感知字幕 --AI将ASO关键字整合到每个地区的字幕中
  • 并行渲染 具有可配置的并发性(默认为4并发)
  • 自动字体发现appshots/fonts/ 目录
  • 编译超时 (30s)防止无限循环模板
  • 原子文件写入 带咨询锁定
  • 路径遏制 防止符号链接逃逸攻击

快速开始

安装

自制(macOS/Linux):

brew install Murzav/tap/appshots-mcp

货物:

cargo install appshots-mcp

货仓(预构建二进制):

cargo binstall appshots-mcp

配置

克劳德代码:

claude mcp add appshots-mcp -- appshots-mcp --project-dir /path/to/your/app

通用MCP客户端(stdio):

{
  "mcpServers": {
    "appshots-mcp": {
      "command": "appshots-mcp",
      "args": ["--project-dir", "/path/to/your/app"]
    }
  }
}

CLI选项

标志默认值描述
--project-dir.应用程序项目根目录的路径
--glossary-pathglossary.json共享术语表文件的路径
--config-pathappshots.json截图配置路径

用法

典型工作流程

  1. 准备你的应用程序 --使用 prepare-app 提示创建 ScreenshotMode Swift中的枚举
  2. 设计模板 --使用 design-template 提示创建Typst模板 preview_design
  3. 生成所有屏幕截图 --使用 generate-screenshots 完整管道提示:
scan_project → analyze_keywords → plan_screens → save_captions (en-US)
→ translate captions (38 locales) → validate_layout
→ warm_simulator → seed_defaults → capture_screenshots
→ compose_screenshots → run_deliver

工具

捕获和设置

工具说明
list_simulators列出可用的iOS模拟器(UDID、运行时、状态)
warm_simulator预引导模拟器,授予权限,设置Apple规范状态栏(9:41)
seed_defaults通过plist导入种子用户默认值(安装后运行,启动前运行)
interact_simulator通过CGEvent鼠标拖动模拟在iOS模拟器中滚动或点击
capture_screenshots从模拟器帧缓冲区捕获干净的屏幕截图(无设备边框)

发现与分析

工具说明
scan_project解析 fastlane/metadata/ 在所有39个地区
analyze_keywords查找某个地区的关键字覆盖率差距
get_project_status检查配置、模板、标题、捕获准备情况

策略

工具说明
plan_screens保存模式->关键字->消息映射
get_plans检索当前屏幕平面图
save_captions保存区域设置的字幕(按模式追加播放)
get_captions使用区域设置/模式过滤器获取字幕
get_locale_keywords阅读区域设置的keywords.txt
get_caption_coverage覆盖矩阵:区域设置x模式
review_captions按标题进行关键字覆盖率分析

设计与渲染

工具说明
save_template保存Typst模板源
get_template使用解析链读取模板
preview_design渲染单个设计预览
validate_layout检查所有模板是否有错误/警告
suggest_font为区域设置脚本建议系统字体
compose_screenshots通过Typst渲染最终PNG

管道和术语表

工具说明
run_deliver快跑 fastlane deliver 上传截图
get_glossary获取术语表条目(与xcstrings mcp共享)
update_glossary更新术语表条目

提示

提示描述
prepare-app指南:在Swift中创建ScreenshotMode枚举+ScreenshotDataProvider;文件 defaults import 用于播种模拟数据
design-template指南:设计具有OKLCH颜色、自动缩放文本、RTL支持的Typst模板;包括设备帧合成方法
generate-screenshots指南:从扫描到交付的完整10步流程;涵盖了预热/播种/交互准备步骤和内部构造

颗粒再生

所有渲染工具都接受可选 modeslocales 过滤器。省略=全部处理。

"Fix screenshot 3"         → compose_screenshots(modes: [3])
"Fix German text on #5"    → compose_screenshots(modes: [5], locales: ["de-DE"])
"Re-capture stats screen"  → capture_screenshots(modes: [4])

关键规则

  • 仅限OKLCH:所有颜色使用 oklch(L%, C, Hdeg)。没有十六进制、RGB或HSL。
  • 模板分辨率: templates/template-{mode}.typ -> templates/template.typ -> template.typ
  • 区域设置回退:es MX->es es,fr CA->fr fr,en AU/CA/GB->en US,pt pt->pt BR,zh-Hant->zh-Hans
  • 所需尺寸: iPhone 6.9" (1320x2868), iPad 13" (2064x2752).最多10个地方。

屏幕截图模式如何工作

每个应用程序屏幕都分配了一个数字 模式 (1-10).应用程序的 ScreenshotMode Swift枚举将模式映射到特定的UI状态:

  1. 该应用程序通过以下方式启动 xcrun simctl launch --screenshot-N 其中N是模式号
  2. ScreenshotDataProvider 在应用程序中检查 ProcessInfo.processInfo.arguments 为了 --screenshot-N 并相应地配置模拟数据
  3. 对于复杂状态(例如,连胜计数、职业状态),请使用 seed_defaults 写入UserDefaults 之前 启动应用程序
  4. capture_screenshots 每种模式都能捕获干净的帧缓冲区图像——没有设备边框
  5. compose_screenshots 通过Typst渲染最终的PNG,叠加字幕,并可选择添加设备帧

项目目录结构

project-root/
├── fastlane/
│   ├── metadata/{locale}/    ← keywords.txt, name.txt, subtitle.txt
│   └── screenshots/{locale}/ ← final output
├── appshots.json             ← project config (plan, captions, template)
├── appshots/
│   ├── template.typ          ← single template
│   ├── templates/            ← per-screen templates
│   ├── fonts/                ← custom fonts (.ttf, .otf, .woff2)
│   ├── captures/             ← simulator captures (clean framebuffer)
│   ├── previews/             ← design iteration previews
│   └── .seed-defaults.plist  ← temporary plist for defaults import
├── examples/                 ← reference Typst templates
└── glossary.json             ← shared with xcstrings-mcp

设备帧合成

capture_screenshots 生成没有设备边框的干净帧缓冲区图像。在以下过程中添加设备帧 compose_screenshots 通过Typst模板。三种方法:

  1. 原始屏幕截图 --没有边框,只有带有字幕叠加的截图
  2. 圆形卡片 --类型 rect(radius: ...)clip: true 模拟设备角
  3. Png覆盖层 --在屏幕截图顶部放置一个透明的设备框架PNG(像素完美的苹果边框)

examples/template-with-frame.typ 参考模板,演示具有RTL支持、自动缩放文本和OKLCH颜色的方法#2。

建筑

main.rs     → CLI (clap), tokio current_thread, stdio transport
server.rs   → #[tool_router] (24 tools) + #[prompt_router] (3 prompts)
tools/      → capture, scan, analyze, plan, captions, design, render,
              deliver, validate, glossary — all I/O via FileStore trait
service/    → metadata_parser, locale, keyword_matcher, font_resolver,
              template_resolver, typst_renderer, typst_world, validator,
              config_parser — pure functions, NO I/O
model/      → ProjectConfig, Caption, OklchColor, AsoLocale, Device,
              TemplateConfig — data types with serde + JsonSchema
io/         → FileStore trait + FsFileStore (atomic writes, flock)
error.rs    → AppShotsError enum (thiserror)
prompts.rs  → prompt content generators

图层规则: server -> tools -> service -> model。服务没有I/O。

演出

操作目标
scan_project (39个地区)\<50ms
compose_screenshots (1)\<100ms
compose_screenshots (全部,平行)\<20s
capture_screenshots (1x1)~3s

相关

许可证

根据以下任一方式获得许可:

由您选择。

贡献

欢迎投稿!请打开问题或提交PR。

目录标签

目录标签

RustClaude云端部署应用商店优化本地部署多语言支持AI生成自动化截图关键词分析

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

24

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP