关于 shotframe
shotframe 是一个 MCP 服务和命令行工具,可将屏幕布局和图像文件提交给 AppScreen API,生成 App Store 和 Google Play 截图。它可返回供轮询的渲染任务,或提供下载链接。
主要功能
- 01提交布局和图像文件进行渲染
- 02读取本地文件或接收内嵌 base64
- 03轮询渲染任务状态
- 04获取签名下载链接
- 05展示 API 配额与费用信息
适用场景
- 01根据屏幕布局制作商店截图
- 02跟踪异步截图渲染任务
- 03刷新已过期的签名下载链接
MCP 相关
通过 AppScreen API 向 MCP 客户端提供截图渲染工具,并支持轮询任务状态和获取下载链接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
2收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| files | array | 否 | 图像文件;每个项目是对象 {name, path} 或 {name, base64},且必须且只能包含 path 或 base64 其中之一。 |
| screens | array | 是 | 作为 JSON 对象的屏幕布局;其结构由 AppScreen API 定义,并以不透明方式传递。 |
详细介绍
shotframe
需要用于商店列表的 App Store 或 Google Play 截图?shotframe 会将一组屏幕布局及其引用的图像文件交给 AppScreen API,并返回可供轮询的渲染任务,或已完成截图的直接下载链接。
渲染流程:
screens— 布局,以 JSON 对象表示。其结构由 AppScreen API 定义;shotframe 会原样传递这些对象,无法替你验证。files— 布局使用的图像。每项指定一个文件,并且恰好包含一个来源:本地path(客户端会读取磁盘上的字节并对其编码;开头的~/会展开为你的主目录),或内联base64(仅用于极小的合成测试图像)。如果路径无法读取,调用会在发出任何请求前失败。- 回复会保留 API 自身的字段——带密钥的/异步渲染会返回
jobId,匿名/内联渲染会返回下载链接;API 有报告时还会附带balance和cost。API 报告的配额元数据会显示在 MCP 结果的_meta中(quota,以及存在时的balance/cost/upgradeUrl)。
使用 jobId 轮询任务,以查看其状态,并在任务完成时获取签名下载 URL。签名 URL 约一小时后过期;再次轮询即可刷新。
配置
API 密钥是可选的——匿名使用也可行,但服务会将终身渲染次数限制为 5 次:
export APPSCREEN_API_KEY="your key" # optional
渲染会消耗你自己的 AppScreen 工作区点数;点数用完后,API 会返回 402,工具会将其报告为 insufficient_credits 错误,并附带 API 返回的费用和余额文本。shotframe 本身不持有任何支付工具。
其他环境变量:
APPSCREEN_BASE_URL— API 基础 URL (默认值为https://api.appscreen.co)APPSCREEN_MCP_CLIENT— 作为X-MCP-Client标头发送,用于标识发起调用的客户端
CLI
npx @reneturcios/shotframe render_screenshots '{"screens":[{"device":"iphone"}], "files":[{"name":"icon.png","path":"~/shots/icon.png"}]}'
npx @reneturcios/shotframe get_render_status '{"job_id":"job-123"}'
npx @reneturcios/shotframe --version
输出是 API 响应正文的 JSON。退出代码:成功时为 0,运行时错误(包括验证失败、文件无法读取或上游错误)时为 1,用法错误时为 2。
MCP 服务
npx -y @reneturcios/shotframe mcp
MCP 客户端配置:
{
"mcpServers": {
"shotframe": {
"command": "npx",
"args": ["-y", "@reneturcios/shotframe", "mcp"],
"env": { "APPSCREEN_API_KEY": "your key" }
}
}
}
工具
render_screenshots— 根据屏幕(布局 JSON)和图像文件渲染 App Store 与 Google Play 截图。带密钥的/异步渲染会返回 jobId,匿名/内联渲染会返回下载链接。screens为必填项;files为可选项。get_render_status— 按 jobId 轮询渲染任务。返回任务状态,并在完成后提供签名下载 URL。签名 URL 约一小时后过期;再次轮询即可刷新。
Docker
docker run -i -e APPSCREEN_API_KEY="your key" ghcr.io/cloudcorprecords/shotframe
docker run --rm ghcr.io/cloudcorprecords/shotframe get_render_status '{"job_id":"job-123"}'
开发
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (fake fetch + temp files, no network)
npm run dev # run the CLI from source
许可证
MIT — 版权所有 (c) 2026 Rene Turcios
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。