เชื่อมต่อเครื่องมือ AI
เชื่อมต่อ Claude Code, Codex, Gemini CLI และ MCP ไคลเอนต์อื่น ๆ เพื่อสร้างและแก้ไขโปรเจกต์สกรีนช็อตด้วย AI ตรวจทานด้วยเครื่องมือเบราว์เซอร์ และส่งออกจากเอดิเตอร์บนเว็บ
เชื่อมต่อเครื่องมือ AI
เมื่อ MCP เปิดใช้งานในการปรับใช้ AppScreenshots นี้ ให้เชื่อมต่อเครื่องมือที่รองรับไปที่:
https://appscreenshots.net/api/mcpเลือก HTTP / Streamable HTTP และ OAuth ล็อกอินด้วยบัญชี AppScreenshots ในเบราว์เซอร์ เลือกโปรเจกต์และ asset ที่เครื่องมือใช้ได้ และตัดสินใจว่าจะอนุญาตให้สร้างโปรเจกต์หรือไม่ ไม่ต้องมีสิทธิ์เข้าถึงฐานข้อมูลหรือ API key
สำหรับภาพรวมพร้อมพรอมป์ต์ตัวอย่าง ดูที่หน้า MCP
เชื่อมต่อไคลเอนต์ของคุณ
คำสั่งด้านล่างลงทะเบียน endpoint กับไคลเอนต์แต่ละตัว หลังเชื่อมต่อ ให้เสร็จสิ้นการล็อกอินผ่านเบราว์เซอร์เมื่อไคลเอนต์แสดงขึ้น
claude mcp add --transport http --scope user appscreenshots https://appscreenshots.net/api/mcpจากนั้นรัน /mcp ใน Claude Code และอนุญาต สำหรับการเชื่อมต่อระดับโปรเจกต์ ให้รวมไฟล์ .mcp.json แทนการลงทะเบียน user scope — อย่าตั้งค่าทั้งสองแบบพร้อมกัน เว้นแต่ตั้งใจจะแทนที่ขอบเขต
codex mcp add appscreenshots --url https://appscreenshots.net/api/mcp
codex mcp login appscreenshotsอีกทางเลือกคือรวมส่วน [mcp_servers.appscreenshots] ที่มี url = "..." เข้ากับ config.toml ของไคลเอนต์
gemini mcp add --transport http --scope user appscreenshots https://appscreenshots.net/api/mcpใน Gemini CLI รัน /mcp auth appscreenshots รูปแบบไฟล์ settings ใช้ httpUrl สำหรับ Streamable HTTP พร้อม "oauth": {"enabled": true}
เปิด /mcp-config เพิ่ม HTTP server ด้วย endpoint ดังกล่าว แล้วใช้ /mcp-config login appscreenshots ไฟล์ config คือ ~/.kimi-code/mcp.json:
{
"mcpServers": {
"appscreenshots": {
"url": "https://appscreenshots.net/api/mcp"
}
}
}รีสตาร์ทเซสชันหลังเพิ่มการตั้งค่า distribution ของ kimi-cli รุ่นเก่าใช้ kimi mcp add --transport http --auth oauth แทน
รวม server เข้ากับ ~/.zcode/cli/config.json ใต้ mcp.servers หรือเพิ่ม HTTP service ชื่อ appscreenshots ใน Settings → MCP:
{
"mcp": {
"servers": {
"appscreenshots": {
"type": "http",
"url": "https://appscreenshots.net/api/mcp",
"oauth": {
"type": "authorization_code",
"scope": "projects:read projects:write assets:read offline_access"
}
}
}
}
}รีสตาร์ทเซสชันและเสร็จสิ้นการล็อกอิน OAuth ในเบราว์เซอร์เมื่อไคลเอนต์แสดงขึ้น รีบเสร็จให้เร็ว: ไคลเอนต์เดสก์ท็อปจะยกเลิกการอนุญาตที่ค้างอยู่หลังราว 180 วินาที
ใช้รายการเชื่อมต่อ MCP แบบกำหนดเองที่มีในบัญชีหรือ workspace ของคุณ และเลือก OAuth กับ endpoint ข้างต้น ความพร้อมใช้งานขึ้นกับการตั้งค่าบัญชีและ workspace — คลัง GitHub สาธารณะไม่ได้สร้างรายการในไดเรกทอรี ChatGPT ให้อัตโนมัติ
การเชื่อมต่อไคลเอนต์เอกสารจากคู่มือทางการและการทดสอบแบบ end-to-end ระดับโปรโตคอลที่เสร็จสมบูรณ์ (OAuth, การสร้างโปรเจกต์, การแก้ไข, พรีวิวบนเว็บ, การส่งออก) การรับรองรายไคลเอนต์ยังดำเนินการอยู่ ดูสถานะปัจจุบันได้ที่เมทริกซ์การตรวจสอบของชุดเชื่อมต่อ
ชุดเชื่อมต่อ
คลังสาธารณะ appscreenshots-mcp มีไฟล์ config สำเร็จรูปสำหรับไคลเอนต์ทั้งหมดข้างต้น, Skill เสริมที่สอนเวิร์กโฟลว์สกรีนช็อต และคำสั่ง doctor ที่ตรวจสอบเซิร์ฟเวอร์จากเทอร์มินัลของคุณ:
git clone https://github.com/horace68/appscreenshots-mcp.git
node bin/appscreenshots.mjs config claude # พิมพ์ส่วนย่อยของ config ไคลเอนต์
node bin/appscreenshots.mjs install-skill claude
node bin/appscreenshots.mjs doctorตัวช่วยนี้เพียงพิมพ์ config และติดตั้ง Skill เท่านั้น ไม่ใช่ stdio server ภายในเครื่อง — ใช้ความสามารถเชื่อมต่อระยะไกลแบบดั้งเดิมของไคลเอนต์คุณ
เครื่องมือ
เครื่องมือทั้งเก้าด้านล่างเปิดให้ใช้ผ่าน Streamable HTTP ไคลเอนต์อาจเติมคำนำหน้าชื่อ เซิร์ฟเวอร์ที่โฮสต์คือแหล่งข้อมูลจริงสำหรับ input schema และสิทธิ์บัญชี
| เครื่องมือ | ประเภท | หน้าที่ |
|---|---|---|
get_capabilities | อ่าน | สิทธิ์ ขอบเขตการออกแบบ (100–5000 px) เครื่อง ประเภทองค์ประกอบ maxFrames (20) maxElementsPerFrame (100) โหมดพรีวิว/ส่งออก |
search_templates | อ่าน | ค้นหาข้อมูลเมตาของเทมเพลตสาธารณะ (query, offset) |
get_template | อ่าน | อ่านเทมเพลตที่มีสิทธิ์ตาม id |
list_projects | อ่าน | แสดงโปรเจกต์ที่อนุญาต หน้าละ 25 |
get_project | อ่าน | อ่านเวอร์ชันปัจจุบันและดีไซน์ที่แก้ไขได้ พร้อม editorUrl |
get_project_preview | อ่าน | ลิงก์เอดิเตอร์ เวอร์ชัน เฟรม และคำแนะนำการตรวจทานในเบราว์เซอร์ — เป็นข้อความ ไม่ใช่รูปภาพ |
list_assets | อ่าน | แสดง asset ที่แชร์และ asset ในโปรเจกต์ที่อนุญาต หน้าละ 50 |
create_project | เขียน | สร้างจากเทมเพลตหรือผืนผ้าใบเปล่า (name, templateId แบบเลือกได้, width, height, idempotencyKey) |
update_project | เขียน | ใช้การดำเนินการแบบมีโครงสร้าง 1–100 รายการต่อการเรียก พร้อม expectedRevision และ idempotencyKey |
การดำเนินการแก้ไข
update_project รับรายการการดำเนินการแบบแยกประเภทได้:
set_name— เปลี่ยนชื่อโปรเจกต์add_frame/remove_frame/reorder_frames— จัดการเฟรมupsert_element— แทรกหรือแทนที่องค์ประกอบ ต้องระบุเรขาคณิตครบ และคงฟิลด์ที่ละไว้ของประเภทเดียวกันpatch_element— แก้ไขบางส่วนตามidขององค์ประกอบ เปลี่ยนประเภทไม่ได้remove_element— ลบองค์ประกอบset_background— ตั้งพื้นหลังของหนึ่งเฟรม พื้นหลังที่ใช้ร่วมกันจะถูกตรึงรายเฟรมset_locales— ตั้งภาษา 1–20 ภาษาและภาษาเริ่มต้นset_canvas— ขนาดผืนผ้าใบ (100–5000) และโหมด (separateหรือcontinuous)
องค์ประกอบมีงานพิมพ์ ฟิลด์ mockup เครื่อง การอ้างอิง assetId ของรูปภาพ รูปทรง ไอคอน rotation และ stackOrder รูปภาพอ้างอิงด้วย assetId ที่อนุญาตเท่านั้น — ห้ามใช้ URL หรือพาธในเครื่อง และการอ้างอิงที่มีอยู่เซิร์ฟเวอร์เก็บไว้ให้ จึงไม่ต้องส่งกลับ
การเขียนเชิงตรรกะทุกครั้งควรใช้ idempotency key ใหม่ ใช้ซ้ำเฉพาะการลองใหม่ที่เหมือนกันทุกประการ หลังชนกันด้านเวอร์ชัน ให้อ่านเวอร์ชันล่าสุดก่อนดำเนินการต่อ ห้ามใช้ SQL, HTML หรือสคริปต์เป็นคำสั่งแก้ไขเด็ดขาด
ข้อผิดพลาด
ข้อผิดพลาดส่งกลับเป็น JSON {code, message} พร้อม isError: true:
| รหัส | ความหมาย |
|---|---|
REVISION_CONFLICT | โปรเจกต์เปลี่ยนหลัง expectedRevision — อ่านใหม่แล้วลองอีกครั้ง |
ASSET_NOT_AUTHORIZED | asset ไม่ได้ถูกเลือกในหน้าขอความยินยอม |
FRAME_NOT_FOUND / ELEMENT_NOT_FOUND | เฟรมหรือองค์ประกอบที่อ้างถึงไม่มีอยู่ |
ELEMENT_TYPE_CHANGE_NOT_ALLOWED | patch_element เปลี่ยนประเภทองค์ประกอบไม่ได้ |
INVALID_FRAME_ORDER / INVALID_DEFAULT_LOCALE | ลำดับเฟรมหรือภาษาเริ่มต้นไม่ถูกต้อง |
DUPLICATE_ID | id ชนกับของที่มีอยู่ |
PROJECT_SIZE_LIMIT | เกินขีดจำกัดเฟรม องค์ประกอบ หรือ payload |
RATE_LIMITED | เรียกมากเกินไป — HTTP 429 พร้อม Retry-After |
การอนุญาตและขีดจำกัด
เซิร์ฟเวอร์ใช้ OAuth 2.1 กับ PKCE และการล็อกอินผ่านเบราว์เซอร์:
- ขอบเขต:
projects:read,projects:write(เฉพาะเมื่อคุณอนุญาตให้สร้างหรือแก้ไข),assets:readและoffline_access - access token มีอายุ 1 ชั่วโมง และ refresh token มีอายุ 30 วัน
- access token ต้องมี grant ที่ยังมีผล: เมื่อคุณยกเลิกการเชื่อมต่อ token ที่มีอยู่หยุดทำงานทันที
- ขีดจำกัดอัตรา: 60 MCP call ต่อนาทีในแผนฟรี 120 ต่อนาทีในแผนเสียเงิน เกินขีดจำกัดได้รับ HTTP 429 พร้อม
Retry-After: 60 - เนื้อหาคำขอจำกัด 2 MB โปรเจกต์จำกัด 20 เฟรมและ 100 องค์ประกอบต่อเฟรม
สิทธิ์ของแผนยังใช้ตามปกติ: ข้อจำกัดโปรเจกต์ เทมเพลตแบบเสียเงิน ฟอนต์กำหนดเอง และการส่งออกแบบชุดไม่เปลี่ยนแปลง และไม่มีค่า AI ที่โฮสต์ไว้ — งานออกแบบและข้อความมาจาก AI ที่เชื่อมต่อ
เริ่มจากสกรีนช็อตของคุณ
อัปโหลดสกรีนช็อตต้นฉบับในเอดิเตอร์บนเว็บก่อน จากนั้นอนุญาตโปรเจกต์นั้นหรือเลือก asset รายชิ้นในหน้าขอความยินยอม MCP ไม่มีเครื่องมืออัปโหลดไฟล์ไบนารี ไฟล์ที่แนบในแชตไม่สามารถเข้าถึงได้โดยอัตโนมัติ
ลองพรอมป์ต์นี้:
สร้างโปรเจกต์สกรีนช็อต App Store ภาษาอังกฤษจากเทมเพลตที่มี โดยใช้ asset ที่อนุญาตของฉัน ใช้พาดหัวสั้นและเลย์เอาต์สะอาดตา เปิดเอดิเตอร์ด้วยเครื่องมือเบราว์เซอร์ที่มี ตรวจสกรีนช็อตและแก้ปัญหาด้านภาพ แล้วส่งลิงก์โปรเจกต์ให้ฉันเพื่อส่งออกบนเว็บ
AI ที่เชื่อมต่อทำหน้าที่ออกแบบและเขียนข้อความ MCP บันทึกโปรเจกต์ที่แก้ไขได้ get_project_preview คืนลิงก์เอดิเตอร์และคำแนะนำการตรวจทาน ไม่ใช่ไบต์ของภาพ เอเจนต์ที่มีเครื่องมือเบราว์เซอร์สามารถเปิดเอดิเตอร์ ตรวจสกรีนช็อต แก้ดีไซน์ผ่าน MCP แล้วรีโหลดอย่างปลอดภัยเพื่อดูเวอร์ชันล่าสุด การล็อกอินเบราว์เซอร์แยกจาก OAuth ของ MCP และควรเก็บการแก้ไขที่ยังไม่ได้บันทึกก่อนรีโหลด ผู้ใช้พรีวิวและส่งออกในเอดิเตอร์บนเว็บ
จัดการการเข้าถึง
เปิด Settings → Connected AI tools เพื่อเปลี่ยนโปรเจกต์/asset ที่เลือกหรือยกเลิกการเชื่อมต่อ เครื่องมือเข้าถึงโปรเจกต์ที่ไม่ได้เลือกไม่ได้ ถ้าเว็บไซต์และเครื่องมือ AI แก้ไขโปรเจกต์เดียวกันพร้อมกัน ให้อ่านเวอร์ชันล่าสุดก่อนบันทึกการเปลี่ยนแปลงที่ขัดแย้งกัน
การตรวจทานในเบราว์เซอร์ไม่ต้องใช้ Browserless หรือคิวเรนเดอร์เบื้องหลัง MCP นี้ให้เครื่องมือโปรเจกต์และคำแนะนำการตรวจทานเบราว์เซอร์ ไม่ใช่การเรนเดอร์บนคลาวด์ ถ้าไม่มีเครื่องมือเบราว์เซอร์/รูปภาพ เอเจนต์ควรคืนลิงก์เอดิเตอร์และแจ้งว่าการตรวจทานภาพยังค้างอยู่ แทนที่จะอ้างว่าตรวจสอบแล้ว
การแก้ปัญหา
| อาการ | วิธีแก้ |
|---|---|
invalid_redirect_uri: web clients require https redirect URIs | ใช้การเปลี่ยนเส้นทางแบบ loopback (http://127.0.0.1:<พอร์ต>/callback หรือ http://localhost:<พอร์ต>/callback) และปล่อยให้การลงทะเบียน loopback ใช้ native client ตามค่าเริ่มต้น |
401 พร้อม WWW-Authenticate: Bearer resource_metadata=… | การตอบสนอง discovery ปกติสำหรับการเรียกที่ไม่ผ่านการยืนยัน — ทำ OAuth flow ให้เสร็จในไคลเอนต์ของคุณ |
| การอนุญาตหมดอายุบ่อย | เชื่อมต่อใหม่จากไคลเอนต์ grant ที่ถูกยกเลิกหรือหมดอายุทำให้ refresh token ใช้ไม่ได้ |
| ไคลเอนต์ยกเลิกการล็อกอินเบราว์เซอร์ | เสร็จสิ้นการล็อกอินโดยเร็ว (บางไคลเอนต์ยกเลิกหลัง ~180 วินาที) แล้วเริ่มการเชื่อมต่อใหม่ |
คำตอบ 429 RATE_LIMITED | รอ Retry-After (60 วินาที) ก่อนลองใหม่ แผนเสียเงินได้ 120 call/นาที |
สำหรับหมายเหตุเฉพาะไคลเอนต์และเมทริกซ์การตรวจสอบปัจจุบัน ดูคู่มือแก้ปัญหาของชุดเชื่อมต่อ
เอกสาร AppScreenshots