GoldenPillow/screen-vision-mcp
3.1
If you are the rightful owner of screen-vision-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Screen Vision MCP Server v2.0 is an advanced automation server designed to bypass crawling restrictions through direct screen manipulation.
Screen Vision MCP Server v2.0 ๐
ํฌ๋กค๋ง ์ ํ๋ ํ์ด์ง๋ฅผ ํ๋ฉด ์ง์ ์กฐ์์ผ๋ก ์ฐํํ๋ ๊ณ ๊ธ ์๋ํ MCP ์๋ฒ์ ๋๋ค.
โจ v2.0 ์๋ก์ด ๊ธฐ๋ฅ
๐ค ์๋ํ ๊ธฐ๋ฅ
- click_element: ์ขํ๋ ํ ์คํธ๋ก ์์ ํด๋ฆญ (OCR ๊ธฐ๋ฐ)
- scroll_page: ํ์ด์ง ์คํฌ๋กค (์ํ์ข์ฐ)
- type_text: ํ ์คํธ ์๋ ์ ๋ ฅ
- press_key: ํค๋ณด๋ ๋จ์ถํค ์คํ
- wait_for_element: ํน์ ์์๊ฐ ๋ํ๋ ๋๊น์ง ๋๊ธฐ
- automated_browse: ์๋ ํ์ด์ง ํ์ ๋ฐ ๋ฐ์ดํฐ ์์ง
๐ OCR ๋ฐ ๋น์ ๋ถ์
- extract_text_from_screen: Tesseract.js ๊ธฐ๋ฐ ํ ์คํธ ์ถ์ถ
- find_clickable_elements: ํด๋ฆญ ๊ฐ๋ฅํ UI ์์ ์๋ ๊ฐ์ง
๐ธ ๊ธฐ์กด ๊ธฐ๋ฅ (๊ฐ์ ๋จ)
- capture_screen: ํ๋ฉด ์บก์ฒ
- analyze_ui_elements: UI ์์ ๋ถ์
- create_ui_guide: ์๊ฐ์ ๊ฐ์ด๋ ์์ฑ
- create_answer_overlay: ๋ต๋ณ ์ค๋ฒ๋ ์ด ํ์
๐ฏ ํฌ๋กค๋ง ์ฐํ ์๋๋ฆฌ์ค
1. ๋ก๊ทธ์ธ์ด ํ์ํ ์ฌ์ดํธ
// 1. ํ์ฌ ํ๋ฉด ์บก์ฒ
await capture_screen({});
// 2. ๋ก๊ทธ์ธ ๋ฒํผ ํด๋ฆญ
await click_element({ text: "๋ก๊ทธ์ธ" });
// 3. ์์ด๋ ์
๋ ฅ
await click_element({ text: "์์ด๋" });
await type_text({ text: "your_username", clear_before: true });
// 4. ๋น๋ฐ๋ฒํธ ์
๋ ฅ
await press_key({ key: "tab" });
await type_text({ text: "your_password" });
// 5. ๋ก๊ทธ์ธ ๋ฒํผ ํด๋ฆญ
await click_element({ text: "๋ก๊ทธ์ธ" });
// 6. ํ์ด์ง ๋ก๋ฉ ๋๊ธฐ
await wait_for_element({ text: "๋์๋ณด๋", timeout: 10 });
2. ๋ฌดํ ์คํฌ๋กค ๋ฐ์ดํฐ ์์ง
// ์๋์ผ๋ก ์คํฌ๋กคํ๋ฉด์ ๋ฐ์ดํฐ ์์ง
await automated_browse({
target_text: "๋๋ณด๊ธฐ",
max_clicks: 10,
scroll_between_clicks: true,
extract_content: true
});
3. CAPTCHA๋ ๋ณด์ ๊ฒ์ฆ ์ฐํ
// 1. ํ์ฌ ํ๋ฉด ๋ถ์
await analyze_ui_elements({ focus_area: "์ ์ฒดํ๋ฉด" });
// 2. CAPTCHA ์ด๋ฏธ์ง์์ ํ
์คํธ ์ถ์ถ
await extract_text_from_screen({
region: { x: 100, y: 200, width: 200, height: 50 }
});
// 3. ์ถ์ถ๋ ํ
์คํธ ์
๋ ฅ
await click_element({ x: 300, y: 250 });
await type_text({ text: "์ถ์ถ๋_ํ
์คํธ" });
๐ ๏ธ ์ค์น ๋ฐ ์ค์
1. ์์กด์ฑ ์ค์น
cd "D:\Projects\Testing-Lab\Experiments\screen-vision-mcp"
npm install
2. ์๋ก์ด ์์กด์ฑ ์ถ๊ฐ
npm install robotjs tesseract.js
3. ๋น๋
npm run build
4. Claude Desktop ์ค์
{
"mcpServers": {
"screen-vision": {
"command": "node",
"args": ["D:/Projects/Testing-Lab/Experiments/screen-vision-mcp/dist/index.js"],
"env": {}
}
}
}
๐ฎ ์ฌ์ฉ ์์
๊ธฐ๋ณธ ์๋ํ ์ํฌํ๋ก์ฐ
1. capture_screen() - ํ์ฌ ์ํ ํ์ธ
2. extract_text_from_screen() - ํ์ด์ง ๋ด์ฉ ์ฝ๊ธฐ
3. find_clickable_elements() - ํด๋ฆญ ๊ฐ๋ฅํ ์์ ์ฐพ๊ธฐ
4. click_element() - ์ํ๋ ์์ ํด๋ฆญ
5. wait_for_element() - ํ์ด์ง ๋ก๋ฉ ๋๊ธฐ
6. scroll_page() - ์ถ๊ฐ ์ฝํ
์ธ ๋ก๋
7. automated_browse() - ๋ฐ๋ณต ์์
์๋ํ
Claude์์ ๋ํ ์์
- "์ด ํ์ด์ง์ ๋ก๊ทธ์ธํด์ค"
- "์๋๋ก ์คํฌ๋กคํด์ ๋ ๋ง์ ์ฝํ ์ธ ๋ฅผ ์ฐพ์์ค"
- "'๋ค์ ํ์ด์ง' ๋ฒํผ์ ์ฐพ์์ ํด๋ฆญํด์ค"
- "์ด ํผ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํด์ค"
- "ํ์ด์ง์ ๋ชจ๋ ํ ์คํธ๋ฅผ ์ถ์ถํด์ค"
๐ง ๊ธฐ์ ์คํ
- RobotJS: ๋ง์ฐ์ค/ํค๋ณด๋ ์๋ํ
- Tesseract.js: OCR ํ ์คํธ ์ธ์
- Sharp: ์ด๋ฏธ์ง ์ฒ๋ฆฌ ๋ฐ ๋ฉํ๋ฐ์ดํฐ
- Screenshot-desktop: ํ๋ฉด ์บก์ฒ
- TypeScript: ํ์ ์์ ์ฑ
- MCP SDK: Model Context Protocol
โ ๏ธ ์ฃผ์์ฌํญ
๊ถํ ์๊ตฌ์ฌํญ
- Windows: ์ ๊ทผ์ฑ ๊ถํ, ๊ด๋ฆฌ์ ๊ถํ (์ฒซ ์คํ ์)
- macOS: ์ ๊ทผ์ฑ ๊ถํ, ํ๋ฉด ๊ธฐ๋ก ๊ถํ
- Linux: X11 ๊ถํ
๋ณด์ ๊ณ ๋ ค์ฌํญ
- ์คํฌ๋ฆฐ์ท์ ๋ฏผ๊ฐํ ์ ๋ณด๊ฐ ํฌํจ๋ ์ ์์
- ์๋ํ ์คํฌ๋ฆฝํธ๋ ์ ์คํ๊ฒ ์ฌ์ฉ
- ์น์ฌ์ดํธ ์ด์ฉ์ฝ๊ด ์ค์ ํ์
์ฑ๋ฅ ์ต์ ํ
- OCR ์ฒ๋ฆฌ๋ CPU ์ง์ฝ์ (์์ญ ์ง์ ๊ถ์ฅ)
- ์คํฌ๋ฆฐ์ท์ ์์ ํด๋์ ์ ์ฅ๋จ
- ๋๋ ๋ฐ์ดํฐ ์์ง ์ ์๋ ์ ํ ๊ถ์ฅ
๐จ ์ค๋ฆฌ์ ์ฌ์ฉ
์ด ๋๊ตฌ๋ ๋ค์ ๋ชฉ์ ์ผ๋ก๋ง ์ฌ์ฉํด์ผ ํฉ๋๋ค:
- ์ ๊ทผ์ฑ ๊ฐ์
- ํฉ๋ฒ์ ์ธ ๋ฐ์ดํฐ ์์ง
- ๊ฐ์ธ ์ ๋ฌด ์๋ํ
- ํ ์คํธ ๋ฐ ๊ฐ๋ฐ
๊ธ์ง์ฌํญ:
- ๋ฌด๋จ ํฌ๋กค๋ง
- ์๋น์ค ์ฝ๊ด ์๋ฐ
- ๊ฐ์ธ์ ๋ณด ๋ฌด๋จ ์์ง
- ์ ์์ ๋ชฉ์ ์ฌ์ฉ
๋ฒ์ : 2.0.0
๊ฐ๋ฐ์: Assistant
๋ผ์ด์ ์ค: MIT
์
๋ฐ์ดํธ: 2025-05-25