0Pricing
MCP Academy · บทเรียน

เจรจาความสามารถ

ตรวจสอบว่าทั้งสองฝ่ายรองรับฟีเจอร์ใดบ้าง

เจรจาความสามารถ เป็นบทเรียน MCP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MCP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน

ไม่ใช่ทุกฝ่ายจะรองรับทุกความสามารถ

MCP มีความสามารถมากมาย แต่ไม่มีไคลเอ็นต์หรือเซิร์ฟเวอร์ใดรองรับทั้งหมด ดังนั้นเมื่อเริ่มต้น ทั้งสองฝ่ายจะเจรจาตกลงว่าตนมีความสามารถใดบ้าง เช่นเดียวกับอุปกรณ์สองเครื่องที่ตกลงกันว่าทำอะไรได้ 🤝

เกิดขึ้นระหว่างการเริ่มต้น

ข้อตกลงนี้เกิดขึ้นระหว่างการจับมือเริ่มต้น ซึ่งเป็นการแลกเปลี่ยนครั้งแรกสุด หลังจากนั้นแต่ละฝ่ายจะรู้ว่าอีกฝ่ายมีอะไรให้ใช้ และอะไรที่ไม่สามารถใช้ได้

ชุดความสามารถสองชุด

ไคลเอ็นต์ประกาศ clientCapabilities และเซิร์ฟเวอร์ประกาศ serverCapabilities แต่ละชุดเป็นเพียงแผนผังของเครื่องหมายความสามารถและตัวเลือกเล็ก ๆ

สิ่งที่เซิร์ฟเวอร์ประกาศ

เซิร์ฟเวอร์จะแสดงรายการสิ่งที่ตนให้บริการ เช่น เครื่องมือ ทรัพยากร และพรอมต์ หากไม่มีคีย์ใดอยู่ ไคลเอ็นต์ก็จะรู้ว่าไม่ควรคาดหวังความสามารถพื้นฐานนั้นจากคุณ

"capabilities": { "tools": {}, "resources": {} }

สิ่งที่ไคลเอ็นต์ประกาศ

ไคลเอ็นต์จะแสดงรายการความสามารถที่ให้บริการกลับมาได้ เช่น รูต การสุ่มตัวอย่าง และการขอข้อมูลเพิ่มเติม นี่คือวิธีที่เซิร์ฟเวอร์ของคุณรู้ว่าตนสามารถขอรูตได้หรือไม่

"capabilities": { "roots": {}, "sampling": {} }

เครื่องหมายย่อยช่วยเพิ่มรายละเอียด

ความสามารถหนึ่งรายการอาจมีตัวเลือกเพิ่มเติมได้ ตัวอย่างเช่น รูตอาจมี listChanged: true ซึ่งหมายความว่าไคลเอ็นต์จะแจ้งให้คุณทราบเมื่อชุดรูตเปลี่ยนแปลง

"roots": { "listChanged": true }

ไม่มีหมายถึงไม่รองรับ

กฎนั้นเรียบง่าย: หากไม่มีความสามารถ ให้ถือว่าฟีเจอร์นั้นไม่พร้อมใช้งาน อย่าเรียกใช้สิ่งที่อีกฝ่ายไม่เคยรับปากว่าทำได้

เวอร์ชันต้องมาก่อน

นอกจากฟีเจอร์ต่าง ๆ แล้ว ทั้งสองฝ่ายยังส่ง protocolVersion ด้วย ทั้งคู่ต้องตกลงใช้เวอร์ชันร่วมกัน มิฉะนั้นเซสชันจะถูกปฏิเสธก่อนเริ่มงานจริง

SDK จัดการงานส่วนใหญ่ให้

คุณแทบไม่ต้องสร้างแผนผังเหล่านี้เอง Python SDK จะเติมข้อมูลความสามารถของเซิร์ฟเวอร์จากเครื่องมือและทรัพยากรที่คุณลงทะเบียนไว้ แล้วแลกเปลี่ยนข้อมูลให้คุณ

อ่านเครื่องหมายของอีกฝ่าย

หลังจากเริ่มต้นแล้ว คุณสามารถตรวจสอบความสามารถของไคลเอ็นต์ที่เซสชันของคุณเก็บไว้ได้ การตรวจสอบนี้เป็นสิ่งที่ป้องกันการเรียกใช้แบบเสริม เช่น list_roots

caps = ctx.session.client_params.capabilities

เจรจาครั้งเดียว แล้วเชื่อถือได้ตลอดเซสชัน

ความสามารถต่าง ๆ จะถูกกำหนดไว้ตอนเริ่มต้นและคงอยู่ตลอดเซสชัน คุณจึงเชื่อถือข้อมูลเหล่านี้ได้ตลอดอายุการเชื่อมต่อ โดยไม่ต้องเจรจาใหม่ทุกครั้งที่เรียกใช้

ตรวจสอบอย่างรวดเร็ว

ทบทวนว่าเมื่อใดและอย่างไรที่ฟีเจอร์ต่าง ๆ ได้รับการตกลงร่วมกัน

สรุป: ข้อตกลงเรื่องความสามารถ

ในขั้นตอนเริ่มต้น ไคลเอ็นต์และเซิร์ฟเวอร์จะแลกเปลี่ยนแผนผังความสามารถและเวอร์ชันโพรโทคอล เครื่องหมายที่หายไปหมายถึงไม่รองรับ และ SDK จะสร้างและอ่านข้อมูลเหล่านี้ให้คุณ 🎯

คำถามที่พบบ่อย

บทเรียน “เจรจาความสามารถ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เจรจาความสามารถ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MCP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เจรจาความสามารถ”

ตรวจสอบว่าทั้งสองฝ่ายรองรับฟีเจอร์ใดบ้าง คุณปฏิบัติ MCP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MCP Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน MCP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “เจรจาความสามารถ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน MCP Academy นี้ได้ไหม

ได้ บทเรียน MCP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. Roots บอกอะไรแก่เซิร์ฟเวอร์
  2. ร้องขอ Roots ของไคลเอ็นต์
  3. เจรจาความสามารถ
  4. เคารพขอบเขตของไคลเอ็นต์
← กลับไปที่ MCP Academy