MCP เชื่อมต่อแล้วแต่ใช้ไม่ได้? ตรวจปัญหาใน Mono ทีละขั้น
แยกปัญหาการเชื่อมต่อ การอนุญาต การค้นหาความสามารถ การรองรับของโมเดล และการเรียกเครื่องมือใน Mono แล้วทดสอบด้วยการอ่านข้อมูลที่ไม่เปลี่ยนแปลงอะไร
การบันทึก MCP server ไว้ไม่ได้แปลว่าเครื่องมือใช้งานได้ ที่อยู่อาจถูกต้องแต่การลงชื่อเข้าใช้ยังไม่เสร็จ การลงชื่อเข้าใช้อาจสำเร็จแต่โหลดเครื่องมือของเซิร์ฟเวอร์ไม่ได้ และเครื่องมืออาจโหลดได้แต่ยังได้รับคำขอที่ผิด ให้หาขั้นแรกที่ล้มเหลวก่อนเปลี่ยนการตั้งค่าใด ๆ
คู่มือนี้ว่าด้วยการแก้ปัญหาใน Mono by Reunified ซึ่งยังไม่เปิดให้ใช้ (เข้าร่วมรายชื่อรอ) หากเชื่อมต่อครั้งแรก ให้ใช้คู่มือตั้งค่า MCP เป้าหมายตรงนี้คือเปลี่ยนคำว่า “ใช้ไม่ได้” ที่คลุมเครือ ให้เป็นข้อสังเกตชัดเจนหนึ่งข้อที่ทำซ้ำได้ โดยไม่เผลอทำการเขียนซ้ำ
1. บันทึกอาการและหยุดลองซ้ำเมื่อผลยังไม่ชัดเจน
จดชื่อเซิร์ฟเวอร์ วิธีเชื่อมต่อ อุปกรณ์ เวอร์ชันแอป สิ่งที่พยายามทำ และข้อความผิดพลาดที่แน่นอน โดยตัดข้อมูลลับออก บันทึกด้วยว่าการตั้งค่าเดิมเคยใช้ได้หรือไม่ และมีอะไรเปลี่ยนไปตั้งแต่นั้น “รายการเครื่องมือว่างหลังลงชื่อเข้าใช้” มีประโยชน์กว่า “MCP พัง”
หากคำขอล่าสุดอาจสร้าง ส่ง หรือแก้ไขบางอย่าง ให้ตรวจปลายทางก่อนลองใหม่ คำตอบที่หายไปไม่ได้แปลว่าการกระทำไม่เกิดขึ้น สำหรับการทดสอบ ให้เปลี่ยนเป็นคำขอเล็ก ๆ แบบอ่านอย่างเดียว เช่น แสดงรายการหนึ่งชิ้นในโปรเจกต์ทดสอบที่คุณตรวจได้
เก็บสำเนาการตั้งค่าล่าสุดที่ใช้ได้ไว้เป็นส่วนตัว อย่าวางโทเค็น รหัสอนุญาต หรือผลลัพธ์ส่วนตัวของเครื่องมือในคำขอความช่วยเหลือที่เป็นสาธารณะ
2. ตรวจวิธีเชื่อมต่อก่อนตรวจบัญชี
การเชื่อมต่อ HTTP ใน Mono ต้องใช้ที่อยู่ของ MCP server ไม่ใช่หน้าแรกของเว็บไซต์ทั่วไปหรือที่อยู่ API ของโมเดล เทียบ URL เต็ม รวมทั้งพาธ กับเอกสารล่าสุดของผู้เผยแพร่เซิร์ฟเวอร์ หน้าที่เปิดได้ในเบราว์เซอร์แสดงแค่ว่าหน้านั้นเข้าถึงได้ ไม่ได้แปลว่า MCP ทำงานที่นั่น
สำหรับ “อินพุต/เอาต์พุตมาตรฐาน” (stdio) ให้ตรวจคำสั่งและอาร์กิวเมนต์บนอุปกรณ์ที่ต้องเริ่มมัน การลงชื่อเข้าใช้ใหม่ไม่ได้แก้คำสั่งที่หายไป หรืออุปกรณ์ที่รันคำสั่งนั้นไม่ได้ โทรศัพท์กับคอมพิวเตอร์ต่างกัน อย่าคาดว่าคำสั่งสำหรับคอมพิวเตอร์จะรันบนโทรศัพท์ได้
ที่อยู่ที่มี localhost หมายถึงอุปกรณ์ที่ส่งคำขอเอง ให้ทดสอบจากอุปกรณ์จริง ผ่านเส้นทางที่รองรับและลงชื่อเข้าใช้แล้ว อย่าลดการควบคุมการเข้าถึงของเซิร์ฟเวอร์ที่ใช้งานได้อยู่แค่เพื่อให้ผ่านการทดสอบ
3. แยกการบันทึกการตั้งค่าออกจากการอนุญาตที่เสร็จสมบูรณ์
ตรวจว่าเลือกวิธียืนยันตัวตนแบบไหน “โทเค็น Bearer” ต้องใส่โทเค็นที่ถูกต้องของบริการในช่องของมัน OAuth ต้องใช้บัญชีที่ถูกต้อง ทำตามข้อกำหนดของเซิร์ฟเวอร์ และกลับมาที่ Mono จนเสร็จ การปิดเบราว์เซอร์เร็วเกินไปไม่ใช่การลงชื่อเข้าใช้ที่สำเร็จ
Mono บันทึกเซิร์ฟเวอร์ได้ก่อนลงชื่อเข้าใช้เสร็จ เซิร์ฟเวอร์ที่บันทึกไว้จึงไม่ได้พิสูจน์ว่าลงชื่อเข้าใช้สำเร็จ แม้ลงชื่อเข้าใช้สำเร็จแล้ว การโหลดเครื่องมือของเซิร์ฟเวอร์ก็อาจล้มเหลวอยู่ช่วงหนึ่ง ทั้งรายการที่บันทึกไว้และข้อความ “เชื่อมต่อกับ … แล้ว” ไม่ได้พิสูจน์ว่าเครื่องมือตัวใดพร้อมใช้
หากเปลี่ยน URL หรือวิธีเชื่อมต่อของเซิร์ฟเวอร์ Mono จะถือว่าเป็นการเชื่อมต่อใหม่ คุณจึงอาจต้องลงชื่อเข้าใช้อีกครั้ง แก้ที่อยู่ที่ผิดจริง แต่อย่าเปลี่ยน URL ที่ใช้งานได้ไปเรื่อย ๆ เหมือนเป็นการรีเซ็ต ทำตามการตั้งค่าไคลเอนต์และการเปลี่ยนเส้นทางที่ผู้เผยแพร่ระบุไว้ แทนการเดาค่าเอง
4. ตรวจความสามารถของเซิร์ฟเวอร์และโมเดลที่เลือก
สถาปัตยกรรม MCP แยกเครื่องมือ ทรัพยากร และพรอมต์ออกจากกัน เซิร์ฟเวอร์อาจมีให้เพียงบางอย่าง เซิร์ฟเวอร์ที่มีแต่ทรัพยากรจึงไม่ได้ให้เครื่องมือที่ผู้ช่วยเรียกใช้ได้
สำหรับสกิล MCP ที่ติดตั้งไว้ ให้เปิดส่วน “การกำหนดค่า” เพื่อดูเครื่องมือที่ Mono พบ ถ้าว่าง ให้ตรวจการลงชื่อเข้าใช้และดูว่าเซิร์ฟเวอร์แสดงรายการเครื่องมือหรือไม่ อย่าคิดว่าทุกการกระทำของบริการใช้ได้ การบันทึกเซิร์ฟเวอร์ไม่ใช่การตรวจสุขภาพแบบครบถ้วน
ตรวจโมเดลที่แชตใช้ด้วย ไม่ใช่ทุกโมเดลที่เรียกเครื่องมือได้ รวมถึงบางโมเดลที่คุณเชื่อมต่อเอง โมเดลที่ตอบข้อความได้ดีก็ยังอาจเป็นสาเหตุที่เครื่องมือที่เชื่อมต่อไว้ไม่เคยถูกใช้ คู่มือเอนด์พอยต์แบบกำหนดเองอธิบายเรื่องนี้
5. ทดสอบการทำงานที่รู้จักหนึ่งอย่าง
ใช้คำขอที่ไม่มีผลเสีย แล้วเทียบผลกับบริการต้นทาง
อ่านชื่อของรายการสาธิตที่มีอยู่แล้วตามที่ฉันระบุ
ห้ามสร้าง แก้ไข ส่ง หรือลบสิ่งใด
หากเข้าถึงไม่ได้ ให้แจ้งว่าล้มเหลวแทนการเดาชื่อ| สิ่งที่เห็น | ตรวจอะไรต่อ |
|---|---|
| เชื่อมต่อที่อยู่ไม่ได้ | ที่อยู่ วิธีเชื่อมต่อ เครือข่ายของอุปกรณ์ และเซิร์ฟเวอร์ทำงานอยู่หรือไม่ |
| ลงชื่อเข้าใช้ไม่เสร็จ | บัญชี วิธียืนยันตัวตน และข้อกำหนด OAuth ของผู้เผยแพร่ |
| ไม่มีเครื่องมือปรากฏเลย | เซิร์ฟเวอร์มีอะไรให้ เครื่องมือโหลดแล้วหรือยัง และโมเดลรองรับเครื่องมือหรือไม่ |
| เครื่องมือหนึ่งล้มเหลว | ข้อมูลที่ต้องใช้ สิทธิ์ในบริการ และข้อผิดพลาดที่ส่งกลับมา |
| อ่านได้ แต่เขียนถูกบล็อก | สิทธิ์ที่ตั้งใจให้ และการตั้งค่าสิทธิ์ของเครื่องมือ อย่าเปิดทุกอย่าง |
ข้อผิดพลาดของตัวเครื่องมือต่างจากผลลัพธ์ว่างที่สำเร็จ เก็บสถานะที่ส่งกลับมาและข้อความที่เกี่ยวข้องไว้ด้วยกัน โดยตัดข้อมูลลับออก
6. ยืนยันผลแก้ไขและเก็บบันทึกสำหรับขอความช่วยเหลือ
เปลี่ยนทีละอย่าง ทดสอบแบบอ่านอย่างเดียวแบบเดิมซ้ำ แล้วจดผล หากภายหลังต้องเขียนข้อมูล ให้ตรวจเป้าหมายที่แน่นอนและยืนยันผลในบริการก่อนลองอีกครั้ง
จดสั้น ๆ ถึงขั้นที่ล้มเหลว เวอร์ชัน สิ่งที่เปลี่ยน และการทดสอบล่าสุดที่สำเร็จ การลบการเชื่อมต่อใน Mono กับการเพิกถอนสิทธิ์ที่ผู้ให้บริการเป็นคนละขั้นตอน สำหรับการตัดสินใจเรื่องสิทธิ์ระหว่างใช้งาน ให้อ่านคู่มือตรวจสิทธิ์เครื่องมือ การอนุมัติซ้ำไปเรื่อย ๆ ไม่ได้ช่วยแก้การเชื่อมต่อ
