mcpField
M
Mock Screenshots

Mock Screenshots

本地服务
github.com/gamercc-apps媒体与设计114 周前更新

关于 Mock Screenshots

Mock Screenshots 是用于编排虚构聊天截图并在其生成器中打开的 MCP 服务。生成的图片带水印,并提供预览、编辑和下载链接。

主要功能

  1. 01编排多种受支持平台的聊天
  2. 02生成带水印的 PNG 预览
  3. 03生成预填内容的编辑和下载链接
  4. 04列出支持的平台和设备边框
  5. 05支持 WhatsApp 聊天图片附件

适用场景

  1. 01为设计模型制作虚构聊天图片
  2. 02准备讽刺或教育用途的聊天示例
  3. 03导出前预览并调整编排好的对话

MCP 相关

提供编排虚构聊天、列出支持的平台和设备,以及获取渲染预览或生成器链接的工具。生成图片带水印并明确标示为虚构内容。

配置

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

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

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

安装包
npm@gamercc-apps/mockscreenshots-mcp0.1.6

工具

3

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

参数类型必填说明
darkboolean否深色模式。默认为 false。
deviceenum否设备边框。默认为 iphone-16-pro。iphone-16-pro | iphone-16 | iphone-15-pro | iphone-15 | iphone-14 | iphone-13 | iphone-se | pixel-8-pro | pixel-8 | galaxy-s24-ultra | galaxy-s24
formatenum否返回内嵌预览图片(默认)或仅返回链接。image | link
statusstring否页眉状态行,例如 "online"、"Active now"、"typing…"。
contactstring否页眉中显示的联系人姓名、用户名或群组名称。
messagesarray是按顺序排列的对话内容。
platformenum是要仿真的聊天应用。imessage | whatsapp | whatsapp-group | instagram | telegram | messenger | snapchat

详细介绍

Mock Screenshots MCP 服务

一个 MCP 服务,可让 AI Agent 编写虚假聊天内容,并获取指向相应 Mock Screenshots 生成器的深层链接,其中内容已预先填充,可直接预览和下载。

输出内容带有水印且明确标注为虚构,适用于戏仿、教育、设计模型和虚构创作。不得用于欺骗——请参阅道德政策。

工具

工具功能
generate_fake_chat编写一段对话(平台、消息、联系人、状态、设备、深色模式)→ 返回渲染后的带水印 PNG(内嵌预览 + 用于下载/分享的托管 URL),以及指向生成器的深层链接。支持 format: "image"(默认,返回预览 + URL)或 "link"(仅返回文本 URL)。
list_platforms列出支持的聊天应用及其生成器 URL。
list_devices列出 iPhone/Android 设备边框。
generate_fake_chat 输入
{
  "platform": "whatsapp",            // imessage | whatsapp | whatsapp-group | instagram | telegram | messenger | snapchat
  "contact": "Mom",                  // header name / username / group name
  "status": "typing…",               // header status line (optional)
  "device": "galaxy-s24",            // see list_devices (default iphone-16-pro)
  "dark": true,                      // dark mode (optional)
  "format": "image",                 // "image" (default) | "link" — see Screenshots section
  "messages": [
    {
      "text": "you home?",
      "sender": "them",
      "time": "19:01",
      "image": {
        "data": "<base64 PNG, JPEG, or WebP bytes>",
        "mimeType": "image/png",
        "alt": "A synthetic design mockup"
      }
    },
    { "text": "5 mins!", "sender": "me", "time": "19:02", "ticks": "read" }
  ]
}

messages[].image 为可选项,仅支持 whatsapp 和 whatsapp-group,因此现有的纯文本请求保持不变。也支持仅含图片的消息。附件必须是自包含的 PNG、JPEG 或 WebP 字节,且文件签名必须匹配;SVG、远程 URL、格式错误的 base64,以及超过 2 MB 的文件均会被拒绝。替代文本长度限制为 160 个字符,会先去除首尾空白;若未指定,默认值为 Attached image。 服务器还会拒绝超过 100 条的消息、超过 4,000 个字符的消息文本、超过 256 个字符的标头元数据,以及超过 6,000 字节的文本/图片源数据总量;这些检查会在解码附件或构建重复的 JSON/base64url 状态之前进行。合并后的网站端点将完整的 base64url 状态限制为 8,000 个字符,因此最终编码状态检查仍是最终依据;加入对话元数据后,可能仍需要使用更小的附件。

