MCP และพร็อกซีมือถือ: วิธีเชื่อมต่อพร็อกซีเข้ากับเครื่องมือ AI อย่างละเอียด
บทความ
- บทนำ
- การเตรียมการเบื้องต้น
- Mcp คืออะไร (model context protocol)
- ทำไมเครื่องมือ ai ต้องการพร็อกซีมือถือ
- ขั้นตอนที่ 1: วางแผนกลยุทธ์และเข้าถึงพร็อกซีมือถือ
- ขั้นตอนที่ 2: ติดตั้ง mcp-client และเตรียมสภาพแวดล้อม
- เชื่อมต่อพร็อกซีมือถือกับ mcp-client
- ตัวอย่างจาก mcp-server mobileproxy.space
- ขั้นตอนที่ 4: ปรับแต่งสำหรับลูกค้าและเซิร์ฟเวอร์
- ขั้นตอนที่ 5: การวินิจฉัยและการบันทึก
- ตรวจสอบผลลัพธ์
- ข้อผิดพลาดทั่วไป
- ฟีเจอร์เพิ่มเติม
- คำถามที่พบบ่อย (faq)
- บทสรุป
บทนำ
ในคู่มือปฏิบัตินี้ คุณจะได้เรียนรู้วิธีการตั้งค่าการเชื่อมต่อพร็อกซีมือถือเข้ากับลูกค้า MCP ทีละขั้นตอน เพื่อให้เครื่องมือ AI ของคุณทำงานได้อย่างเสถียรและคาดเดาได้กับแหล่งข้อมูลภายนอกและ API เราจะเริ่มจากคำอธิบายสั้น ๆ ว่าทำไมจึงต้องมีพร็อกซีมือถือและ MCP (Model Context Protocol) ทำงานอย่างไร หลังจากนั้นเราจะเตรียมสภาพแวดล้อม เชื่อมต่อพร็อกซี ศึกษาตัวอย่างจริงจาก MCP-server mobileproxy.space ตรวจสอบ ปัญหาทั่วไป และปิดท้ายด้วยฟีเจอร์ที่ขยายออกไป สรุปคือ คุณจะมีการกำหนดค่าที่ใช้งานได้ซึ่งคุณสามารถนำไปใช้ในทีมงานหรือในสภาพแวดล้อมการผลิตได้
คู่มือนี้ถูกออกแบบมาสำหรับนักพัฒนา นักวิเคราะห์ข้อมูล และวิศวกรด้านการรวมระบบ ที่ต้องการให้เกิดพฤติกรรมเครือข่ายที่สามารถทำซ้ำได้ของเครื่องมือ AI และลดความไม่เสถียรเมื่อเข้าถึงเว็บไซต์และ API ภายนอก แม้ว่าคุณจะเป็นผู้ใช้ MCP ครั้งแรก คุณก็สามารถทำทุกขั้นตอนได้ ผู้ใช้ขั้นสูงจะพบตัวอย่างโค้ดที่พร้อมใช้งานและคำแนะนำในการปรับปรุงประสิทธิภาพ
ก่อนเริ่มต้น เป็นการดีที่จะเข้าใจข้อมูลพื้นฐาน: วิธีเปิดเทอร์มินัล, การติดตั้ง Node.js, แก้ไขไฟล์ JSON ของการกำหนดค่า, และอ่านบันทึกข้อมูล ไม่จำเป็นต้องมีความรู้เครือข่ายลึกซึ้ง เราจะอธิบายสิ่งที่จำเป็นตลอดทั้งกระบวนการ
ระยะเวลาในการดำเนินการ: 60 ถึง 90 นาที ขึ้นอยู่กับว่าคุณมีเครื่องมือที่ติดตั้งอยู่แล้วหรือไม่ และมีข้อมูลประจำตัวพร็อกซีมือถือที่พร้อมใช้งานหรือไม่ หากคุณตั้งค่าลูกค้า MCP เป็นครั้งแรก โปรดเตรียมเวลา 90 นาทีเพื่อตรวจสอบและวินิจฉัยอย่างละเอียด
คำแนะนำ: หากคุณนำการกำหนดค่านี้ไปใช้ในสภาพแวดล้อมของทีม ให้ตกลงกันล่วงหน้าเกี่ยวกับสถานที่เก็บการกำหนดค่าและข้อมูลลับเพื่อไม่ให้รหัสผ่านพร็อกซีถูกกระจายไปในไฟล์ส่วนบุคคลของนักพัฒนา
การตรวจสอบ: ที่ส่วน "ตรวจสอบผลลัพธ์" คุณจะได้รับรายการตรวจสอบเพื่อยืนยันว่าพร็อกซีถูกใช้งานจริง ๆ และเครื่องมือสามารถเข้าถึงอินเทอร์เน็ตได้ผ่านเครือข่ายมือถือ
การเตรียมการเบื้องต้น
เพื่อให้การตั้งค่าเป็นไปอย่างถูกต้องและรวดเร็ว ให้รวบรวมเครื่องมือและการเข้าถึงทั้งหมดล่วงหน้า สิ่งนี้จะช่วยประหยัดเวลาและช่วยหลีกเลี่ยงข้อผิดพลาดในระหว่างกระบวนการ
เครื่องมือ โปรแกรม และการเข้าถึงที่จำเป็น
- ระบบปฏิบัติการ: Windows 10/11, macOS 12+ หรือ Linux ที่มีสิทธิ์ติดตั้งโปรแกรม
- Node.js LTS 20+ (รวมถึง npm) เพื่อรัน MCP-server บน JavaScript/TypeScript
- ตัวแก้ไขโค้ด: VS Code, JetBrains หรือโปรแกรมอื่น ๆ ที่คุณเลือก
- ข้อมูลประจำตัวพร็อกซีมือถือ: โฮสต์ พอร์ต ชื่อผู้ใช้ รหัสผ่าน และหากเป็นไปได้ ให้รวม URL การหมุน IP และพารามิเตอร์สำหรับ "sticky" sessions
- MCP-client: เช่น Claude Desktop หรือ Cline (ส่วนขยาย VS Code) ที่รองรับการเชื่อมต่อกับ MCP-server ภายนอก
- เครื่องมือวินิจฉัยเครือข่ายพื้นฐาน: curl หรือโปรแกรมสำรองอื่น ๆ เพื่อทดสอบการเข้าถึงอินเทอร์เน็ตผ่านพร็อกซี
ข้อกำหนดของระบบ
- การเชื่อมต่ออินเทอร์เน็ตที่เสถียรในเครื่องทำงานของคุณ
- การเข้าถึงพอร์ตของพร็อกซีมือถือ (มักจะเป็น 3128, 8000, 8080 หรือพอร์ตอื่นที่ผู้ให้บริการระบุ)
- ดิสก์: อย่างน้อย 200 MB สำหรับ Node.js packages และ logs
สิ่งที่ต้องดาวน์โหลด ติดตั้ง และตั้งค่า
- ติดตั้ง Node.js LTS 20+ จากดิสทริบิวชันอย่างเป็นทางการของระบบปฏิบัติการของคุณ
- เตรียมโฟลเดอร์สำหรับโปรเจกต์ เช่น mcp-mobileproxy ซึ่งจะเก็บโค้ดและการกำหนดค่าต่าง ๆ
- ตรวจสอบว่าลูกค้า MCP ของคุณติดตั้งแล้ว: เปิด Claude Desktop หรือเปิด VS Code ที่ได้ติดตั้ง Cline เรียบร้อยแล้ว
- เตรียมข้อมูลประจำตัวพร็อกซีมือถือ (host, port, user, password) รวมถึง URL หรือคำสั่งเพื่อหมุน IP และพารามิเตอร์สำหรับ "sticky" sessions หากมีในแพ็กเกจของคุณ
การสำรองข้อมูล
หากคุณแก้ไขการกำหนดค่าของลูกค้า MCP (เช่น ไฟล์ JSON) ให้ทำการสำรองข้อมูลของไฟล์ต้นฉบับก่อนที่คุณจะแก้ไข คัดลอกไฟล์ที่ส่งข้อความไว้ข้างเคียงโดยเพิ่มซุยฟิกซ์ .bak หากมีปัญหา คุณจะสามารถกลับไปยังการตั้งค่าดั้งเดิมได้อย่างรวดเร็ว
คำเตือน: อย่าเก็บรหัสผ่านพร็อกซีในที่เก็บข้อมูลสาธารณะ ใช้โปรแกรมจัดการข้อมูลลับหรือการตั้งค่าสิ่งแวดล้อมเมื่อทำงานร่วมกับทีมเพื่อหลีกเลี่ยงการรั่วไหลของข้อมูลประจำตัว
การตรวจสอบ: ตรวจสอบว่า Node.js ได้รับการติดตั้งแล้ว (คำสั่ง node -v แสดงเวอร์ชัน) และคุณทราบว่าไฟล์การกำหนดค่าของลูกค้า MCP ของคุณอยู่ที่ไหน ข้อมูลประจำตัวของพร็อกซีมือถือของคุณอยู่ใกล้ ๆ และการเข้าถึงอินเทอร์เน็ตนั้นเสถียร
MCP คืออะไร (Model Context Protocol)
MCP เป็นโปรโตคอลเปิดที่ได้มาตรฐานซึ่งใช้ในการติดต่อสื่อสารระหว่าง AI-clients (เช่น แอปพลิเคชันเดสก์ท็อปและปลั๊กอิน IDE) กับฟีเจอร์ภายนอกที่มีอยู่ใน MCP-servers แนวความคิดนั้นง่าย: ลูกค้าจะแสดง "เครื่องมือ" และ "ทรัพยากร" ในอินเตอร์เฟซ ขณะที่เซิร์ฟเวอร์จะดำเนินการตามตรรกะของพวกเขา ด้วยเหตุนี้ เซิร์ฟเวอร์เดียวกันสามารถเชื่อมต่อกับลูกค้าหลายรายได้ และเครื่องมือจะแสดงและทำงานได้เหมือนกัน
แนวคิดหลัก ๆ ในภาษาที่เข้าใจง่าย
- MCP-client — แอปพลิเคชันที่คุณสื่อสารกับโมเดลและเลือกเครื่องมือที่มีอยู่ให้กับมัน ตัวอย่างเช่น: Claude Desktop, Cline
- MCP-server — โปรแกรมภายนอกที่ดำเนินการ "เครื่องมือ" (tools) "ทรัพยากร" (resources) "คำแนะนำ" (prompts) เซิร์ฟเวอร์จะให้คำบรรยายเกี่ยวกับฟีเจอร์และจัดการการเรียกเข้าส่งจากลูกค้า
- เครื่องมือ — การกระทำที่โมเดลสามารถทำได้ เช่น การร้องขอไปยังเว็บ API การอ่านไฟล์ การแยกวิเคราะห์ HTML การร้องขอ HTTP ผ่านพร็อกซี ฯลฯ
- การขนส่ง — วิธีการเชื่อมต่อระหว่างลูกค้าและเซิร์ฟเวอร์ (โดยทั่วไปคือ stdio หรือการเชื่อมต่อเว็บ) สำหรับคุณ สิ่งนี้จะเป็นเรื่องโปร่งใส: คุณระบุคำสั่งในการเริ่มเซิร์ฟเวอร์และพารามิเตอร์
หลักการทำงานพื้นฐาน
ลูกค้าจะสร้างเซสชันกับ MCP-server และรับคำบรรยายเชิงพรรณนาเกี่ยวกับฟีเจอร์: เครื่องมือใดบ้างที่มีอยู่ พวกเขาจะได้รับพารามิเตอร์อะไรบ้าง และกลับมาที่อะไร เมื่อคุณร้องขอให้โมเดลทำการกระทำ ลูกค้าจะเรียกใช้เครื่องมือที่เหมาะสมจากเซิร์ฟเวอร์ เซิร์ฟเวอร์จะจัดการงาน "สกปรก" ทั้งหมด — เดินทางไปยังอินเทอร์เน็ต ตอบสนองต่อฐานข้อมูล แยกวิเคราะห์ไฟล์ — และส่งผลลัพธ์กลับไปยังลูกค้า ในกรณีนี้ เราต้องให้แน่ใจว่าการเข้าถึงเครือข่ายของเซิร์ฟเวอร์ผ่านพร็อกซีมือถือ ไม่ใช่โดยตรง ดังนั้นคำขอทั้งหมดจากเครื่องมือ AI จะถูกกำหนดเส้นทางอย่างคาดการณ์ได้: IP ที่เสถียร การหมุน เซสชันที่ "ติด" ภูมิภาค และอื่น ๆ
สิ่งสำคัญที่ต้องเข้าใจก่อนเริ่ม
- คุณจะเปิดใช้งานพร็อกซีได้ที่ไหน: ทั่วไปผ่านตัวแปรสิ่งแวดล้อมหรือลงในโค้ดของ MCP-server ตัวเลือกทั้งสองถูกต้องแต่มีข้อดีข้อเสียต่างกัน
- คุณจะยืนยันได้อย่างไรว่าคำขอเกิดขึ้นผ่านพร็อกซีอย่างแท้จริง: เช่น การร้องขอ IP ภายนอกของคุณ บันทึกจากผู้ให้บริการพร็อกซี หรือรายการใน headers
- คุณต้องมีกลยุทธ์การหมุน IP แบบไหน: ปุ่มหมุนด้วยตนเอง อัตโนมัติโดยหลังจาก N คำขอ หรือเซสชัน "ติด" คุณระยะเวลาของงาน
คำแนะนำ: วางกลยุทธ์การหมุนให้ชัดเจนก่อนเริ่ม รายการหมุนที่บ่อยไม่ใช่เรื่องดีเสมอไป: เว็บไซต์หลายแห่งชอบเซสชัน "ติด" ที่เสถียรในช่วงหนึ่งของโครงการรวบรวมข้อมูลหรือการทดสอบ API
การตรวจสอบ: คุณควรเข้าใจว่า MCP คือ "สะพาน" ระหว่างลูกค้าและเครื่องมือภายนอก ในขณะที่พร็อกซีมือถือคือเส้นทางที่ควบคุมการร้องขอเครือข่ายจากเครื่องมือเหล่านี้ เป้าหมายคือการทำให้การเรียกใช้ทุกขั้นตอนเครือข่ายเกิดขึ้นผ่านผู้ให้บริการพร็อกซีที่กำหนด
ทำไมเครื่องมือ AI ต้องการพร็อกซีมือถือ
พร็อกซีมือถือให้ข้อได้เปรียบสำคัญเมื่อทำงานของเครื่องมือ AI กับแหล่งข้อมูลและ API ภายนอก:
- ความเสถียรในการเข้าถึง: บริการบางอย่างไวต่อประเภทของ IP และการทำงานจาก IP นั้น ๆ IP มือถือมักมีวิธีการกรองที่แตกต่างกัน مماทำให้สามารถคาดการณ์ได้มากขึ้น
- การหมุนที่ยืดหยุ่น: คุณสามารถหมุน IP ตามปุ่ม เวลาหรือจำนวนคำขอ เพื่อหลีกเลี่ยงการถูกบล็อกที่มากเกินไปที่อยู่เดียว
- เซสชัน: เซสชัน "ติด" จะช่วยให้คุณรักษา IP เดิมในช่วง เวลาของการทำงานของตัวแทน (เช่น ประมาณ 10–30 นาที) เพื่อไม่ให้การติดต่อสื่อสารขาดตอน
- ภูมิภาค: การเลือกภูมิศาสตร์การเชื่อมต่อ หากรวมอยู่ในแพ็กเกจ จะช่วยทดสอบพฤติกรรมของบริการในประเทศต่าง ๆ
ในบริบทของ MCP หมายความว่าเครื่องมือใด ๆ ที่ถูกดำเนินการจากเซิร์ฟเวอร์ จะใช้งานเส้นทางเครือข่ายตามที่คุณกำหนด ซึ่งให้ความสามารถในการทำซ้ำและลดความยุ่งเหยิงขณะปรับแต่ง
คำเตือน: ใช้พร็อกซีมือถืออย่างเคร่งครัดตามกฎหมายและนโยบายของบริการที่ต้องการ การตั้งค่าพร็อกซีในคู่มือนี้มีขึ้นเพื่อให้เกิดความเสถียรและความสามารถในการทำซ้ำของการทำงานของเครื่องมือ AI ไม่ใช่เพื่อการหลีกเลี่ยงข้อจำกัด
คำแนะนำ: หากสถาณการณ์ของคุณคือการรวมตัวแทนกับแหล่งที่มา หลายแห่ง แยกแต่ละรายการออกไปตามช่วงการทำงาน: เครื่องมือบางตัว – ให้ "ติด" ควบคู่ไปกับการใช้ IP ที่หมุนเร็ว หากมีการทำซ้ำและข้อมูลที่น่าสงสัยจะลดลง
การตรวจสอบ: คุณควรระบุสถานการณ์ของคุณ: ทำไมคุณถึงต้องการพร็อกซีมือถือ (ความเสถียร เซสชัน ภูมิภาค), คุณจะวัดความสำเร็จได้อย่างไร (การเชื่อมต่อที่ผิดพลาดน้อยลง IP เสถียรใน logs การไม่ถูกบล็อกที่ไม่คาดคิด)
ขั้นตอนที่ 1: วางแผนกลยุทธ์และเข้าถึงพร็อกซีมือถือ
เป้าหมายของขั้นตอน
กำหนดพารามิเตอร์การใช้งานพร็อกซีมือถือ (ประเภทเซสชัน การหมุน ภูมิภาค) และรับข้อมูลประจำตัวเพื่อให้แน่ใจว่าใช้งานได้เพื่อการรวมกับลูกค้า MCP และเซิร์ฟเวอร์ในอนาคต
คู่มือทีละขั้นตอน
- กำหนดว่าคุณจะมีเซสชัน "sticky" หรือไม่ หากตัวแทนต้องการรักษาบริบทตลอดระยะเวลางาน ให้เลือกการทำงาน "sticky" ในระยะเวลา 10–30 นาที
- เลือกกลยุทธ์การหมุน: ด้วยตนเองตามปุ่ม/URL ตามกำหนดการหรือจำนวนคำขอ สำหรับเริ่มต้น การหมุนด้วยตัวเองถือว่ายอมรับได้
- รับพารามิเตอร์การเชื่อมต่อจากผู้ให้บริการ: host, port, user, password ในกรณีจำเป็นให้รวม URL การหมุน IP และแม่แบบชื่อผู้ใช้สำหรับเซสชัน "sticky"
- ตรวจสอบว่าต้องการรายการ IP ที่อนุญาต (whitelist) หรือไม่ หากผู้ให้บริการต้องการการผูกติด IP ที่ส่งออกของคุณ ให้เพิ่มล่วงหน้าในบัญชีผู้ใช้งานที่ผู้ให้บริการ
- ดำเนินการทดสอบ curl คำสั่ง: curl -x http://user:password@host:port https://api.ipify.org ต้องส่งกลับ IP ภายนอกของคุณผ่านพร็อกซี
- บันทึกข้อมูลประจำตัวในตัวแปรสิ่งแวดล้อม: เช่น PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PASS จะปลอดภัยกว่าการเก็บไว้ในโค้ด
คำเตือน: อย่าส่งข้อมูลพร็อกซีกับการช่องทางที่เปิดอยู่ หากต้องการส่งให้เพื่อนร่วมงาน ใช้วิธีการเข้ารหัสเพื่อแลกเปลี่ยนและการหมุนรหัสผ่านตามระเบียบ
คำแนะนำ: หากผู้ให้บริการสนับสนุนการสร้างชื่อผู้ใช้ที่มีข้อจำกัด (เวลาใช้งาน ภูมิศาสตร์) ให้สร้างข้อมูลประจำตัวที่แยกออกสำหรับการพัฒนา การทดสอบ และการผลิต เพื่อป้องกันไมให้เกิดการตกรายการในแพ็กเกจ
ผลลัพธ์ที่คาดหวัง
คุณมี host, port, username และ password สำหรับพร็อกซีมือถือ ในกรณีเลือก URL การหมุนและคำแนะนำเรื่องเซสชัน “sticky” การทดสอบ curl ยืนยันว่าการเชื่อมต่ออยู่ผ่านพร็อกซี
ปัญหาและวิธีแก้ไขที่เป็นไปได้
- ข้อผิดพลาด 407 Proxy Authentication Required → ชื่อผู้ใช้/รหัสผ่านไม่ถูกต้อง ตรวจสอบข้อมูลประจำตัว ตรวจสอบว่าอักขระพิเศษถูกเข้ารหัสอย่างถูกต้องหรือไม่เมื่อต้องการใช้งาน URL
- Timeout → พอร์ตถูกบล็อกโดยไฟร์วอลล์ อนุญาตให้มีการเชื่อมต่อออกไปที่พอร์ตของผู้ให้บริการ หรือสอบถามเกี่ยวกับพอร์ตทางเลือก
- IP ภายนอกไม่เปลี่ยน → การเข้าถึงผ่านพร็อกซีนั้นหลีกเลี่ยงไปทางอื่น ตรวจสอบไวยากรณ์ของคีย์ -x และการมีอยู่ของการอนุญาต
การตรวจสอบ: คำสั่ง curl ส่งกลับ IP ภายนอกที่แตกต่างจาก IP ปกติของคุณและตรงกับที่แสดงในบัญชีผู้ใช้ของผู้ให้บริการพร็อกซี
ขั้นตอนที่ 2: ติดตั้ง MCP-client และเตรียมสภาพแวดล้อม
เป้าหมายของขั้นตอน
เตรียมโครงสร้างพื้นฐาน: ติดตั้งหรือตรวจสอบ MCP-client (เช่น Claude Desktop), สร้างโปรเจกต์ MCP-server และตั้งค่าข้อมูลที่ต้องการเพื่อทำงานผ่านพร็อกซี
คู่มือทีละขั้นตอน
- ตรวจสอบการมีอยู่ของ Node.js: ในเทอร์มินัล รัน node -v หากเวอร์ชันต่ำกว่า 20 ให้ติดตั้ง LTS ล่าสุด
- สร้างโฟลเดอร์โปรเจกต์: mkdir mcp-mobileproxy && cd mcp-mobileproxy
- เริ่มต้นโปรเจกต์: npm init -y ซึ่งจะสร้าง package.json ขึ้น
- ติดตั้ง MCP dependencies: npm install @modelcontextprotocol/sdk axios https-proxy-agent
- สร้างไฟล์ index.js ซึ่งจะใส่โค้ด MCP-server ตัวอย่าง
- เปิด MCP-client สำหรับ Claude Desktop ให้ค้นหาไฟล์การตั้งค่าคอนฟิก ส่วนใหญ่จะอยู่ในโปรไฟล์ผู้ใช้ภายในโฟลเดอร์ข้อมูลแอปพลิเคชัน บน macOS จะอยู่ในโฟลเดอร์ Library/Application Support ทำการสำรองข้อมูลของไฟล์การตั้งค่าก่อนที่จะแก้ไข
- หากใช้ Cline (VS Code) ให้เปิดการตั้งค่าของส่วนขยายและค้นหาลิสต์เพื่อเพิ่ม MCP-server ส่วนใหญ่จะเป็นตัวเลือกที่มีการกำหนดค่า "mcp servers" เตรียมเพิ่มสคริปต์เซิร์ฟเวอร์ในโปรเจกต์ของคุณ
คำแนะนำ: เก็บเส้นทางไปยังโปรเจกต์ MCP-server โดยปราศจากช่องว่างและอักขระพิเศษที่ไม่ได้ใช้ ซึ่งจะช่วยให้การตั้งค่าทำได้สะดวกและลดความเสี่ยงของข้อผิดพลาดที่มาจากลูกน้ำ
ผลลัพธ์ที่คาดหวัง
โฟลเดอร์โปรเจกต์ MCP-server พร้อมติดตั้ง dependencies คุณทราบว่าคุณจะเพิ่มเซิร์ฟเวอร์ใหม่ได้อย่างไรใน MCP-client ของคุณและไฟล์การกำหนดค่าอยู่ที่ไหน
ปัญหาและวิธีแก้ไขที่เป็นไปได้
- npm ไม่พบ → Node.js ติดตั้งโดยไม่มี npm หรือไม่ได้ถูกเพิ่มไปยัง PATH ติดตั้ง Node.js ใหม่พร้อมเปิดใช้งาน npm และรีสตาร์ทเทอร์มินัล
- ไม่มีสิทธิ์เข้าถึงโฟลเดอร์ → เปิดเทอร์มินัลด้วยสิทธิ์ผู้ใช้งานที่มีสิทธิ์เขียนหรือใช้โฟลเดอร์ที่อยู่ในโปรไฟล์ของคุณ
- ไม่พบไฟล์การกำหนดค่าของลูกค้า → เปิดดูเอกสารสำหรับ MCP-client ของคุณหรือดูเอกสารที่หน้า mcp.html เพื่อตรวจสอบเส้นทาง
การตรวจสอบ: รัน npm list ในโฟลเดอร์โปรเจกต์และตรวจสอบว่ามีแพ็คเกจ @modelcontextprotocol/sdk, axios และ https-proxy-agent ติดตั้งอยู่ ไฟล์การกำหนดค่าของลูกค้า MCP ถูกค้นพบและบันทึกสำรองสภาพเริ่มต้นไว้แล้ว
เชื่อมต่อพร็อกซีมือถือกับ MCP-client
เป้าหมายของขั้นตอน
ทำให้การเรียกระบบเครือข่ายทั้งหมดจากเครื่องมือที่ทำงานโดย MCP-server ผ่านพร็อกซีมือถือ เราจะดูสองวิธี: ตัวแปรสิ่งแวดล้อมทั่วโลกและพร็อกซีที่รวมอยู่ในโค้ด
คู่มือทีละขั้นตอน (ผ่านตัวแปรสิ่งแวดล้อมของลูกค้า)
- เปิดการกำหนดค่าของ MCP-client และค้นหาส่วนการเพิ่มเซิร์ฟเวอร์ของผู้ใช้ (เช่น mcpServers)
- เพิ่มเซิร์ฟเวอร์ใหม่โดยระบุคำสั่งการรัน Node.js และเส้นทางไปยัง index.js ของคุณ โครงสร้างตัวอย่าง: ชื่อเซิร์ฟเวอร์ ฟิลด์ command: node, args: ["เส้นทาง/ไป/index.js"].
- ในส่วน env ระบุฟิลด์: HTTP_PROXY และ HTTPS_PROXY โดยมีค่าเป็น http://user:password@host:port หากคุณใช้พร็อกซีที่ไม่มีการอนุญาตให้ใช้ IP จะระบุเพียง host:port เท่านั้น
- หากจำเป็นให้เพิ่ม NO_PROXY สำหรับที่อยู่ภายในที่จะไม่ไปผ่านพร็อกซี (เช่น localhost, 127.0.0.1)
- เพิ่มตัวแปรสำหรับการหมุนถ้าคุณต้องการเรียกใช้งานจากเซิร์ฟเวอร์: เช่น MOBILEPROXY_ROTATE_URL และ MOBILEPROXY_API_KEY ถ้าผู้ให้บริการต้องการคีย์
- บันทึกการกำหนดค่าและรีสตาร์ท MCP-client เพื่อให้มันอ่านรายการใหม่และรันเซิร์ฟเวอร์ของคุณด้วยตัวแปรสิ่งแวดล้อมที่กำหนดไว้
คู่มือทีละขั้นตอน (ผ่านพร็อกซีในระดับโค้ด)
- เปิดไฟล์ index.js และเชื่อมต่อ https-proxy-agent หรือการตั้งค่าพร็อกซีของ axios
- สร้างตัวแทนด้วยข้อมูลจาก process.env: host, port, user, password
- ส่งตัวแทนไปยังแต่ละ HTTP request ภายในเครื่องมือของ MCP-server
- เพื่อความยืดหยุ่น ให้เพิ่มความสามารถในการเลือก: หากไม่มีตัวแปรสิ่งแวดล้อม ใช้การเชื่อมต่อโดยตรง และหากมี ให้ใช้พร็อกซี
คำแนะนำ: เริ่มด้วยการใช้ตัวแปรสิ่งแวดล้อมในระดับลูกค้า: ทำให้ง่ายและรวดเร็วในการสั่งเริ่มต้น ครั้งต่อไป ทำในระดับโค้ดเมื่อจำเป็น
ผลลัพธ์ที่คาดหวัง
MCP-client จะเรียกใช้เซิร์ฟเวอร์ของคุณพร้อมตัวแปรสิ่งแวดล้อมที่กำหนด และการเรียก HTTP ทั้งหมดจากเครื่องมือบนเซิร์ฟเวอร์จะอยู่ผ่านพร็อกซีมือถือ
ปัญหาและวิธีแก้ไขที่เป็นไปได้
- เซิร์ฟเวอร์ไม่ทำงาน → เส้นทางไปยังสคริปต์ใน args ผิดหรือไม่มีสิทธิ์ในการเริ่มต้น ตรวจสอบเส้นทาง ใช้เส้นทางที่สมบูรณ์หากจำเป็น
- พร็อกซีถูกมองข้าม → ลูกค้าไม่ได้ส่ง env ให้เซิร์ฟเวอร์ ให้แน่ใจว่าคุณกำหนด env ในการกำหนดค่าของ MCP-server ที่เฉพาะเจาะจงไม่ใช่ทั่วยก
- การตรวจสอบในพร็อกซีไม่ผ่าน → ตรวจสอบว่าชื่อผู้ใช้/รหัสผ่านไม่มีอักขระ @ และ : ที่ไม่ได้ทำการเข้ารหัส หากจำเป็นให้กำหนดเป็นตัวแปรแยกต่างหาก (PROXY_USER, PROXY_PASS) และรวบรวม URI ในโค้ด
การตรวจสอบ: เรียกใช้เครื่องมือที่ทำ HTTP request และเปรียบเทียบ IP ภายนอกก่อนและหลังการเปิดใช้งานพร็อกซี มันควรจะตรงกับ IP ของพร็อกซีมือถือของคุณ
ตัวอย่างจาก MCP-server mobileproxy.space
เป้าหมายของขั้นตอน
สร้าง MCP-server ขั้นพื้นฐานซึ่ง: 1) สามารถดึง IP ภายนอกผ่านพร็อกซีมือถือ 2) สามารถเรียกใช้การหมุน IP 3) ทำการส่ง HTTP request ผ่านพร็อกซีมือถือ เราจะใช้แพ็กเกจ @modelcontextprotocol/sdk และ axios โดยใช้ MCP-server mobileproxy.space เป็นตัวอย่างในการบูรณาการกับผู้ให้บริการพร็อกซีมือถือ
โค้ด MCP-server (index.js)
ด้านล่างคือโค้ดตัวอย่างโดยใช้ JavaScript ซึ่งได้ลงทะเบียนเครื่องมือสามตัว: get_external_ip, rotate_ip และ fetch_url เครื่องมือใช้พร็อกซีและพารามิเตอร์จะถูกดึงมาจากตัวแปรสิ่งแวดล้อม ใช้ URL ตราสารภายนอกมาตรฐานเป็นจุดสิ้นสุด ipify และการหมุนผ่าน MOBILEPROXY_ROTATE_URL
ตัวอย่างโค้ด:
บันทึกเป็น index.js
const { Server } = require('@modelcontextprotocol/sdk'); const axios = require('axios'); const { HttpsProxyAgent } = require('https-proxy-agent'); function buildProxyAgent() { const host = process.env.PROXY_HOST; const port = process.env.PROXY_PORT; const user = process.env.PROXY_USER; const pass = process.env.PROXY_PASS; if (!host || !port) return null; let auth = ''; if (user && pass) {auth = encodeURIComponent(user) + ':' + encodeURIComponent(pass) + '@'; } const proxyUrl = 'http://' + auth + host + ':' + port; return new HttpsProxyAgent(proxyUrl); } async function axiosViaProxy(url, opts = {}) { const agent = buildProxyAgent(); const cfg = { url, method: opts.method || 'GET', headers: opts.headers || {}, data: opts.data, timeout: 20000 }; if (agent) {cfg.httpsAgent = agent;cfg.httpAgent = agent;cfg.proxy = false; } return axios(cfg); } const server = new Server({ name: 'mcp-mobileproxy-space', version: '1.0.0' }); server.tool('get_external_ip', { description: 'ส่งคืน IP ภายนอกผ่านพร็อกซีมือถือ', inputSchema: { type: 'object', properties: {}, additionalProperties: false } }, async () => { const res = await axiosViaProxy('https://api.ipify.org?format=json'); return { content: [{ type: 'text', text: JSON.stringify(res.data) }] }; }); server.tool('rotate_ip', { description: 'ทำการหมุน IP กับผู้ให้บริการพร็อกซีมือถือ', inputSchema: { type: 'object', properties: {}, additionalProperties: false } }, async () => { const rotateUrl = process.env.MOBILEPROXY_ROTATE_URL; if (!rotateUrl) {return { content: [{ type: 'text', text: 'MOBILEPROXY_ROTATE_URL ไม่ได้กำหนดไว้' }] }; } const res = await axiosViaProxy(rotateUrl); return { content: [{ type: 'text', text: 'การหมุนถูกขอ: ' + res.status }] }; }); server.tool('fetch_url', { description: 'HTTP request ผ่านพร็อกซีมือถือ', inputSchema: { type: 'object', properties: { url: { type: 'string' }, method: { type: 'string', enum: ['GET','POST','PUT','DELETE'], default: 'GET' }, headers: { type: 'object', additionalProperties: { type: 'string' } }, body: { type: 'string' } }, required: ['url'], additionalProperties: false } }, async (input) => { const cfg = { method: input.method || 'GET', headers: input.headers || {}, data: input.body }; const res = await axiosViaProxy(input.url, cfg); const out = { status: res.status, headers: res.headers, snippet: typeof res.data === 'string' ? res.data.slice(0, 500) : JSON.stringify(res.data).slice(0, 500) }; return { content: [{ type: 'text', text: JSON.stringify(out) }] }; }); server.start();
การตั้งค่าตัวแปรสิ่งแวดล้อม
- ในระบบการกำหนดค่าของ MCP-client ใกล้กับรายการเซิร์ฟเวอร์ของคุณ ให้เพิ่ม env: PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PASS
- เพิ่ม MOBILEPROXY_ROTATE_URL ซึ่งผู้ให้บริการมือถือจัดให้ เช่น URL ที่มีการป้องกันซึ่งเมื่อเรียก GET จะทำให้ IP เปลี่ยน
- รีสตาร์ท MCP-client เพื่อให้ใช้งานตัวแปรใหม่นี้
คำแนะนำ: หากผู้ให้บริการ mobileproxy.space สนับสนุน "sticky" sessions ผ่านการปรับชื่อผู้ใช้หรือพารามิเตอร์ของการร้องขอ สร้างตัวแปรแยกต่างหาก เช่น PROXY_SESSION หรือ PROXY_ZONE และจากนั้นสร้าง PROXY_USER แบบไดนามิก
ตรวจสอบการทำงานของเครื่องมือ
- ในอินเทอร์เฟซของ MCP-client ค้นหารายการเครื่องมือเซิร์ฟเวอร์ mcp-mobileproxy-space: get_external_ip, rotate_ip, fetch_url
- เรียกใช้ get_external_ip และตรวจสอบว่ามี JSON ส่งคืน IP ภายนอกของคุณผ่านพร็อกซี
- เรียกใช้ rotate_ip และรอการยืนยันสถานะ 200 หรือรหัสความสำเร็จอื่น ๆ หากผู้ให้บริการตอบแบบนั้น
- เรียกใช้ fetch_url พร้อมพารามิเตอร์ url: https://example.org และตรวจสอบว่ามีพ่วง HTML และรหัส 200 ในการตอบสนอง
การตรวจสอบ: หลังจากเรียกใช้ get_external_ip IP ภายนอกที่คุณเห็นในคำตอบต้องตรงกับสิ่งที่แสดงในบัญชีผู้ใช้ mobileproxy.space ของคุณ และหลังจากเรียกใช้ rotate_ip IP ต้องเปลี่ยนไปเป็น IP ใหม่ (ตามเงื่อนไขของคุณและผู้ให้บริการ)
ปัญหาและวิธีแก้ไขที่เป็นไปได้
- เครื่องมือไม่แสดงผล → เซิร์ฟเวอร์ไม่เริ่มต้น ตรวจสอบบันทึกของลูกค้าและเส้นทางไปยัง index.js รันเซิร์ฟเวอร์แยกกัน: node index.js เพื่อดูข้อผิดพลาดที่เป็นไปได้
- rotate_ip คืนข้อผิดพลาด → ตรวจสอบค่า MOBILEPROXY_ROTATE_URL และการเข้าถึงจากเครือข่ายของคุณ ตรวจสอบว่า URL ถูกต้องและไม่ต้องการการตอบสนองเพิ่มเติม
- fetch_url คืนค่าที่ไม่คาดคิด → เว็บไซต์บางแห่งขึ้นกับ User-Agent และ Accept-Language ส่งพวกเขาใน headers เพื่อเลียนแบบเบราว์เซอร์ทั่วไป
คำแนะนำ: เพื่อความเสถียรของคำขอ โปรดแนบ headers ได้แก่ User-Agent, Accept, Accept-Language สิ่งนี้มีประโยชน์โดยเฉพาะในการแยกวิเคราะห์ HTML และทำงานกับ API ที่คาดหวังผู้ใช้ที่มีลักษณะเฉพาะ
ขั้นตอนที่ 4: ปรับแต่งสำหรับลูกค้าและเซิร์ฟเวอร์
เป้าหมายของขั้นตอน
ปรับแต่งและเสถียรภาพการกำหนดค่า: การบันทึก การตั้งค่า Timeout การสร้างเซสชัน "ติด" การเริ่มเซิร์ฟเวอร์ใหม่เมื่อทำงานผิดพลาด จำกัดความถี่ของการร้องขอและกลยุทธ์การหมุนที่ถูกต้อง
คำแนะนำทีละขั้นตอน
- เพิ่มการบันทึกอย่างละเอียด ใน index.js ห่อหุ้มการเรียก axiosViaProxy ใน try/catch เพื่อบันทึกรหัสผล ตอบ เวลาที่ใช้ และข้อผิดพลาดพร้อมการประทับเวล
- ตั้งค่า Timeout สำหรับทรัพยากรที่ไม่เสถียร ปรับลดเวลา timeout และเปิดใช้งานการร้องขอใหม่ด้วยการแช่เย็น (backoff) หากจำเป็น
- เปิดใช้งานเซสชัน "ติด" สำหรับงานที่ต้องการความต่อเนื่อง เก็บ session_id ใน env หรือในสถานะของเซิร์ฟเวอร์และสร้าง PROXY_USER แบบไดนามิก
- จำกัดความถี่ในการเรียก fetch_url: เพิ่มตัวนับคำขอและเวลารอฟื้นฟูระหว่างคำขอไปยังโดเมนเดียวกัน สิ่งนี้จะช่วยลดความเสี่ยงของการถูกบล็อกชั่วคราวจากทรัพยากรเป้าหมาย
- ตั้งค่าให้เซิร์ฟเวอร์เริ่มต้นใหม่ หากเซิร์ฟเวอร์หยุดทำงานเนื่องจากข้อผิดพลาดด้านเครือข่าย ให้ใช้ตัวจัดการกระบวนการ (เช่น node พร้อมการเสนอตัวเลือก - หรือเครื่องมือทางเลือกที่ใช้ได้ในสภาพแวดล้อมของคุณ) เพื่อให้เซิร์ฟเวอร์เริ่มขึ้นโดยอัตโนมัติ
- สะท้อนการหมุนของคุณในโค้ด: เช่น หลังจาก N คำขอที่ประสบความสำเร็จหรือทุก M นาที หากเงื่อนไขของผู้ให้บริการได้รับอนุญาต
คำแนะนำ: เพิ่มคำสั่งเครื่องมือ server_status ซึ่งจะส่งคืนสถานะปัจจุบันของคุณ: session_id ที่ใช้งานอยู่ ตัวนับคำขอ เวลาจนกว่าจะถึงการหมุนครั้งถัดไป สิ่งนี้จะช่วยให้คุณดูแลการสนับสนุนและการควบคุมได้ง่ายขึ้น
ผลลัพธ์ที่คาดหวัง
เซิร์ฟเวอร์ MCP ของคุณมีความทนทานต่อการหยุดทำงานแบบสุ่ม ใช้งานเซสชัน "ติด" และการหมุนที่ถูกต้อง บันทึกเหตุการณ์ที่สำคัญไว้และปรับความถี่ของการร้องขอได้โดยไม่ต้องแก้ไขโค้ดของลูกค้า
ปัญหาและวิธีแก้ไขที่เป็นไปได้
- ข้อบันทึกเกินกำหนด → ตั้งค่าระดับการบันทึก (info, warn, error) และสลับผ่านตัวแปรสิ่งแวดล้อม LOG_LEVEL
- การประมวลผลช้า → ตรวจสอบว่าคุณไม่ได้ตั้งค่าความล่าช้าที่รุนแรงเกินไปหรือหมุน IP บ่อยเกินไป
- เชื่อมต่อขาดหายไปบ่อยครั้ง → เปิดใช้งาน keep-alive บนตัวแทนและลดจำนวนการเชื่อมต่อโดยรวมไปยังโฮสต์หนึ่ง
การตรวจสอบ: จากบันทึก คุณจะเห็นว่าคำขอทำงานอย่างต่อเนื่อง ซึ่งในกรณีที่มีการหมุนใหม่ IP ใหม่ควรได้รับการยืนยันอย่างรวดเร็วจากการเรียก get_external_ip ข้อผิดพลาดจะได้รับการจัดการโดยไม่ให้เซิร์ฟเวอร์หยุดทำงาน
ขั้นตอนที่ 5: การวินิจฉัยและการบันทึก
เป้าหมายของขั้นตอน
เรียนรู้วิธีการตรวจพบและแก้ไขปัญหาเครือข่ายอย่างรวดเร็ว: การอนุญาตไปยังพร็อกซี, เวลาเกินไป, headers ที่ไม่ถูกต้อง, ข้อผิดพลาดในการกำหนดเส้นทางและความขัดแย้งระหว่างตัวแปรสิ่งแวดล้อม
คู่มือทีละขั้นตอน
- ตรวจสอบตัวแปรสิ่งแวดล้อมก่อนที่จะเริ่ม ให้แสดง process.env.PROXY_HOST และข้อมูลสำคัญอื่น ๆ ในบันทึกเมื่อเริ่มต้นเซิร์ฟเวอร์
- ทำคำขอทดสอบจากโค้ด (เช่น ไปที่ ipify) และแสดงวัตถุการตอบสนองทั้งหมด: รหัส, headers, ไบต์แรกของเนื้อหา
- บันทึกเมตริกขั้นต่ำ: เวลา DNS, เวลาเชื่อมต่อ TLS, เวลาาตอบที่รวมทั้งหมด สิ่งนี้จะช่วยให้เข้าใจว่า "จุดแคบ" อยู่ที่ไหน
- ตรวจสอบ headers ที่คุณส่ง: User-Agent, Accept, Content-Type ให้มั่นใจว่าพวกเขาตรงกับคาดการณ์ของ API หรือเว็บไซต์ที่มุ่งหวัง
- ดำเนินการ test กับ curl เพื่อเปรียบเทียบ หาก curl ทำงานได้อย่างเสถียรผ่านพร็อกซีเดียวกันแต่เซิร์ฟเวอร์ทำงานไม่ได้ ให้มองหาปัญหาในโค้ด (ตัวแทน เวลาออก proxy=false สำหรับ axios)
คำแนะนำ: เก็บบันทึกที่ซ่อนไว้สำหรับการตรวจสอบการอนุมัติ: แทนที่ส่วนนามและรหัสผ่านด้วยเครื่องหมายดาวเมื่อพิมพ์บันทึก สิ่งนี้จะช่วยให้การวิเคราะห์เหตุการณ์ทำได้เร็วขึ้นโดยไม่เสี่ยงต่อการรั่วไหลของความลับ
ผลลัพธ์ที่คาดหวัง
คุณสามารถแยกปัญหาได้อย่างรวดเร็ว: แยกความแตกต่างระหว่างการหมดเวลาเครือข่ายจากความผิดพลาดการอนุมัติหรือ headers ที่ผิดพลาด และสามารถมองเห็นได้ว่าคำขอต้องใช้เวลานานแค่ไหนหรือถูกปฏิเสธทำไม
ปัญหาและวิธีแก้ไขที่เป็นไปได้
- HTTP 403 หรือ 429 → คำขอมากเกินไปหรือมีลายเซ็นของลูกค้าที่ยุ่งเหยิง ลดความถี่ลง กำหนด headers และทดลองใช้เซสชัน "sticky" ตามภารกิจ
- ข้อผิดพลาดการเชื่อมต่อเป็นครั้งคราว → ลองเพิ่มเวลา timeout และเปิดใช้งานการร้องขอใหม่ที่มีระยะเวลาเพิ่มขึ้น ตรวจสอบความเสถียรของมือถือจากผู้ให้บริการ
- ข้อมูลไม่ตรงกัน → เปรียบเทียบคำตอบระหว่างการเข้าถึงผ่านหรือไม่ผ่านพร็อกซีในสภาพทดสอบ ตรวจสอบรหัสและตรวจสอบให้แน่ใจว่า headers ได้รับการตั้งค่าอย่างถูกต้อง
การตรวจสอบ: จากผลการทดสอบ คุณมีแผนที่ปัญหา: คุณรู้ว่าทุกช่วงของคำขอใช้เวลานานเพียงใดและสามารถมองออกได้อย่างชัดเจนในการปรับแต่งการกำหนดค่าต่อไป
ตรวจสอบผลลัพธ์
รายการตรวจสอบ
- เครื่องมือ MCP-server แสดงบนลูกค้า
- การเรียก get_external_ip ส่งคืน IP ของพร็อกซีมือถือ
- การหมุน IP เสร็จสิ้นและยืนยันการเปลี่ยน IP
- การร้องขอ fetch_url สำเร็จจากหลายโดเมน
- บันทึกดูเข้าใจ: แสดงรหัสผล ตลอดจนระยะเวลาและข้อความวินิจฉัยที่สำคัญ
วิธีทดสอบ
- ดำเนินการสามการเรียก get_external_ip ติดต่อกันและบันทึก IP จึงเรียกใช้ rotate_ip จากนั้นทำ get_external_ip ใหม่เพื่อยืนยันว่า IP เปลี่ยนไปตามกฏที่ผู้ให้บริการกำหนด
- ทำ fetch_url สองโดเมนที่แตกต่างและเปรียบเทียบรหัสและ headers เพื่อให้แน่ใจว่าไม่มีความผิดพลาดโดยระบบ
- เรียกใช้งานเซสชัน "sticky" (ถ้ามี) และตรวจสอบว่ามีการอนุรักษ์ IP ที่ไม่เปลี่ยนแปลงในช่วงระยะเวลาเซสชัน
ตัวชี้วัดการสำเร็จ
- อัตราการขอประสบความสำเร็จที่เสถียร (200 OK) ที่เข้าถึงทรัพยากรที่ต้องการ
- การหมุนคาดการณ์และไม่มี "กระโดด" ของ IP ที่ไม่ต้องการในช่วงเซสชัน "ติด"
- การหมดเวลาเพียงเล็กน้อยเมื่อมีการตั้งค่าการหมดเวลาที่ถูกต้องและตัวตรวจสอบการคืนค่า
คำแนะนำ: นำการทดสอบอัตโนมัติ "จุดเช็ค" ไปใช้ใน CI ของคุณ: เรียกใช้ get_external_ip และ fetch_url หนึ่งครั้งก่อนการปรับใช้ สิ่งนี้จะช่วยให้คุณตรวจพบความผิดปกติในทันทีจากผู้ให้บริการหรือการกำหนดค่า
ข้อผิดพลาดทั่วไป
ปัญหา → สาเหตุ → วิธีแก้ไข
- พร็อกซีไม่ถูกนำไปใช้ → ตัวแปรสิ่งแวดล้อมไม่ได้ถูกส่งไปยังกระบวนการเซิร์ฟเวอร์ → ระบุ env ในระดับการกำหนดค่า MCP-server และรีบูทลูกค้า
- การอนุญาตไปยังพร็อกซีล้มเหลว → อักขระพิเศษในชื่อผู้ใช้/รหัสผ่านทำให้ URI ล้ม → กำหนดให้ชื่อผู้ใช้/รหัสผ่านเป็นตัวแปรแยกไว้และรวมกันใน proxyUrl ด้วย encodeURIComponent
- HTTP 429 Too Many Requests → การหมุนบ่อยเกินไปหรือ RPS สูงเกินไป → จำกัดความถี่ของคำขอ ใช้คิว และนำเซสชัน "ติด" ไปใช้สำหรับการดำเนินการที่ต่อเนื่อง
- 500 ที่ไม่ได้รับที่เซิร์ฟเวอร์ → ทำซ้ำอย่างเข้มงวดล้มเหลวเซิร์ฟเวอร์ที่ไม่เสถียร → เพิ่มความเลี้ยงใน backoff และลดจำนวนการทำซ้ำ
- ไม่มีเครื่องมือในแผง → MCP-server หยุดทำงานขณะเริ่มต้น → เรียกใช้เซิร์ฟเวอร์แคบเพื่อดูสแต็คเทรสและแก้ไขข้อผิดพลาดของไวยากรณ์แล้วเชื่อมต่ออีกครั้ง
- IP ไม่เปลี่ยนหลังจากการหมุน → การหมุนยังไม่เสร็จสิ้นหรือเส้นทางถูกเก็บไว้ในแคช → รอระยะเวลาที่ผู้ให้บริการกำหนดหรือตรวจสอบสถานะการหมุนผ่าน API ของพวกเขา
- ความขัดแย้งกับบริการภายใน → นำพร็อกซีไปใช้กับทั้งหมดรวมทั้ง localhost → ใช้ NO_PROXY=localhost,127.0.0.1 เพื่อให้การเรียกจากในประเทศไปโดยตรง
การตรวจสอบ: ลองซ้ำปัญหาหลังจากที่ทำการแก้ไข ตรวจสอบให้แน่ใจว่าอาการได้หายไป: พร็อกซีใช้งานได้ การอนุญาตผ่านได้ และรหัสตอบกลับที่ถูกคาดหวัง
ฟีเจอร์เพิ่มเติม
การตั้งค่าเชิงลึกที่ทันสมัย
- ข้อมูลลับและคีย์: ย้ายรหัสผ่านและคีย์ทั้งหมดไปยังตัวแปรสิ่งแวดล้อมหรือผู้จัดการข้อมูลลับ อย่าฝังพวกเขาในโค้ด
- การกำหนดภูมิศาสตร์: หาก mobileproxy.space เสนอให้เลือกประเทศ/ภูมิภาค ให้สร้างเครื่องมือ set_region และเปลี่ยนภูมิศาสตร์โดยไม่ต้องเริ่มเซิร์ฟเวอร์ใหม่
- พูลพร็อกซี: สำหรับการใช้งานหนัก ใช้สระจากจุดมุมมือถือหลายจุด และกฎการกระจาย (round-robin, ตามโดเมน, ตามงาน)
- การควบคุมความถี่: เพิ่ม rate limiter ทั่วไปในเซิร์ฟเวอร์เพื่อไม่ต้องขึ้นอยู่กับระเบียบวินัยของตัวแทน
การปรับปรุงประสิทธิภาพ
- การแคช: สำหรับทรัพยากรที่ไม่เปลี่ยนแปลง ให้แคชคำตอบไว้ในระยะเวลาสั้น ๆ สิ่งนี้จะช่วยลดการจราจรและเพิ่มการตอบสนอง
- การทำงานพร้อมกัน: จำกัดการร้องขอพร้อมกันไปยังโฮสต์เดียว แต่เปิดโอกาสให้การร้องขอพร้อมกันในหลายโฮสต์
- การวิเคราะห์: เก็บเมตริกตามโดเมนและประเภทของคำขอ เพื่อให้เข้าใจว่าที่ไหนควรจะปรับปรุง
สิ่งที่ยังคงต้องทำ
- เพิ่มเครื่องมือในการตรวจสอบการใช้ทรัพยากรเป้าหมาย (healthcheck_url) พร้อมรายงาน
- ฝังการส่งออกบันทึกไปยังที่เก็บส่วนกลาง เช่น บันทึกเหตุการณ์ของโครงสร้างพื้นฐานของคุณ
- จัดทำคำแนะนำสำหรับทีมและนำไปไว้ในหน้า mcp.html พร้อมกับเทมเพลตการกำหนดค่า
- ศึกษาเนื้อหาอย่างละเอียดเกี่ยวกับการเลือกและการปรับแต่งพร็อกซีสำหรับตัวแทนที่หน้า material about proxies for AI agents.
คำแนะนำ: ระบุ "โปรไฟล์การเชื่อมต่อ" — dev, stage, prod — พร้อมด้วยขีดจำกัดและระดับการบันทึกที่แตกต่างกัน สร้างให้ดูแลและตรวจสอบได้ง่ายขึ้น
คำถามที่พบบ่อย (FAQ)
1. เวลาที่ใช้งาน "sticky" session ของพร็อกซีมือถือคือเท่าไหร่?
ขึ้นอยู่กับแพ็กเกจของผู้ให้บริการ โดยทั่วไปผู้ให้บริการมักเสนอระยะเวลา 10–30 นาที หากต้องการให้ยืนยันในบัญชีผู้ใช้ mobileproxy.space และกำหนดระยะเวลาในการทำงานในทรัพยากรเมื่อใช้ในเซิร์ฟเวอร์ MCP
2. จะรู้ได้อย่างไรว่าคำขอได้ใช้งานผ่านพร็อกซีมือถือจริง?
เปรียบเทียบ IP ภายนอกก่อนและหลังการเปิดใช้งานพร็อกซีผ่าน get_external_ip นอกจากนี้ให้บันทึกข้อมูลบนเซิร์ฟเวอร์และตรวจสอบหากสามารถ
3. สามารถตั้งค่าพร็อกซีที่แตกต่างกันสำหรับเครื่องมือที่แตกต่างกันได้หรือไม่?
ได้ ในระดับโค้ด คุณสามารถสร้างตัวแทนของพร็อกซีหลายตัวและเลือกใช้ตามชื่อเครื่องมือหรือโดเมน ในระดับลูกค้าให้ตั้งค่าเซิร์ฟเวอร์หลายตัวที่มี env ที่แตกต่างกัน
4. จะทำอย่างไรหากเว็บไซต์เป้าหมายต้องการ headers โดยเฉพาะ?
ส่ง headers ที่ต้องการผ่าน parameters ของ headers ในเครื่องมือ fetch_url สิ่งเหล่านี้รวมถึง User-Agent, Accept, Accept-Language, Referer
5. จะหลีกเลี่ยงการรั่วไหลของความลับในบันทึกได้อย่างไร?
ซ่อนสตริงที่ละเอียดอ่อนและไม่บันทึก URL ที่สมบูรณ์พร้อมด้วยรหัสผ่าน เก็บข้อมูลลับไว้ในตัวแปรสิ่งแวดล้อมเท่านั้นและเปิดใช้งานการหมุนรหัสผ่าน
6. สามารถใช้พร็อกซีเฉพาะกับโดเมนบางตัวได้หรือไม่?
ได้ ในระดับโค้ดให้เงื่อนไขการใช้พร็อกซีสำหรับโดเมนที่ต้องการ ปล่อยการเชื่อมต่อโดยตรงสำหรับการร้องขออื่นหรือสร้างสองเครื่องมือ: fetch_proxy และ fetch_direct
7. จะทำอย่างไรถ้าการหมุนไม่เปลี่ยน IP?
รอเวลาที่ผู้ให้บริการกำหนดและตรวจสอบสถานะการหมุน ตรวจสอบว่าไม่ได้อยู่ในเซสชัน "sticky" หากต้องการการเปลี่ยนแปลงทันที
8. จะปรับขนาดให้ทนต่อภาระงานหนักได้อย่างไร?
ใช้พูลของจุดมือถือ, จำกัดความเสถียรพร้อมกันตามโดเมน, จากนั้นเพิ่มคำขอสั่งซ่อมและ backoff อัจฉริยะ สำหรับการทำงานร่วมกับตัวแทน ให้จำแนกระบบภารกิจ
9. จะเก็บเอกสารของทีมไว้ที่ไหน?
หน้าใน mcp.html เป็นสถานที่ที่เนื้อหาภาษาอังกฤษเหมาะสำหรับการเก็บข้อมูล คำแนะนำและแบบฟอร์มการกำหนดค่า อัปเดตตามการพัฒนา
10. สามารถเชื่อมต่อ mobileproxy.space เป็น MCP-server สำเร็จรูปได้หรือไม่?
ได้ หากคุณมีเซิร์ฟเวอร์หรืออะแดปเตอร์ที่เหมาะสมที่จะให้บริการการหมุนและการร้องขอผ่านโครงสร้างพื้นฐานของพวกเขาในตัวอย่างที่มีแสดงวิธีการสร้างเซิร์ฟเวอร์ดังกล่าวด้วยตนเองจาก SDK
คำแนะนำ: นำเสนอพิสูจน์ตัวตนเซิร์ฟเวอร์ภายใน: ชื่อ เวอร์ชัน รายการเครื่องมือ ติดต่อผู้รับผิดชอบ ซึ่งจะช่วยให้การสนับสนุนรวดเร็วขึ้นและการฝึกอบรมเพื่อนร่วมงานใหม่ได้ง่ายยิ่งขึ้น
บทสรุป
คุณได้ดำเนินการในทุกขั้นตอนเรียบร้อยแล้ว: ฟิตมากขึ้นถึงรู้ว่า MCP คืออะไรและทำไมถึงพึงประสงค์ในการทำงานในเครื่องมือ AI; เตรียมสภาพแวดล้อม; เชื่อมต่อพร็อกซีมือถือกับ MCP-client; สร้างตัวอย่าง MCP-server ที่ใช้งานได้พร้อมเครื่องมือ get_external_ip, rotate_ip และ fetch_url บนพื้นฐานของ mobileproxy.space; ตั้งค่าการกำหนดค่าทั้งสองอย่าง ความเสถียรและการวินิจฉัย; ทำบททดสอบและวิเคราะห์ข้อผิดพลาดที่พบบ่อยรวมถึงฟีเจอร์ที่ขยายออกไป ในขณะนี้คุณมีโครงสร้างที่สามารถทำซ้ำได้: MCP-client จัดการเครื่องมือ MCP-server สร้างการดำเนินการเครือข่าย พร็อกซีมือถือให้เส้นทางเครือข่ายที่สามารถทำนายได้และกำหนดได้
ต่อไปคุณสามารถ: 1) แยกเซิร์ฟเวอร์ให้เป็นโมดูลสำหรับภารกิจที่แตกต่างกัน 2) เพิ่มโปรไฟล์สภาพแวดล้อม dev/stage/prod 3) เปิดพูลพร็อกซีและเลือกเส้นทางได้แบบไดนามิก 4) เอกสารความแปรผันทั้งหมดไว้ใน mcp.html และอ้างอิงถึง เนื้อหาเกี่ยวกับพร็อกซีสำหรับ AI-agent.
พัฒนาทักษะของคุณอย่างต่อเนื่อง: เชื่อมต่อกับเกณฑ์และการเตือนภัยเกี่ยวกับการลดขนาด สร้างการทดสอบอัตโนมัติและหมุนรหัสผ่านตามกำหนดหรือการโหลด ขอบคุณให้เครือข่ายของคุณมีการฟอร์มที่ดีขึ้น จะทำให้การขยายตัวของตัวแทนและคุณภาพบริการทำได้ง่ายขึ้น
คำแนะนำ: ทบทวนขีดจำกัดและแผนการของผู้ให้บริการ mobileproxy.space เป็นระยะ เพื่อหลีกเลี่ยงการถึงขีดจำกัดในช่วงเวลาที่เหลือเคลื่อนที่ ตั้งค่าความจุและมีการตั้งค่าฉุกเฉินเมื่อไม่สามารถใช้จุดหนึ่งได้