mcpField
S
shotframe

shotframe

本地服务
github.com/CloudCorpRecords媒体与设计01 周前更新

关于 shotframe

shotframe 是一个 MCP 服务和命令行工具,可将屏幕布局和图像文件提交给 AppScreen API,生成 App Store 和 Google Play 截图。它可返回供轮询的渲染任务,或提供下载链接。

主要功能

  1. 01提交布局和图像文件进行渲染
  2. 02读取本地文件或接收内嵌 base64
  3. 03轮询渲染任务状态
  4. 04获取签名下载链接
  5. 05展示 API 配额与费用信息

适用场景

  1. 01根据屏幕布局制作商店截图
  2. 02跟踪异步截图渲染任务
  3. 03刷新已过期的签名下载链接

MCP 相关

通过 AppScreen API 向 MCP 客户端提供截图渲染工具,并支持轮询任务状态和获取下载链接。

配置

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

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

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

安装包
npm@reneturcios/shotframe0.1.0
ocighcr.io/cloudcorprecords/shotframe:0.1.0

工具

2

收录的工具列表 · 更新于 1 周前

参数类型必填说明
filesarray否图像文件;每个项目是对象 {name, path} 或 {name, base64},且必须且只能包含 path 或 base64 其中之一。
screensarray是作为 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

评论

支持 Markdown

第一次接触 MCP?

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

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