ร้องขอ Roots ของไคลเอ็นต์
ขอรายการไดเรกทอรีทำงานที่อนุญาต
ร้องขอ Roots ของไคลเอ็นต์ เป็นบทเรียน MCP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MCP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คราวนี้มาขอรายการกัน
การรู้ว่ามีรูตอยู่เป็นเพียงขั้นแรก ขั้นที่สองคือขอรายการปัจจุบันจากไคลเอ็นต์จริง ๆ เพื่อให้เซิร์ฟเวอร์ตัดสินใจได้ว่าจะอ่านหรือเขียนที่ใด 📨
เซิร์ฟเวอร์เป็นผู้เริ่มต้น
ในกรณีนี้ทิศทางจะสลับกันคือ เซิร์ฟเวอร์ส่งคำขอ และไคลเอ็นต์ตอบกลับ วิธีการที่เรียกคือ roots/list ซึ่งใช้ขอรายการทั้งหมดที่ไคลเอ็นต์เปิดเผยอยู่ในขณะนั้น
{ "method": "roots/list" }เข้าถึงรูตผ่านบริบท
ใน Python SDK คุณไม่จำเป็นต้องสร้าง JSON ดิบเอง แต่ใช้วัตถุบริบทของคำขอที่ส่งต่อให้เครื่องมือของคุณ ซึ่งเป็นตัวห่อหุ้มเซสชันที่กำลังเชื่อมต่อกับไคลเอ็นต์
async def my_tool(ctx: Context):
...เรียกใช้งานอย่างสะดวก
จากบริบทนั้น ให้เรียก list_roots() และรอผลลัพธ์ SDK จะส่ง roots/list ให้คุณเอง และส่งคำตอบของไคลเอ็นต์กลับมาเป็นผลลัพธ์ที่มีชนิดกำกับ
result = await ctx.session.list_roots()สิ่งที่ส่งกลับมา
คำตอบจะมีรายการรูต แต่ละรายการมี uri และชื่อที่ไม่จำเป็นต้องมี ซึ่งเป็นโครงสร้างเล็ก ๆ แบบเดียวกับที่เห็นก่อนหน้านี้ และพร้อมให้คุณวนซ้ำตรวจสอบ
for root in result.roots:
print(root.uri, root.name)รายการอาจว่างเปล่า
คำตอบที่ถูกต้องอาจเป็นรายการว่าง ซึ่งหมายความว่าขณะนี้ไคลเอ็นต์ไม่มีรูตให้ใช้งาน ดังนั้นควรวางแผนทางเลือกสำรองที่เหมาะสม แทนการสันนิษฐานว่ามีโฟลเดอร์อยู่
ตรวจสอบความสามารถก่อน
การเรียก list_roots จะมีความหมายก็ต่อเมื่อไคลเอ็นต์รองรับรูต เซิร์ฟเวอร์ที่ทำงานอย่างสุภาพจะตรวจสอบความสามารถที่ประกาศไว้ก่อนขอข้อมูล เพื่อหลีกเลี่ยงข้อผิดพลาดบนโฮสต์ที่ไม่มีความสามารถนี้
ขอข้อมูลในเวลาที่เหมาะสม
ดึงข้อมูลรูตเมื่อจำเป็นต้องใช้ เช่น ตอนเริ่มต้นเครื่องมือจัดการไฟล์ การขอข้อมูลเมื่อจำเป็นช่วยให้ข้อมูลเป็นปัจจุบัน หากผู้ใช้เพิ่งเปิดโฟลเดอร์อื่น
แปลงรูตเป็นพาธ
uri ของรูตอาจเป็นสตริงอย่าง file:///home/ada หากต้องการใช้งาน ให้แยกวิเคราะห์ URI file:// เป็นพาธระบบไฟล์จริงก่อนเปิดสิ่งใดภายในนั้น
from urllib.parse import urlparse
path = urlparse(root.uri).pathรับฟังการเปลี่ยนแปลง
หากไคลเอ็นต์รองรับ ไคลเอ็นต์สามารถส่งการแจ้งเตือนเมื่อรูตเปลี่ยนแปลงได้ การดักจับการแจ้งเตือนนี้ทำให้คุณดึงรายการใหม่แทนการทำงานจากข้อมูลเก่าที่ไม่เป็นปัจจุบัน
notifications/roots/list_changedจัดการความล้มเหลวอย่างนุ่มนวล
คำขอยังคงล้มเหลวหรือหมดเวลาได้ ให้ครอบการเรียกไว้เพื่อให้คำตอบที่หายไปส่งผลเป็นข้อความที่ชัดเจนสำหรับเครื่องมือ แทนที่จะเกิดการหยุดทำงาน 🛟
ตรวจสอบอย่างรวดเร็ว
เลือกวิธีที่ถูกต้องในการรับรูตของไคลเอ็นต์ผ่าน SDK
สรุป: การขอรูต
คุณรอผลลัพธ์จาก list_roots() บนเซสชัน วนซ้ำผ่านรูตที่ส่งกลับมา แยกวิเคราะห์ uri file:// แต่ละรายการ และจัดการคำตอบที่ว่างเปล่าหรือล้มเหลว เมื่อรูตเปลี่ยนแปลง ให้ขอข้อมูลใหม่ ✅
เรียนรู้ Python ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “ร้องขอ Roots ของไคลเอ็นต์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ร้องขอ Roots ของไคลเอ็นต์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MCP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ร้องขอ Roots ของไคลเอ็นต์”
ขอรายการไดเรกทอรีทำงานที่อนุญาต คุณปฏิบัติ MCP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MCP Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน MCP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “ร้องขอ Roots ของไคลเอ็นต์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน MCP Academy นี้ได้ไหม
ได้ บทเรียน MCP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- Roots บอกอะไรแก่เซิร์ฟเวอร์
- ร้องขอ Roots ของไคลเอ็นต์
- เจรจาความสามารถ
- เคารพขอบเขตของไคลเอ็นต์