กลับไปบล็อก

Claude Code กับ MCP: แบ่งหน้าที่ จุดพลาดในการตั้งค่า และการดีบัก

เมื่อย้ายงานบนเบราว์เซอร์ให้ MCP รับผิดชอบ เวิร์กโฟลว์เปลี่ยนอย่างไรและโค้ดส่วนใดหายไป? บทความนี้สรุปการแบ่งหน้าที่ ปัญหาการตั้งค่าที่พบบ่อย 4 จุด และลำดับตรวจสอบเมื่อเกิดปัญหา

เมื่อใช้ Claude Code เขียนระบบอัตโนมัติบนเบราว์เซอร์ สิ่งที่น่ารำคาญก่อนมักเป็น glue code เช่น เปิดเบราว์เซอร์ ผูก proxy สร้าง environment และรอ handle งานเหล่านี้ไม่เกี่ยวกับ business logic โดยตรง แต่ต้องเขียนซ้ำอยู่เรื่อย ๆ เมื่อส่งงานบนเบราว์เซอร์ออกไปให้ MCP จัดการ โค้ดส่วนนี้แทบจะหายไป คุณเพียงอธิบายสิ่งที่ต้องทำ แล้วโมเดลจะตัดสินใจเองว่าจะเรียก tool ใด

แบ่งหน้าที่กันอย่างไร

Claude Code เป็น coding assistant บน command line ที่อ่านและเขียนไฟล์ รันคำสั่ง และทำงานกับ Git ได้ จุดแข็งอยู่ที่ฝั่ง code และ terminal ไม่ได้ถนัดการควบคุม browser โดยตรง และไม่ควรต้องรับหน้าที่นี้

MCP เข้ามาเติมช่องว่างตรงนี้ โดยแพ็กความสามารถของ browser automation environment เป็นชุด tools ที่โมเดลเรียกใช้ได้หลังลงทะเบียน เช่น แสดงรายการ environment สร้าง environment เปิดและปิด browser ถ่าย screenshot และอ่านเนื้อหาหน้าเว็บ ฝั่งหนึ่งดูแล code กับ logs อีกฝั่งดูแล browser กับ pages เมื่อขอบเขตชัด การหาต้นตอปัญหาก็ง่ายขึ้น

เวิร์กโฟลว์เปลี่ยนอย่างไร

การเปลี่ยนแปลงที่เห็นชัดที่สุดคือประกอบทั้ง chain ได้เร็วขึ้น เดิมหากเปลี่ยน flow เพียงครั้งเดียวก็ต้องแก้ script แต่ตอนนี้ลองด้วยภาษาธรรมชาติก่อนได้ เช่น แสดง environment ที่มีอยู่ ล็อกอินในสอง environment แล้วถ่าย screenshot จากนั้นสรุปผล เมื่อทำงานได้จริงค่อยตรึงเป็น script

ในโปรเจกต์จริงมักมีสาม layer ทำงานร่วมกัน MCP รับ natural-language instructions เหมาะกับการสำรวจและงานชั่วคราว Local HTTP API รับ bulk actions เช่น สร้าง environment หลายสิบรายการในครั้งเดียว มีความเสถียรและ retry ได้ง่าย ส่วน interaction ที่ละเอียด เช่น รอให้ state บางอย่างปรากฏหรือดึง structured data จากหน้าเว็บ ให้ CDP เชื่อมกับ browser โดยตรง ทั้งสามแบบไม่ขัดกัน แต่ดูแลคนละช่วงของ workflow

Claude Code 负责文件命令与日志,MCP 负责工具发现和调用,浏览器工具负责环境、页面与动作

การแยกจัดการ environment layer โดยเฉพาะก็เป็นสิ่งที่ชัดเจนขึ้นในช่วงนี้ หาก environment กระจายอยู่ตาม scripts ต่าง ๆ เมื่อจำนวนงานเพิ่ม การไล่หาปัญหาจะยากมาก ตอนนี้จึงใช้ environment-level tools สร้าง ตรวจดู และ reclaim เป็นชุดจากส่วนกลาง ส่วน script รับเพียง environment ID ไปใช้ ในกรณีหลายบัญชี โซลูชันแยก environment อย่าง PurpleMark รับหน้าที่ layer นี้ โดยแยก environment, session และ cache ของแต่ละบัญชี เพื่อให้ execution layer จัดตารางได้อย่างถูกต้อง

