Skip to main content
Glama

Webshot MCP

by bingal
README_zh.md5.05 kB
# webshot-mcp 一个用于生成网页截图的 MCP (Model Context Protocol) 服务器,基于 Playwright 实现。 ## 功能特性 - 🌐 支持任意网页截图 - 📱 支持多种设备类型(桌面、手机、平板) - 🎨 支持多种图片格式(PNG、JPEG、WebP) - 📏 支持自定义尺寸和 DPI 缩放 - 🖼️ 支持全页面截图 - 🗜️ 支持图片质量压缩 - ⚡ 异步处理,性能优异 ## 使用方法 ### 作为 MCP 服务器 #### 方式 1:使用 uvx 直接运行(推荐) ```json { "mcpServers": { "webshot": { "command": "uvx", "args": ["webshot-mcp"] } } } ``` #### 方式 2:在 Claude Code 中使用 Claude Code 可以通过两种方式配置此 MCP 服务器: **选项 A:使用 CLI 向导** ```bash claude mcp add ``` 然后按照提示添加 webshot-mcp。 **选项 B:直接编辑配置文件(推荐)** 编辑你的 Claude Code 配置文件(`~/.claude.json`)并添加: ```json { "mcpServers": { "webshot": { "type": "stdio", "command": "uvx", "args": ["webshot-mcp"] } } } ``` 编辑配置文件后,重启 Claude Code 以应用更改。 #### 方式 3:使用 pip 安装后运行 ```bash # 安装 webshot-mcp pip install webshot-mcp # 安装 chromium 浏览器 playwright install chromium ``` 然后在 MCP 客户端配置中添加: **对于 Claude Desktop(`claude_desktop_config.json`):** ```json { "mcpServers": { "webshot": { "command": "webshot-mcp" } } } ``` **对于 Claude Code(`~/.claude.json`):** ```json { "mcpServers": { "webshot": { "type": "stdio", "command": "webshot-mcp" } } } ``` ### 工具参数 `webshot` 工具支持以下参数: #### 必需参数 - `url` (string): 要截图的网页 URL - `output` (string): 截图文件保存路径 #### 可选参数 - `width` (integer): 浏览器窗口宽度,默认 1280 - `height` (integer): 浏览器窗口高度,默认 768。设置为 0 时进行全页面截图 - `dpi_scale` (number): DPI 缩放比例,默认 2 - `device` (string): 设备类型,可选值: - `desktop` (默认): 桌面设备 - `mobile`: 移动设备 (iPhone 13) - `tablet`: 平板设备 (iPad Pro) - `format` (string): 图片格式,可选值: - `png` (默认): PNG 格式 - `jpeg`: JPEG 格式 - `webp`: WebP 格式 - `quality` (integer): 图片质量 (0-100),默认 100。仅对 JPEG 和 WebP 格式有效 ### 使用示例 #### 网页完整长度截图(网页长截图)提示词参考 ``` 帮我生成 www.baidu.com 页面完整截图,保存成 webp 格式,保存到 /Users/ben/Downloads/screenshot-baidu-1.webp ``` #### 指定网页截图尺寸提示词参考 ``` 帮我生成 www.baidu.com 页面截图,尺寸 1280x720,保存成 webp 格式,保存到 /Users/ben/Downloads/screenshot-baidu-2.webp ``` #### 移动设备截图提示词参考 *注意:手机和平板设备会根据模拟的设备尺寸生成,忽略自定义尺寸参数* ``` 帮我生成 www.baidu.com 手机版截图,保存成 webp 格式,保存到 /Users/ben/Downloads/screenshot-mobile.webp ``` #### 平板设备截图提示词参考 ``` 帮我生成 www.baidu.com 平板版截图,保存成 png 格式,保存到 /Users/ben/Downloads/screenshot-tablet.png ``` #### 指定保存格式和压缩质量提示词参考 ``` 帮我生成 www.baidu.com 截图,保存成 jpg 格式,压缩质量为 80,保存到 /Users/ben/Downloads/screenshot.jpg ``` #### 高分辨率桌面截图提示词参考 ``` 帮我生成 www.github.com 高分辨率截图,尺寸 1920x1080,保存成 png 格式,保存到 /Users/ben/Downloads/github-hd.png ``` #### 批量截图提示词参考 ``` 帮我为以下网站生成截图并保存到 /Users/ben/Downloads/: 1. www.google.com - 完整页面,webp 格式,文件名:google-full.webp 2. www.github.com - 1280x720 尺寸,jpg 格式 90% 质量,文件名:github.jpg 3. www.stackoverflow.com - 手机版视图,png 格式,文件名:stackoverflow-mobile.png ``` ## 开发 ### 运行测试 ```bash uv run pytest ``` ### 代码结构 ``` webshot-mcp/ ├── src/webshot_mcp/ │ ├── __init__.py │ ├── cli.py # CLI 入口 │ └── server.py # MCP 服务器实现 ├── tests/ │ └── test_server.py # 测试用例 ├── pyproject.toml # 项目配置 └── README.md ``` ### 技术栈 - **MCP**: Model Context Protocol 框架 - **Playwright**: 浏览器自动化和截图 - **Pillow**: 图片处理和压缩 - **asyncio**: 异步编程支持 ## 发布 ### 构建和发布到 PyPI ```bash # 安装构建工具 uv add --dev build twine # 构建包 uv run python -m build # 发布到 PyPI uv run twine upload dist/* ``` ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request! ## 更新日志 ### v0.1.0 - 初始版本 - 支持基本网页截图功能 - 支持多种设备类型和图片格式 - 支持图片质量压缩和尺寸调整

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bingal/webshot-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server