ฉันยังคงชอบ MCP มากกว่า Skills
(david.coffee)- MCP คือ อินเทอร์เฟซมาตรฐานที่อิงการทำ abstraction ของ API ซึ่งทำให้ LLM ขอให้ทำงานได้โดยไม่ต้องรู้โครงสร้างภายในของเครื่องมือ และรองรับการใช้งานระยะไกลกับการอัปเดตอัตโนมัติ
- ด้วยโครงสร้างแบบ Zero-Install, การยืนยันตัวตนด้วย OAuth, และ ความปลอดภัยแบบ sandboxing จึงช่วยลดภาระการติดตั้งและปัญหาด้านสิทธิ์ พร้อมมอบสภาพแวดล้อมเดียวกันบนทุกแพลตฟอร์ม
- ในทางกลับกัน Skills มีแรงเสียดทานสูงในสภาพแวดล้อมการใช้งานจริง เนื่องจากการพึ่งพาการติดตั้ง CLI ความซับซ้อนด้านการยืนยันตัวตนและการดีพลอย รวมถึงปัญหาความเข้ากันได้ข้ามแพลตฟอร์ม
- ควรแยก Skills เป็นชั้นความรู้ และ MCP เป็นชั้นการเชื่อมต่อ โดยเมื่อ LLM ต้องโต้ตอบกับระบบภายนอกควรใช้ MCP ส่วนการถ่ายทอดความรู้เชิงขั้นตอนควรใช้ Skills
- บริการ cloud tunneling อย่าง MCP Nest ทำให้เข้าถึงเซิร์ฟเวอร์ MCP บนเครื่องจากระยะไกลได้ จึงถูกมองว่าเป็นแกนหลักของการสร้าง สภาพแวดล้อม AI แบบบูรณาการที่เป็นมาตรฐาน
ข้อดีของ MCP
- Model Context Protocol(MCP) อิงกับ โครงสร้าง abstraction ของ API ที่ทำให้ LLM สามารถทำงานได้เพียงแค่ส่งคำขอ โดยไม่จำเป็นต้องเข้าใจกลไกการทำงานภายในของเครื่องมือ
- ตัวอย่าง: เมื่อ LLM โต้ตอบกับ DEVONthink แล้วเรียก
devonthink.do_x()เซิร์ฟเวอร์ MCP จะเป็นผู้จัดการทุกขั้นตอน
- ตัวอย่าง: เมื่อ LLM โต้ตอบกับ DEVONthink แล้วเรียก
- รองรับการใช้งานระยะไกลแบบ Zero-Install โดยไคลเอนต์เพียงระบุ URL ของเซิร์ฟเวอร์ MCP ก็ใช้งานได้ทันทีโดยไม่ต้องติดตั้งเพิ่มเติม
- รองรับ การอัปเดตอัตโนมัติ เมื่อเซิร์ฟเวอร์ MCP ระยะไกลถูกอัปเดตด้วยเครื่องมือหรือทรัพยากรใหม่ ไคลเอนต์ทั้งหมดก็จะใช้เวอร์ชันล่าสุดได้ทันที
- มีความปลอดภัยมากขึ้นด้วย การยืนยันตัวตนบนพื้นฐาน OAuth และผู้ใช้ไม่จำเป็นต้องจัดการโทเค็นด้วยตนเอง
- มี ความสามารถในการพกพา สูง สามารถเข้าถึงผ่านเซิร์ฟเวอร์ MCP เดียวกันได้จากทุกสภาพแวดล้อม เช่น Mac, มือถือ และเว็บ
- ใช้ โครงสร้างแบบ sandboxing เพื่อจำกัดสิทธิ์ในการรันโดยตรงบนสภาพแวดล้อมโลคัล และเปิดเผยเฉพาะอินเทอร์เฟซที่ควบคุมได้
- ผ่านฟีเจอร์ การค้นหาอัจฉริยะและการอัปเดตอัตโนมัติ จะโหลดเฉพาะเครื่องมือที่จำเป็น และแม้เป็นการติดตั้งแบบโลคัลก็ยังอัปเดตอัตโนมัติขณะรันได้
ข้อจำกัดและแรงเสียดทานของ Skills
- แม้ Skills จะมีประโยชน์ในการสอนความรู้หรือวิธีใช้บางอย่างให้ LLM แต่เมื่อถึงเวลาปฏิบัติงานจริง การพึ่งพา CLI กลับกลายเป็นปัญหา
- Skill ส่วนใหญ่ต้องติดตั้ง CLI แยกต่างหาก แต่ ChatGPT, Perplexity และ Claude เวอร์ชันเว็บนั้นไม่สามารถรัน CLI ได้
- ส่งผลให้เกิดปัญหาดังต่อไปนี้
- ความซับซ้อนในการดีพลอย: ต้องดีพลอยและจัดการ CLI ผ่าน binary, NPM,
uvเป็นต้น - ปัญหาการจัดการความลับ: ต้องเก็บโทเค็นยืนยันตัวตนแบบ plain text ในไฟล์
.envหรือเมื่อเซสชันถูกรีเซ็ต การยืนยันตัวตนก็หายไป - ระบบนิเวศที่ขาดตอน: วิธีติดตั้งและอัปเดต Skill แตกต่างกันไปในแต่ละแพลตฟอร์ม จนเกิดปัญหาความเข้ากันได้และข้อผิดพลาดในการ parse YAML
- สิ้นเปลือง context: แม้ LLM จะต้องการเพียงการเรียกใช้ฟังก์ชันเดียว ก็ยังต้องโหลด
SKILL.mdทั้งไฟล์
- ความซับซ้อนในการดีพลอย: ต้องดีพลอยและจัดการ CLI ผ่าน binary, NPM,
- Skill ที่มีคำแนะนำว่า “ให้ติดตั้ง CLI ก่อน” เพิ่มความซับซ้อนที่ไม่จำเป็น และการแทนที่ด้วย MCP ระยะไกล จะมีประสิทธิภาพมากกว่า
เกณฑ์ในการเลือกใช้เครื่องมือที่เหมาะสม
- ช่วงเวลาที่ควรใช้ MCP: ใช้เป็นอินเทอร์เฟซมาตรฐานเมื่อ LLM ต้องเชื่อมต่อกับระบบภายนอก เช่น เว็บไซต์ บริการ หรือแอปพลิเคชัน
- ตัวอย่าง: Google Calendar ควรจัดการการยืนยันตัวตนและการทำงานผ่าน MCP ระยะไกลที่อิง OAuth และไม่ควรบังคับให้ติดตั้ง CLI
- เครื่องมืออย่าง Chrome, Hopper, Xcode และ Notion ก็ควรมี MCP endpoint ในตัว สำหรับควบคุมฟังก์ชันของแต่ละตัว
- ช่วงเวลาที่ควรใช้ Skills: ควรมุ่งเน้นที่การถ่ายทอดความรู้ล้วน ๆ และการให้บริบท
- ใช้สอนวิธีใช้เครื่องมือที่ติดตั้งไว้แล้ว เช่น
curl,git,gh,gcloud - ใช้ทำมาตรฐานคำศัพท์ภายในองค์กร เวิร์กโฟลว์ และสไตล์การเขียน
- ใช้แบ่งปัน ความรู้เชิงขั้นตอน เช่น การประมวลผล PDF หรือการจัดการความลับ (เช่น วิธีใช้
fnox)
- ใช้สอนวิธีใช้เครื่องมือที่ติดตั้งไว้แล้ว เช่น
- ควรแยก Skills เป็น ชั้นความรู้ และ MCP เป็น ชั้นการเชื่อมต่อ
คอนเน็กเตอร์และคู่มือ
- เพื่อแยกบทบาทของ Skills และ MCP ให้ชัดเจน มีข้อเสนอให้เรียก Skills ว่า คู่มือสำหรับ LLM(LLM_MANUAL.md) และเรียก MCP ว่า คอนเน็กเตอร์(Connector)
- ตัวอย่างที่ใช้งานจริง
- mcp-server-devonthink: เซิร์ฟเวอร์ MCP แบบโลคัลที่ทำให้ LLM ควบคุม DEVONthink ได้โดยตรง
- microfn: ให้บริการ MCP ระยะไกลที่
mcp.microfn.dev - Kikuyo: ให้บริการ MCP ระยะไกลที่
mcp.kikuyo.dev - MCP Nest: บริการที่ tunnel เซิร์ฟเวอร์ MCP แบบโลคัลขึ้นสู่คลาวด์เพื่อให้เข้าถึงจากระยะไกลได้ (
mcp.mcpnest.dev/mcp)
- บางโปรเจกต์มี Skill สำหรับ CLI ให้ด้วย แต่ Skill ที่อธิบายวิธีใช้ MCP มีประโยชน์มากกว่า
- Skill ทำหน้าที่เป็น เลเยอร์ความรู้ ที่อธิบายความสามารถของ MCP ความสัมพันธ์ของเครื่องมือ และช่วงเวลาที่ควรใช้งาน
- MCP รับผิดชอบการเชื่อมต่อและการทำงานจริง
- การผสานกันแบบนี้ช่วยให้ LLM ใช้ MCP ได้อย่างมีประสิทธิภาพโดยไม่ต้องลองผิดลองถูกซ้ำ ๆ
การใช้ MCP และ Skill ควบคู่กัน
- รูปแบบที่ไม่เป็นธรรมชาติ เช่น ข้อผิดพลาดของรูปแบบวันที่หรือข้อจำกัดด้านการค้นหา ที่พบระหว่างใช้ MCP สามารถสรุปเป็น Skill เพื่อนำกลับมาใช้ซ้ำได้
- Skill ที่สร้างขึ้นแบบนี้จะทำหน้าที่เป็น ชีตสรุป ของ MCP และช่วยให้ LLM ทำงานได้แม่นยำโดยไม่สิ้นเปลืองโทเค็นโดยไม่จำเป็น
- รักษาคำสั่งพฤติกรรม AI รายโปรเจกต์ผ่านโฟลเดอร์
.claude/skillsและจัดการขั้นตอนที่ใช้บ่อยในรูปแบบ dotfiles - อนาคตของการบูรณาการ AI ขึ้นอยู่กับอินเทอร์เฟซที่เป็นมาตรฐาน (MCP) และควรหลีกเลี่ยง แนวทางที่แตกเป็นเสี่ยง ๆ บนฐาน CLI
- คาดหวังให้บริการหลักอย่าง Skyscanner, Booking.com, Trip.com และ Agoda.com มี MCP อย่างเป็นทางการ
แนะนำ MCP Nest
- MCP Nest คือบริการที่ทำให้เซิร์ฟเวอร์ MCP ที่ใช้ได้เฉพาะบนเครื่องโลคัล (เช่น Fastmail, Gmail) สามารถเข้าถึงจากระยะไกลได้ผ่าน cloud tunneling
- ใช้งานร่วมกันได้เหมือนกันในไคลเอนต์ที่รองรับ MCP เช่น Claude, ChatGPT และ Perplexity
- สามารถคงไว้ซึ่ง สภาพแวดล้อม MCP เดียวกันบนทุกอุปกรณ์ โดยไม่ต้องเปิดเผยเครื่องโลคัลโดยตรง
6 ความคิดเห็น
ก็แค่สองอย่างนี้มันคนละเรื่องกันตั้งแต่แรก แล้วทำไมถึงยังมีการพูดแบบนี้กันอยู่เรื่อย ๆ นะ
เพราะตอนท้ายบทความต้องโปรโมต MCP Nest น่ะครับ.. ฮ่าๆๆ ดูเหมือนว่าข้ออ้างแนวเปรียบเทียบแบบนี้จะยิ่งได้รับแรงหนุนมากขึ้นเรื่อยๆ
Skills ก็เหมือนวิชาดาบ ส่วน MCP ก็คือดาบ.. การใช้งานต่างกันและทั้งคู่ก็จำเป็น
Skills กับ MCP มีบทบาทที่ต่างกันอยู่แล้ว แต่ดูเหมือนว่าบทความแบบนี้จะยิ่งทำให้เกิดความสับสนอยู่เรื่อย ๆ
ทั้งที่วงการ AI ก็วุ่นวายพออยู่แล้วกับพวกนักเทศน์ลวงโลกที่ออกอาละวาด
ความคิดเห็นจาก Hacker News
สิ่งที่อยากเน้นคือควรโฟกัสที่ การออกแบบเครื่องมือ ที่จำเป็นต่อการให้ LLM ทำงานได้อย่างเหมาะสม มากกว่าที่จะยึดติดกับ ความชอบ ส่วนบุคคล
MCP กลับเพิ่มแรงเสียดทานเสียมากกว่า ตัวอย่างเช่น ถ้าต้องทำงานกับระบบฝังตัว ก็ควรทำให ้LLM ใช้งานอินเทอร์เฟซมอนิเตอร์ริ่งแบบ CLI ที่สามารถดีบัก รีเซ็ต และรันอีมูเลเตอร์ได้โดยตรง แล้วค่อยเอกสารวิธีใช้ไว้ในไฟล์ skill
ถ้าเป็นงานง่าย ๆ MCP ก็ไม่จำเป็น เช่น เรื่องอย่าง git หรือการคำนวณค่าใช้จ่าย AWS นั้น LLM จัดการได้ดีอยู่แล้ว มีแค่ระบบที่ซับซ้อนเท่านั้นที่คุ้มจะทำเครื่องมือและเอกสารขึ้นมาเอง
ถ้าเป็นงานครั้งเดียว CLI หรือ API ก็พอ แต่ถ้าต้องการการเข้าถึงแบบต่อเนื่อง MCP server จะมีประโยชน์
MCP ที่จัดวางมาดีจะบอกวิธีใช้งานให้เอเจนต์ได้โดยไม่เปลืองพรอมป์ต์ การพยายามเลียนแบบการเข้าถึงแบบต่อเนื่องด้วยไฟล์ skill นั้นไม่มีประสิทธิภาพ MCP คือวิธีที่มีประสิทธิผลที่สุดในการรวมเครื่องมือภายนอกเข้ากับเซสชันของเอเจนต์
.mdหรือ skill ก็ควรมีมาตรฐานที่ใช้ลูปทบทวนตัวเองแบบอัตโนมัติเพื่อจัดข้อมูลไปไว้ในตำแหน่งที่เหมาะสมที่สุดฟีเจอร์รีแฟกเตอร์ของ JetBrains ก็ถูกแทนด้วยสคริปต์ ทำให้ความเร็วของเซสชันลดจาก 5 นาทีเหลือ 10 วินาที
ตอนนี้ยังไม่ใช้ MCP เลยแม้แต่นิดเดียว ชุด REST + Swagger + codegen + Claude + skill ก็เพียงพอแล้ว
สุดท้ายข้อถกเถียงนี้ก็คือปัญหาแบบ นักพัฒนาเดี่ยว vs การทำงานร่วมกันระดับองค์กร
ถ้าทำคนเดียวและต้องการลูปฟีดแบ็กที่เร็ว CLI จะดีกว่า แต่ถ้าต้องการการควบคุมและความสม่ำเสมอในระดับองค์กร MCP จะเหมาะกว่า
ตอนนี้ MCP กินคอนเท็กซ์ค่อนข้างมาก แต่มีแผนจะปรับปรุงด้วยการเปิดเผยข้อมูลแบบค่อยเป็นค่อยไป
ฉันต้องการ เอเจนต์ที่ใช้เครื่องมือ CLI เดิมได้ตรง ๆ มากกว่า API
ในเมื่อตัวเองใช้ CLI บนเครื่องอยู่แล้ว ก็ไม่มีเหตุผลต้องเพิ่ม MCP เข้าไป และก็ไม่ต้องการโมเดลระยะไกลด้วย
ถ้าจำเป็นต้องเรียก API ใช้ skill ก็พอ
MCP กับ Skill ไม่ใช่ความสัมพันธ์แบบผลรวมเป็นศูนย์
MCP รับผิดชอบอินเทอร์เฟซมาตรฐานในชั้นโครงสร้างพื้นฐาน ส่วน Skill ดูแล บริบทของพฤติกรรม ที่เฉพาะกับแต่ละโปรเจกต์
เมื่อใช้ทั้งคู่ร่วมกันจะได้ทั้งความเสถียรและความยืดหยุ่น
การพูดคุยส่วนใหญ่มีศูนย์กลางอยู่ที่ คนที่รัน coding agent บนเครื่องโลคัล
ในสภาพแวดล้อมแบบนั้น Skill จะสะดวกกว่า แต่ผู้ใช้ทั่วไปมักใช้ระบบคลาวด์อย่าง ChatGPT
ในกรณีนี้ MCP จึงเป็นตัวเลือกเริ่มต้น จุดแข็งคือการยืนยันตัวตนและการเข้าถึงระยะไกล
ต้องเปิดเซิร์ฟเวอร์เพิ่ม และสำหรับ LLM กลับเป็นภาระมากขึ้น Skill เข้ารหัสเอกสาร API ในรูปแบบที่เป็นมิตรกับ LLM จึงง่ายกว่า
ฉันชอบ Skill มากกว่า เพราะสามารถ นำเครื่องมือ CLI ที่มนุษย์ใช้อยู่แล้วกลับมาใช้ซ้ำได้ตรง ๆ
Skill เป็นเอกสารที่มนุษย์อ่านและเขียนได้ ทำให้ LLM และมนุษย์ใช้เครื่องมือชุดเดียวกันร่วมกัน
ในทางกลับกัน MCP ต้องสร้าง API ใหม่ที่มีไว้ให้ LLM โดยเฉพาะ และยังต้องดูแลเอกสารแยกต่างหาก
Skill จะถูกโหลดเฉพาะตอนจำเป็น จึงช่วย รักษาคอนเท็กซ์ให้สะอาด
คนที่ยืนกรานว่า “มีแค่ Skill” มักเป็นคนไม่สายเทคนิค ส่วนแนว “มีแค่ CLI” มักพบในนักพัฒนารายบุคคล
MCP เหมาะกับ สภาพแวดล้อมระดับเอนเทอร์ไพรส์ เพราะทำให้การยืนยันตัวตนและอินเทอร์เฟซเป็นมาตรฐาน
acliมีเสถียรภาพมากกว่าMCP อัปเดตและดีพลอยได้ง่าย จึง เข้าถึงได้ง่ายแม้กับคนที่ไม่ใช่สายเทคนิค
MCP ท้ายที่สุดก็เป็นแค่การจัดโครงสร้างบางส่วนของ API เท่านั้น
MCP ก็เป็นเพียงอีกหนึ่งโปรโตคอล RPC เท่านั้น และ ปัญหาเรื่องการยืนยันตัวตนก็ยังไม่ถูกแก้
ฉันมองว่า MCP จำเป็นเพราะ ความไร้เหตุผลของมนุษย์
หลายองค์กรทุกวันนี้ยังไม่เปิด API หรือ CLI ให้เลย MCP จึงช่วยเชื่อม ช่องว่างทางดิจิทัล นี้
ระบบการรายงานและโครงสร้างการเมืองภายในองค์กรขัดขวางการทำอัตโนมัติอยู่ และ MCP สามารถช่วยอ้อมข้อจำกัดเหล่านี้ได้
Skill มีปัญหา context bloat เพราะต้องใส่เอกสารทั้งหมดลงในคอนเท็กซ์
MCP ก็คล้ายกัน แต่สามารถโหลดแบบค่อยเป็นค่อยไปได้ผ่านฟังก์ชันค้นหาเครื่องมือ
ปัญหาที่ใหญ่กว่าคือเอาต์พุตของ MCP ถูกส่งเข้าไปยังคอนเท็กซ์ของเอเจนต์โดยตรง ถ้าเรียกบริการ MCP ผ่าน CLI ก็จะสามารถกรองหรือแคชได้
Skill เหมาะกับการเก็บ ความรู้เชิงสัญชาตญาณ ส่วน MCP เหมาะกับ ระบบอัตโนมัติที่ทำซ้ำได้
ถ้า LLM ต้องเขียนสคริปต์เดิมซ้ำหลายครั้ง การตรึงมันไว้เป็นเครื่องมือจะมีประสิทธิภาพกว่า
กล่าวคือหัวใจสำคัญคือ พรีโปรเซสให้มากที่สุดเท่าที่ทำได้ด้วยสคริปต์
ถ้าเป็นสคริปต์เล็ก ๆ ก็แค่ใส่มันไว้ในคอนเท็กซ์แล้วบอกว่า “ให้ใช้สิ่งนี้” ก็เพียงพอ