สี่จุดที่มักติดขัด

จุดแรกคือ tool ไม่ถูกตรวจพบ Client ส่วนใหญ่จะอ่าน configuration เพียงครั้งเดียวตอนเริ่มทำงาน ดังนั้นลงทะเบียนแล้วถ้าไม่ restart การตั้งค่ามักไม่เกิดผล การใส่ path ของ configuration file ผิดก็เกิดบ่อย เพราะแต่ละ tool เก็บไฟล์คนละตำแหน่ง วิธีเช็กแบบง่ายแต่ได้ผลคือเปิด service ด้วยตนเอง หากเปิดได้ ปัญหาน่าจะอยู่ที่ configuration; หากเปิดไม่ได้ ปัญหาน่าจะอยู่ที่ environment

จุดที่สองคือ authentication ล้มเหลว สาเหตุที่พบบ่อยที่สุดคือ copy credential แล้วติด space หรือ newline มาด้วย ควรตรวจตรงนี้ก่อน แล้วค่อยดูวิธีอ่าน environment variables เพราะระบบปฏิบัติการและวิธี launch ที่ต่างกันอาจให้ผลต่างกัน

จุดที่สามคือ local API ไม่ได้ทำงาน MCP services หลายแบบพึ่งพา client application ให้เปิดอยู่ หาก client ไม่ทำงาน service อาจเปิดไม่ขึ้นหรือ connection timeout ควรตรวจ port ด้วย เพราะ process เก่าที่ปิดไม่สมบูรณ์อาจยังครอบครอง port อยู่ หมายเลข port ตรวจได้จาก client settings

จุดที่สี่คือ concurrent tasks รบกวนกัน งานเดียวทำงานได้ดี แต่พอรันพร้อมกันหลายงานกลับเกิดข้อมูลปะปนหรือ login sessions ทับกัน สาเหตุส่วนใหญ่คือหลาย task ใช้ environment เดียวกัน ปัญหาแบบนี้แก้ด้วย debugging อย่างเดียวไม่ได้ ต้องมีข้อกำหนดว่า หนึ่ง task ต่อหนึ่ง environment และการสร้างกับ reclaim environment ให้ทำผ่าน batch API ไม่ใช่สร้างชั่วคราวภายใน script

นิสัยบางอย่างในการดีบัก

ระบุ waiting condition ให้ชัดใน instruction ประโยคว่า “คลิกปุ่มส่ง” มีข้อมูลไม่พอ แต่ “รอจนปุ่มส่งคลิกได้ แล้วค่อยคลิก” ให้ผลสำเร็จที่ดีกว่าอย่างเห็นได้ชัด โมเดลตัดสินใจว่าจะทำอะไรได้ แต่จังหวะที่ต้องรอควรถูกระบุไว้

เริ่มตรวจ chain ด้วย read-only tasks ก่อน การแสดงรายการ environment ถ่าย screenshot และอ่านข้อความบน page ไม่มี side effects แต่ตรวจ authentication, network และ service ได้ในครั้งเดียว หาก chain ยังไม่ผ่าน อย่าเพิ่งรีบรัน operations ที่มี side effects

อย่าใส่ credentials ไว้ใน code ให้ใช้ environment variables หรือ local configuration files และเพิ่มไฟล์เหล่านั้นไว้ใน ignore list; เมื่อทีมมีการเปลี่ยนแปลงให้ rotate credentials หาก local API ปิด validation ของตัวเอง อย่างน้อยต้องแน่ใจว่า listen เฉพาะบนเครื่อง local และไม่เปิดให้เข้าถึงจากภายนอก

ข้อสุดท้ายคือขอบเขต: MCP เชื่อมต่อ technical chain แต่ไม่ได้เปลี่ยนกฎของ platform ต่อให้ integration ลื่นไหลแค่ไหน งานนั้นก็ยังต้องปฏิบัติตาม terms of service ที่เกี่ยวข้องทั้งหมด