mcpField
S
Screenshotmcp

Screenshotmcp

本地服务
github.com/upnorthmedia浏览器自动化6212 周前更新

关于 Screenshotmcp

Screenshot MCP 是一个 MCP 服务,用于捕获网站截图,支持整页、指定元素和设备尺寸等功能。适合需要在开发流程中查看网页效果的开发者和设计人员。

主要功能

  1. 01自动滚动的整页截图
  2. 02基于 CSS 选择器的元素截图
  3. 03移动端、平板和桌面设备预设
  4. 04自定义视口尺寸和等待条件

适用场景

  1. 01在 Claude Code 中截取页面以检查界面效果
  2. 02捕获移动端或平板视图的页面截图
  3. 03截取导航栏等特定元素用于设计评审

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 capture_screenshot、capture_element 和 list_device_presets 工具,供客户端调用以生成网页截图。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Screenshot MCP

一个用于捕获网站截图的模型上下文协议(MCP)服务,支持整页、元素和设备尺寸等功能。

Screenshot MCP

功能

  • 整页截图捕获,支持自动滚动
  • 针对特定元素的截图,使用 CSS 选择器
  • 多种设备预设(移动设备、平板电脑、桌面设备)
  • 自定义视口配置
  • 高级等待条件(CSS 选择器、网络空闲、自定义延迟)
  • 错误处理和验证,确保安全运行
  • 速率限制,防止资源耗尽

安装

  1. 克隆或下载此项目
  2. 切换到目录:cd /path/to/ScreenshotMCP
  3. 将 .env.example 重命名为 .env
  4. 安装依赖项:npm install
  5. 启动服务:npm start

在 Claude Code 中使用

你可以直接在 Claude Code CLI 或 Claude Desktop 中使用 Screenshot MCP,将截图捕获集成到开发工作流中。

用于 Claude Code CLI: 添加到你的 ~/.config/claude/mcp_servers.json:

{
  "screenshot-full-page-mcp": {
    "command": "node",
    "args": ["/path/to/screenshot-full-page-mcp/index.js"]
  }
}

或

claude mcp add screenshot-full-page-mcp node ./index.js

用于 Claude Desktop: 添加到你的 claude_desktop_config.json:

{
  "mcpServers": {
    "screenshot-full-page-mcp": {
      "command": "node",
      "args": ["/path/to/screenshot-full-page-mcp/index.js"]
    }
  }
}

在 Cursor 中使用

你可以直接在 Cursor IDE 中使用 Screenshot MCP,将截图捕获集成到开发工作流中。

  1. 打开 Cursor。

  2. 前往 Settings > MCP Servers。

  3. 为 Screenshot MCP 添加一个新的 MCP 服务条目:

    {
      "mcpServers": {
        "screenshot-full-page-mcp": {
          "command": "node",
          "args": ["/path/to/screenshot-full-page-mcp/index.js"]
        }
      }
    }
    
  4. 保存设置。

用法

配置完成后,你可以使用自然语言命令与 Claude Code 交互:

基本截图
"Take a screenshot of https://example.com"
移动设备截图
"Capture a mobile screenshot of https://myapp.com"
自定义视口
"Screenshot https://myapp.com at 1024x768 resolution"
等待元素
"Take a screenshot of https://example.com after the loading spinner disappears"
元素截图
"Capture just the navigation bar from https://example.com"

可用工具

capture_screenshot

使用高级配置选项捕获整页截图。

参数:

  • url(必需):要截图的网页 URL
  • viewport:视口配置
    • preset:设备预设(mobile、tablet、desktop)
    • width:自定义宽度,单位为像素(100-5000)
    • height:自定义高度,单位为像素(100-5000)
    • deviceScaleFactor:缩放系数(0.1-3)
    • isMobile:移动设备模拟
    • hasTouch:触控支持模拟
  • waitFor:等待条件
    • type:selector、function、timeout 或 networkidle
    • value:CSS 选择器、函数或超时值
    • timeout:等待超时时间,单位为毫秒
  • delay:截图前的额外延迟
  • waitUntil:导航完成条件
capture_element

捕获页面中特定元素的截图。

参数:

  • url(必需):网页 URL
  • selector(必需):目标元素的 CSS 选择器
  • viewport:视口配置(同上)
list_device_presets

列出所有可用的设备预设及其配置。

设备预设

预设宽度高度缩放移动设备触控
mobile375px667px2x是是
tablet768px1024px2x是是
desktop1920px1080px1x否否

配置

可以在 .env 文件中设置环境变量:

# Browser Configuration
BROWSER_HEADLESS=true
BROWSER_TIMEOUT=30000
MAX_CONCURRENT_SCREENSHOTS=5

# Screenshot Defaults
DEFAULT_VIEWPORT_WIDTH=1920
DEFAULT_VIEWPORT_HEIGHT=1080
DEFAULT_WAIT_TIMEOUT=10000

# Security
RATE_LIMIT_REQUESTS=100
RATE_LIMIT_WINDOW=60000

# Debug
DEBUG=false
LOG_LEVEL=info

安全功能

  • URL 验证(仅限 HTTP/HTTPS)
  • CSS 选择器清理
  • 并发请求速率限制
  • 沙盒化浏览器执行
  • 输入验证和错误处理

系统要求

  • Node.js 18+
  • Chrome/Chromium 浏览器(随 Puppeteer 自动安装)
  • 至少 2GB RAM
  • 500MB 磁盘空间

故障排除

常见问题
  1. 浏览器启动失败:

    • 确保系统资源充足
    • 检查是否已正确安装 Chrome/Chromium
    • 尝试设置 BROWSER_HEADLESS=false 进行调试
  2. 截图超时:

    • 增大 .env 中的 BROWSER_TIMEOUT
    • 检查目标网站是否正常加载
    • 使用合适的 waitUntil 条件
  3. 内存问题:

    • 减少 MAX_CONCURRENT_SCREENSHOTS
    • 定期重启 MCP 服务
    • 监控系统内存使用情况
调试模式

在 .env 文件中设置 DEBUG=true,即可启用调试模式并记录详细日志。

贡献

  1. Fork 此仓库
  2. 创建功能分支
  3. 进行更改
  4. 如适用,添加测试
  5. 提交 pull request

许可证

MIT 许可证——详情请参阅 LICENSE 文件。

支持

如有问题或疑问:

  • 在 GitHub 上提出 issue
  • 查看故障排除部分
  • 查阅 MCP 文档

评论

支持 Markdown

第一次接触 MCP?

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

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