UI Screenshot Comparison MCP
Enables automated visual testing by comparing screenshots against baseline images using OpenAI to verify UI consistency. It generates detailed performance reports in both terminal and Excel formats based on provided user stories and acceptance criteria.
README
📖 Hướng dẫn sử dụng MCP Tool - UI Screenshot Comparison
📋 Yêu cầu hệ thống
- Node.js >= 18.x
- VS Code với GitHub Copilot extension
- OpenAI API Key (lấy tại https://platform.openai.com/api-keys)
🚀 Cài đặt
Bước 1: Clone/Download project
cd my-mcp-server
Bước 2: Cài đặt dependencies
npm install
Bước 3: Build project
npm run build
Sau khi build thành công, file output sẽ ở: dist/index.js
⚙️ Cấu hình MCP Server trong VS Code
Bước 1: Mở VS Code Settings
Nhấn Ctrl + Shift + P → Gõ Preferences: Open User Settings (JSON)
Bước 2: Thêm cấu hình MCP
Thêm đoạn sau vào file settings.json:
{
"mcp": {
"servers": {
"my-mcp": {
"type": "stdio",
"command": "node",
"args": ["d:\\my-mcp-server\\dist\\index.js"],
"env": {
"OPENAI_API_KEY": "sk-proj-your-api-key-here"
}
}
}
}
}
⚠️ Quan trọng: Thay
sk-proj-your-api-key-herebằng OpenAI API key thật của bạn.
Bước 3: Restart MCP Server
- Nhấn
Ctrl + Shift + P - Gõ
MCP: List Servers - Tìm server
my-mcpvà click Restart
📁 Chuẩn bị dữ liệu test
Cấu trúc folder yêu cầu
test-images/
├── expectation/
│ └── baseline.png # Ảnh baseline (design/expectation)
│
└── dealers/
├── dealer-a/
│ └── screenshot.png # Screenshot của dealer A
├── dealer-b/
│ └── screenshot.png # Screenshot của dealer B
├── dealer-c/
│ └── screenshot.png # Screenshot của dealer C
└── dealer-d/
└── screenshot.png # Screenshot của dealer D
Yêu cầu:
- Mỗi dealer là một folder riêng
- Trong folder dealer chứa file ảnh (PNG/JPG/JPEG/GIF/WEBP)
- Có thể có nhiều ảnh trong một folder dealer
🎮 Cách sử dụng
Cách 1: Sử dụng trong Copilot Chat
-
Mở Copilot Chat trong VS Code (
Ctrl + Shift + I) -
Gõ prompt:
Compare dealer screenshots for "Highlights Widget" feature.
User story: Verify the highlights widget displays vehicle features correctly.
Expectation: d:\my-mcp-server\test-images\expectation\baseline.png
Dealers: d:\my-mcp-server\test-images\dealers
- Copilot sẽ tự động gọi tool và trả về kết quả
Cách 2: Chỉ định đường dẫn export Excel
Compare dealer screenshots for "Login Page" feature.
User story: Verify login form has username, password input and submit button.
Expectation: d:\my-mcp-server\test-images\expectation\login-baseline.png
Dealers: d:\my-mcp-server\test-images\dealers
Export path: d:\reports\login-page-report.xlsx
📊 Output
1. Terminal Output (trong Copilot Chat)
# UI Structure Comparison Report
## Feature: Highlights Widget
**User Story:** Verify the highlights widget displays vehicle features correctly
**Baseline:** baseline.png
---
## Results
| Dealer | Image | Score | Status | Analysis |
|----------|----------------|----------|--------|------------------------------|
| dealer-a | screenshot.png | 95/100 | PASS | UI structure matches |
| dealer-b | screenshot.png | 92/100 | PASS | UI structure matches |
| dealer-c | screenshot.png | 45/100 | FAIL | Missing highlights widget |
| dealer-d | screenshot.png | 88/100 | PASS | UI structure matches |
---
## Summary
- **PASS:** 3
- **FAIL:** 1
- **Total:** 4
---
## Excel Report
**Exported to:** d:\my-mcp-server\test-images\report-Highlights-Widget-1705734567890.xlsx
2. Excel Report (3 sheets)
| Sheet | Nội dung |
|---|---|
| Summary | Tổng quan: Feature, Total, Passed, Failed, Pass Rate |
| Results | Tất cả dealers với color-coded (xanh=PASS, đỏ=FAIL) |
| Failed Dealers | Chỉ những dealer failed để quick review |
🔧 Troubleshooting
Lỗi: "OpenAI API key required"
Nguyên nhân: Chưa cấu hình API key
Giải pháp:
- Kiểm tra
settings.jsoncóOPENAI_API_KEYchưa - Hoặc set environment variable:
$env:OPENAI_API_KEY = "sk-proj-your-key-here"
Lỗi: "Expectation image not found"
Nguyên nhân: Đường dẫn ảnh baseline sai
Giải pháp:
- Kiểm tra đường dẫn tồn tại
- Dùng đường dẫn tuyệt đối (full path)
- Kiểm tra file có extension đúng không (.png, .jpg)
Lỗi: "No dealer folders found"
Nguyên nhân: Folder dealers trống hoặc không có subfolder
Giải pháp:
- Đảm bảo có ít nhất 1 subfolder trong dealers/
- Mỗi subfolder là tên dealer (dealer-a, dealer-b,...)
Lỗi: Tool không xuất hiện trong Copilot
Nguyên nhân: MCP server chưa start hoặc cấu hình sai
Giải pháp:
Ctrl + Shift + P→MCP: List Servers- Kiểm tra server
my-mcpcó status Running không - Nếu không, click Start hoặc Restart
- Kiểm tra lại path trong
settings.json
Lỗi: "API Error: 429 Too Many Requests"
Nguyên nhân: Vượt rate limit của OpenAI
Giải pháp:
- Đợi 1 phút rồi thử lại
- Hoặc upgrade OpenAI plan
💰 Chi phí ước tính
| Số dealers | Chi phí ước tính |
|---|---|
| 10 dealers | ~$0.10 - $0.30 |
| 50 dealers | ~$0.50 - $1.50 |
| 100 dealers | ~$1.00 - $3.00 |
Chi phí phụ thuộc vào kích thước ảnh và độ phức tạp.
📝 Parameters Reference
| Parameter | Bắt buộc | Mô tả |
|---|---|---|
expectationImagePath |
✅ | Đường dẫn đến ảnh baseline |
dealersFolderPath |
✅ | Đường dẫn đến folder chứa các dealer subfolders |
featureName |
✅ | Tên feature đang test (VD: "Login Page") |
userStory |
✅ | Acceptance criteria cần verify |
openaiApiKey |
❌ | API key (nếu không set trong env) |
exportPath |
❌ | Đường dẫn export Excel (default: auto generate) |
🎯 Tips
-
Đặt tên folder dealer rõ ràng để dễ identify trong report
-
Screenshot cùng viewport size để so sánh chính xác hơn
-
User story càng cụ thể → AI analyze càng chính xác
❌ "Verify UI" ✅ "Verify the highlights widget shows vehicle features with icons and descriptions" -
Chạy test trên ít dealers trước để verify tool hoạt động đúng
📞 Support
Nếu gặp vấn đề, kiểm tra:
- Node.js version >= 18
- OpenAI API key valid và có credit
- MCP server đang running
- Đường dẫn files chính xác
Happy Testing! 🚀
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。