Fetch-MCP ได้ก้าวขึ้นมาเป็นเครื่องมือที่ทรงพลังสำหรับการสกัดเนื้อหาจากเว็บ จุดประกายให้เกิดการถกเถียงในหมู่นักพัฒนาเกี่ยวกับความสามารถของมันและนัยสำคัญในวงกว้างของระบบนิเวศ Model Context Protocol (MCP) สร้างขึ้นบนเทคโนโลยีเบราว์เซอร์แบบ headless ของ Playwright เครื่องมือนี้มอบความสามารถในการดึงข้อมูลที่ซับซ้อนทั้งจากเว็บไซต์แบบสแตติกและไดนามิก พร้อมคุณสมบัติที่ดึงดูดความสนใจของชุมชนนักพัฒนา
ทำความเข้าใจ MCP และระบบนิเวศที่กำลังเติบโต
Model Context Protocol (MCP) แสดงถึงความก้าวหน้าที่สำคัญในวิธีที่โมเดล AI สื่อสารกับเครื่องมือภายนอกและแหล่งข้อมูล ผู้แสดงความคิดเห็นหลายคนในการสนทนาต้องการคำอธิบายเพิ่มเติมว่า MCP คืออะไรกันแน่ ซึ่งชี้ให้เห็นว่านักพัฒนาจำนวนมากยังคงอยู่ในขั้นตอนของการทำความรู้จักกับเทคโนโลยีนี้ MCP ช่วยให้โมเดล AI สามารถสื่อสารกับบริการภายนอกผ่านโปรโตคอลมาตรฐาน ทำให้สามารถเข้าถึงข้อมูลแบบเรียลไทม์และดำเนินการที่เกินขอบเขตของข้อมูลที่ใช้ในการฝึกฝนได้
คำอธิบายอย่างง่ายสามารถดูได้ที่นี่: https://www.youtube.com/watch?v=7j_NE6Pjv-E
ความสนใจที่เพิ่มขึ้นในการใช้งาน MCP อย่าง Fetch-MCP แสดงให้เห็นว่านักพัฒนากำลังสำรวจวิธีการเพิ่มขีดความสามารถของ AI ผ่านเครื่องมือและบริการภายนอกอย่างจริงจัง ผู้ใช้บางรายได้แบ่งปันทรัพยากรเพิ่มเติมสำหรับผู้ที่ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ MCP และการประยุกต์ใช้ที่เป็นไปได้
ความท้าทายด้านการยืนยันตัวตนในการสกัดเนื้อหาเว็บ
ประเด็นสำคัญที่ถูกยกขึ้นมาในการสนทนาของชุมชนคือข้อจำกัดด้านการยืนยันตัวตน ผู้ใช้ชี้ให้เห็นว่า Playwright ไม่ได้ใช้คุกกี้ของเบราว์เซอร์ที่มีอยู่โดยอัตโนมัติ ทำให้เกิดความท้าทายในการเข้าถึงเนื้อหาที่อยู่หลังกำแพงการเข้าสู่ระบบ ข้อจำกัดนี้มีความสำคัญโดยเฉพาะสำหรับผู้ที่ต้องการสกัดเนื้อหาจากแพลตฟอร์มเช่น Twitter ที่ต้องการการเข้าสู่ระบบเพื่อเข้าถึงเนื้อหาทั้งหมด
นักพัฒนาหลายคนได้เสนอวิธีแก้ปัญหาทางเทคนิค หนึ่งในนั้นแนะนำให้เชื่อมต่อ Playwright ผ่านโปรโตคอลการดีบักของ Chrome โดยเปิด Chrome ด้วยแฟล็ก --remote-debugging-port=9222
แล้วเชื่อมต่อผ่าน CDP ใน Playwright ผู้แสดงความคิดเห็นอีกรายกล่าวถึงการพัฒนาเครื่องมือชื่อ Herd ที่ให้ API คล้าย Puppeteer บนเบราว์เซอร์ของผู้ใช้เอง ช่วยให้สามารถใช้เซสชันได้อย่างราบรื่นสำหรับการทำงานอัตโนมัติและการสกัดข้อมูล ในขณะเดียวกันก็หลีกเลี่ยงการตรวจจับบอท
วิธีแก้ปัญหาเหล่านี้แสดงให้เห็นถึงแนวทางการทำงานร่วมกันของชุมชนในการแก้ไขความท้าทายทางเทคนิคและการขยายความสามารถของเครื่องมืออย่าง Fetch-MCP ให้เกินกว่าการออกแบบดั้งเดิม
วิธีแก้ปัญหาการยืนยันตัวตนที่กล่าวถึง:
-
การเชื่อมต่อผ่าน Chrome Debugging Protocol:
// เปิด Chrome พร้อมกับ flag --remote-debugging-port=9222 // เชื่อมต่อผ่าน CDP ใน Playwright const browser = await chromium.connectOverCDP('http://localhost:9222');
-
เครื่องมือ Herd (https://herd.garden):
- ให้บริการ API คล้าย puppeteer บนเบราว์เซอร์ของผู้ใช้เอง
- ใช้เซสชันเบราว์เซอร์ที่มีอยู่แล้วสำหรับการยืนยันตัวตน
- ช่วยหลีกเลี่ยงการตรวจจับบอทได้อีกด้วย
การใช้งานทางเลือกและคำถามเกี่ยวกับการบูรณาการ
การสนทนาเผยให้เห็นความสนใจในการใช้งานทางเลือกและความเป็นไปได้ในการบูรณาการ ผู้ใช้รายหนึ่งกล่าวถึง Pure.md ในฐานะทางเลือก REST API สำหรับ Fetch-MCP ซึ่งบ่งชี้ว่านักพัฒนากำลังสำรวจแนวทางที่แตกต่างกันในการสกัดเนื้อหาเว็บตามความต้องการเฉพาะและความชอบทางเทคนิค
คนอื่น ๆ ตั้งคำถามเกี่ยวกับวิธีที่ตัวแทน (agents) สามารถโต้ตอบกับ MCP ได้ โดยสงสัยว่าจะมาแทนที่หรือเสริมอินเทอร์เฟซเครื่องมือที่มีอยู่หรือไม่ คำตอบสั้น ๆ ระบุว่าการโต้ตอบสามารถเกิดขึ้นผ่านทั้งอินพุต/เอาต์พุตมาตรฐาน (stdio) หรือ Server-Sent Events (SSE) ซึ่งชี้ให้เห็นถึงความยืดหยุ่นของโปรโตคอล
การแลกเปลี่ยนเหล่านี้แสดงให้เห็นถึงจุดสนใจของชุมชนในรายละเอียดการนำไปใช้งานจริงและวิธีต่าง ๆ ที่ MCP สามารถบูรณาการเข้ากับขั้นตอนการทำงานและระบบที่มีอยู่
คุณสมบัติหลักของ Fetch-MCP:
-
fetch_url: การดึงเนื้อหาจากหน้าเว็บเดียว
- ใช้เบราว์เซอร์แบบ Playwright headless เพื่อประมวลผล JavaScript
- รองรับการดึงเนื้อหาหลักอย่างชาญฉลาด
- แปลงเนื้อหาเป็น Markdown โดยค่าเริ่มต้น
-
fetch_urls: การดึงข้อมูลจาก URL หลายรายการพร้อมกันแบบขนาน
- การดึงข้อมูลแบบขนานด้วยแท็บหลายแท็บเพื่อประสิทธิภาพที่ดีขึ้น
- ส่งคืนผลลัพธ์รวมโดยมีการแบ่งแยกที่ชัดเจนระหว่างเว็บเพจ
-
ตัวเลือกการกำหนดค่า:
- timeout: เวลาที่รอการโหลดหน้าเว็บ (ค่าเริ่มต้น: 30000 มิลลิวินาที)
- waitUntil: เกณฑ์การเสร็จสิ้นการนำทาง (ตัวเลือก: 'load', 'domcontentloaded', 'networkidle', 'commit')
- extractContent: การดึงเนื้อหาหลักอย่างชาญฉลาด (ค่าเริ่มต้น: true)
- maxLength: ขีดจำกัดความยาวเนื้อหาสูงสุด
- returnHtml: ส่งคืนเป็น HTML แทน Markdown (ค่าเริ่มต้น: false)
การประยุกต์ใช้ที่เป็นไปได้ในบริบทขององค์กร
ผู้แสดงความคิดเห็นบางรายได้สำรวจการประยุกต์ใช้ MCP และเครื่องมือสกัดเนื้อหาที่เป็นไปได้ในองค์กร มีความสนใจเป็นพิเศษว่าแนวทางนี้สามารถใช้จำกัด LLM ให้อยู่ในบริบทข้อมูลเฉพาะได้หรือไม่ เช่น การรับประกันว่าคำถามเกี่ยวกับ CRM บนเว็บไซต์ของ Microsoft จะให้ข้อมูลเฉพาะเกี่ยวกับ Dynamics เท่านั้น และไม่เกี่ยวกับคู่แข่งอย่าง Salesforce
การสนทนาในแนวทางนี้บ่งชี้ว่านักพัฒนาเห็นศักยภาพที่สำคัญของเครื่องมือที่ใช้งานร่วมกับ MCP ในการสร้างประสบการณ์ข้อมูลที่ปรับแต่งภายในสภาพแวดล้อมขององค์กร ความสามารถในการสกัด ประมวลผล และนำเสนอเนื้อหาเว็บผ่านอินเทอร์เฟซ AI อาจเปลี่ยนแปลงวิธีที่บริษัทโต้ตอบกับลูกค้าและจัดการการเข้าถึงข้อมูล
สรุปแล้ว Fetch-MCP เป็นเพียงหนึ่งในการใช้งานในระบบนิเวศ MCP ที่กำลังพัฒนาอย่างรวดเร็ว เมื่อนักพัฒนายังคงสำรวจความสามารถและข้อจำกัด เราน่าจะได้เห็นเครื่องมือที่ซับซ้อนมากขึ้นซึ่งแก้ไขความท้าทายในปัจจุบันเกี่ยวกับการยืนยันตัวตน การเข้าถึงเนื้อหา และการบูรณาการกับองค์กร การสนทนาของชุมชนเน้นย้ำทั้งอุปสรรคทางเทคนิคและวิธีแก้ปัญหาที่สร้างสรรค์ซึ่งเป็นลักษณะของสาขาที่กำลังพัฒนานี้
อ้างอิง: Fetch MCP