附件隐私与 URL 处理

**仅使用非敏感的合成附件或已公开的附件。**在托管的 GET /api/render?...&s=<state> URL 和生成器编辑用的 ?s=<state> URL 中,附件字节都会以 data URL 的形式存储在 base64url 编码的 JSON 状态内。Base64url 是编码,不是加密:任何拥有其中任一 URL 的人或系统都能还原附件。

请将所有包含附件的渲染或编辑 URL 视为敏感信息。它们可能会保存在 MCP 对话记录、客户端日志、浏览器历史记录、代理/CDN 请求日志、分析/引荐来源数据以及缓存键中。请勿将凭据、私人用户数据、机密截图或私人上传内容用作测试素材。作为纵深防御措施,MCP 自身的预览请求使用 cache: "no-store" 和 referrerPolicy: "no-referrer",但这些客户端请求设置无法保证已部署的端点、中间环节或用户打开的 URL 不会记录或缓存完整的 GET URL。此 MCP 服务不会添加任何附件或 URL 日志记录。

这种残余暴露是当前已部署 URL 状态约定固有的。要回滚附件支持,请撤销附件提交;或者避免使用 messages[].image;现有的纯文本请求仍保持兼容且不变。未来若要使用不透明且会过期的服务端状态令牌,则需要单独的网站/API 约定,本项目不会擅自设计此类机制。

截图

通过网站的 GET /api/render 端点(Cloudflare Browser Rendering),在服务端返回渲染后的带水印截图。默认输出(format: "image")包括:

  • 内嵌预览图片(已缩放并添加水印,可立即显示)
  • 托管的全分辨率 PNG 网址(可下载 / 在私信中分享,始终带水印且明确标注为虚构内容)
  • 指向生成器的深度编辑链接,其中已填入你的对话内容

也可以使用 format: "link" 获取纯文本输出(仅包含网址,不含图片预览)。

始终带水印: 截图包含醒目的“FAKE”水印,且无法禁用。这样可以确保截图明确为虚构内容,不会造成误导,适用于恶搞、教育、设计模型和虚构作品——请参阅道德规范。

还会返回一个类似 https://mockscreenshots.com/fake-whatsapp-chat-generator?s=<state> 的网址,打开后会将对话载入生成器 (便于在最终导出前预览和调整)。

运行

npm install
npm start           # stdio server
与 Claude Desktop / Claude Code 搭配使用
// claude_desktop_config.json  (or: claude mcp add)
{
  "mcpServers": {
    "mockscreenshots": {
      "command": "node",
      "args": ["/absolute/path/to/mcp/server.mjs"]
    }
  }
}

发布到 npm 后,也可以改用 npx -y mockscreenshots-mcp。

发布 / 分发

  1. 使用 npm publish 发布 mockscreenshots-mcp 包。
  2. 使用 server.json 在 registry.modelcontextprotocol.io 注册。
  3. 提交到 mcp.so、Smithery、PulseMCP 和 Glama,并向 awesome-mcp-servers 提交 PR。

每个收录页面都能带来真实的 dofollow 开发者域名链接和 Agent 发现流量——这是无可争议的 分发渠道。

工作原理

MCP 服务本身保持精简且无状态:它会构建网址,并将对话编码到紧凑且适合 URL 的 ?s= 参数中(生成器加载时也会读取该参数,见 src/lib/share.ts),然后从网站的 /api/render 端点获取预览。该端点通过 Cloudflare Browser Rendering 在服务端执行实际渲染(始终添加水印)。这样可以减少服务的依赖,并让用户能够参与预览、调整和导出。

服务绝不会获取调用方提供的附件网址。只有来自固定 Mock Screenshots 端点的 PNG 数据才会被接受为预览响应。响应正文以流式方式读取,最多 10 MB;即使缺少 Content-Length 或其数值不准确,超过上限时也会立即取消读取器。端点错误、无效响应和超时都会安全地回退到托管的图片 / 编辑链接,同时保留水印、道德警告,以及(存在附件时)附件隐私警告。

评论

支持 Markdown

第一次接触 MCP?

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

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