เข้าถึงออบเจ็กต์บริบท
เข้าถึงบริบทของคำขอภายในเครื่องมือ
เข้าถึงออบเจ็กต์บริบท เป็นบทเรียน MCP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MCP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน
ทำความรู้จักอ็อบเจ็กต์บริบท
อ็อบเจ็กต์ บริบท คือช่องทางของเครื่องมือไปยังคำขอ โดยมีทั้งสถานะที่ใช้ร่วมกันและตัวช่วยสำหรับการบันทึกเหตุการณ์กับการรายงานความคืบหน้า
ขอใช้ด้วยชนิดข้อมูล
เพิ่มพารามิเตอร์ที่ระบุชนิดเป็น บริบท แล้ว FastMCP จะใส่ค่าให้โดยอัตโนมัติ ไคลเอ็นต์จะไม่เห็นอาร์กิวเมนต์นี้
from mcp.server.fastmcp import Context
@mcp.tool()
async def greet(name: str, ctx: Context) -> str:
return "hi " + nameเข้าถึงสถานะที่ใช้ร่วมกัน
เจาะเข้าไปที่ ctx.request_context.lifespan_context เพื่อรับอ็อบเจ็กต์เดียวกับที่ lifespan ส่งคืนระหว่างเริ่มต้น
app = ctx.request_context.lifespan_context
rows = await app.db.query("...")ใช้การเชื่อมต่อที่มีอยู่
ตอนนี้เครื่องมือของคุณทำงานโดยใช้กลุ่มการเชื่อมต่อ ที่ใช้ร่วมกัน แทนการเปิดการเชื่อมต่อใหม่ทุกครั้งที่เรียกใช้งาน
บันทึกเหตุการณ์ผ่านบริบท
เรียก ctx.info เพื่อส่งบรรทัดบันทึกเหตุการณ์ไปยังไคลเอ็นต์ ซึ่งมีประโยชน์กว่าการใช้คำสั่งพิมพ์ที่ซ่อนอยู่บนเซิร์ฟเวอร์มาก
await ctx.info("loading user " + str(user_id))รายงานความคืบหน้าด้วย
สำหรับงานที่ใช้เวลานาน ctx.report_progress จะส่งการอัปเดตเปอร์เซ็นต์ความคืบหน้าอย่างต่อเนื่อง เพื่อให้โฮสต์แสดงแถบความคืบหน้าแก่ผู้ใช้ได้
await ctx.report_progress(progress=3, total=10)ระบบใส่ให้ ไม่ได้ส่งผ่านเอง
โมเดลไม่เคยกรอก ctx เอง FastMCP จะตรวจจับคำใบ้ชนิดข้อมูลแล้วจัดหาให้ ดังนั้น ctx จึงไม่ปรากฏในโครงสร้างเครื่องมือของคุณ
เครื่องมือแบบอะซิงโครนัสใช้บริบทได้ดี
ตัวช่วยบริบทส่วนใหญ่สามารถ รอผลได้ ดังนั้นควรกำหนดเครื่องมือที่ใช้บริบทเป็นฟังก์ชันแบบอะซิงโครนัส เพื่อเรียกใช้ได้อย่างเหมาะสม
ตั้งชื่ออย่างไรก็ได้
ชื่อพารามิเตอร์ขึ้นอยู่กับคุณ แต่สิ่งที่สำคัญคือ คำใบ้ชนิดข้อมูล โดยทั่วไปผู้คนมักตั้งชื่อว่า ctx ตามธรรมเนียม
หนึ่งบริบทต่อหนึ่งคำขอ
การเรียกเครื่องมือแต่ละครั้งจะได้รับ บริบทของคำขอ ของตนเอง แต่บริบททั้งหมดชี้ไปยังสถานะ lifespan เดียวกันที่มีอายุยืนยาวอยู่เบื้องหลัง
อ่านข้อมูลเมตาของคำขอ
บริบทยังเปิดให้เข้าถึง ข้อมูลเมตาของคำขอ เพื่อให้เครื่องมือตรวจสอบรายละเอียดของการเรียกเฉพาะรายการที่กำลังจัดการอยู่ได้
ตรวจสอบอย่างรวดเร็ว
คุณจะรับอ็อบเจ็กต์บริบทภายในเครื่องมือ FastMCP ได้อย่างไร
สรุป: อ็อบเจ็กต์บริบท
คุณเข้าถึงสถานะที่ใช้ร่วมกันผ่าน ctx.request_context.lifespan_context และใช้ ctx สำหรับการบันทึกเหตุการณ์กับการรายงานความคืบหน้า ต่อไป: การปิดการทำงานอย่างเรียบร้อย 🔌
คำถามที่พบบ่อย
บทเรียน “เข้าถึงออบเจ็กต์บริบท” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เข้าถึงออบเจ็กต์บริบท” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ฮุกเริ่มต้นระบบตามอายุการใช้งาน
- แชร์สถานะผ่านบริบทแอป
- เข้าถึงออบเจ็กต์บริบท
- ปิดระบบอย่างสะอาดและคืนทรัพยากร