مسیر موضوعی
پروتکل کانتکست مدل (MCP)
Model Context Protocol (MCP)
سیستمهای MCP بیوضعیت را از بستههای JSON-RPC تا درگاههای انتشار انطباق با استاندارد، بسازید، ایمنسازی و اعتبارسنجی کنید و به کار بگیرید.
- ۱۷ درس
- ۲۳ ساعت و ۱۵ دقیقه زمان درسها
پیش از شروع
- مفاهیم پایهای پایتون و خط فرمان: شما میتوانید ساختار JSON را بررسی کنید، فایلی را تغییر دهید و دستوری در پایتون اجرا کنید. تجربهی پیشین با MCP یا فریمورکهای ایجنت الزامی نیست.
- استفاده از Python 3 برای تولید شواهد اجرایی در بستر انتقال: پیادهسازیها و تستهای قطعی از Python 3 استفاده میکنند. برای پیادهسازی دوم در درس 07، وجود یک اجراکننده (runner) تایپاسکریپت اختیاری است.
- رابط ابزار (The Tool Interface): اگر با فراخوانیهای دارای نوع داده برای ابزارها (typed tool calls) و مرزهای اثرات جانبی آشنایی ندارید، نگاهی گذرا به این درس بیندازید.
- طراحی اسکیمای ابزار (Tool Schema Design): اگر تا به حال به طراحی یا اعتبارسنجی ورودیهای ابزار با اسکیمای JSON نپرداختهاید، نگاهی گذرا به این درس بیندازید.
شروع سریع (۱۰ دقیقه): یک متن ارتباطات بستر انتقال از نوع بیوضعیت برای MCP را اجرا کنید و متادادهای که باعث میشود هر درخواست به صورت مستقل قابلتفسیر باشد را شناسایی کنید. شروع ←
درسها به ترتیب
- مبانی MCP: درخواستهای بیوضعیت و JSON-RPCخروجی: متن ارتباطات بستر انتقال شامل دو درخواست مستقل که هر کدام نسخهی پروتکل و قابلیتهای کلاینت را در فیلد params._meta حمل میکنند. نتیجهی کامل سرور/شناسایی به همراه خطای عدم پشتیبانی از نسخه با کد -32022.
- ساخت سرور MCP بیوضعیت با پایتون و تایپاسکریپتخروجی: دمویی از سمت سرور که قابلیتهای شناسایی، tools/list و tools/call را بدون نگهداری وضعیت پروتکل در سطح اتصال نمایش میدهد. نتیجهی یک تست قطعی از پیادهسازی پایتون، به همراه دموی تایپاسکریپت در صورت در دسترس بودن اجراکنندهی تایپاسکریپت.
- ساخت کلاینت MCP: کشف، مسیریابی و سازگاری با سرورهای قدیمیخروجی: متن ارتباطات کلاینت که بر اساس متادادهی هر درخواست مسیر نوین را انتخاب کرده و دورهی پروتکل برگزیده را ثبت میکند. یک ردگیری محاسبات مجزا برای طرح پشتیبان موروثی (legacy fallback) که وضعیت مقداردهی اولیه را وارد مسیر درخواستهای نوین نمیکند.
- بستر انتقال در پروتکل MCP: تفاوت stdio و Streamable HTTP مدرنخروجی: یک تبادل قاببندیشدهی بایتی در stdio و یک تبادل POST /mcp همراه با وضعیت و نوع محتوای مشاهدهشده. رد شدن درخواست پیش از مذاکرهی نسخه یا توزیع، به دلیل عدم تطابق هدر با بدنه (header-to-body parity).
- منابع و پرامپتها در MCP: کانتکست آدرسپذیر برای سرورهای بیوضعیتخروجی: متن ارتباطاتی که منبع مشخصشده با URI را لیست کرده و میخواند و یک پرامپت را به همراه آرگومانهای اعتبارسنجیشده رندر میکند. تعیین صریح دامنه کش، TTL، ترتیببندی قطعی و انتخاب جزء سازنده برای همان مثال.
- مهاجرت از Sampling به الگوی بیوضعیت MRTR در پروتکل MCPخروجی: یک درخواست ورودی MRTR، نتیجهی ارائهدهنده در سمت کلاینت و تلاش مجدد برای اجرای عملیات اولیه با یک شناسهی درخواست جدید. شواهدی مبنی بر این که سرور هرگز درخواست مستقل JSON-RPC که آغازگر آن خودش باشد ارسال نمیکند.
- تعیین دامنهی صریح و استخراج بیوضعیت ورودی در پروتکل MCPخروجی: درخواستی که ریشههای مجاز آن به جای وضعیت ذخیرهشدهی کلاینت، ورودیهای صریح عملیات هستند. یک پاسخ استخراج ورودی (Elicitation) MRTR که پیش از تلاش مجدد عملیات اصلی، با اسکیما اعتبارسنجی میشود.
- افزونهی Tasks در MCP: اجرای کارهای ماندگار روی هستهی بیوضعیتخروجی: یک ردگیری محاسبات پایا از وظایف که مواردی مانند ایجاد، استعلام دورهای وضعیت، لغو و نتیجهی نهایی را در قالب درخواستهای مستقل پوشش میدهد. شناسههای وظیفه، رفتارهای بازنگری یا پایاپای (idempotency)، فهرستهای قطعی و تطابق هدر درخواست که مستقل از وضعیت پروتکل ثبت میشوند.
- پیادهسازی MCP Apps روی پروتکل بیوضعیتخروجی: نتیجهی یک ابزار که به یک منبع مشخص UI ارجاع میدهد و دادههای پروتکل را از وضعیت رابط کاربری (view state) تفکیک میکند. مرز ثبتشدهی پیامهای هاست به ویو همراه با پیامهای مجاز، پیامهای ردشده و بدون هیچگونه فرضِ اختیار ضمنی (ambient authority).
- امنیت در پروتکل MCP: مسمومسازی متادیتا، مسیریابی و الگوی MRTRخروجی: توصیفکنندهای مسموم یا دچار دریفت که پیش از مسیریابی ابزار و اعطای مجوز رد میشود. مستندسازی مدل تهدید که متادادههای غیرقابلاعتماد، اختیارات درخواستی، مرز ساندباکس و اعتبارسنجی نتایج را از هم تفکیک میکند.
- مجوزدهی در MCP: روش CIMD، تفکیک صادرکننده، PKCE و ارتقای دامنهخروجی: یک ردگیری کامل مجوز با شناسایی متادادهی وابسته به صادرکننده، PKCE، پیوند منابع، اعتبارسنجی مخاطب (audience) و دامنههای حداقل دسترسی. تصمیم پلهای امنیتی (step-up) که پیش از اجرای کنترلکننده، اختیارات ناکافی را رد میکند.
- احراز هویت MCP در پروداکشن: ثبت و توکنهای مقید به صادرکنندهخروجی: یک ردگیری ثبتنام کلاینت وابسته به صادرکننده و اعتبارسنجی توکن، به گونهای که هیچ متادادهی شناسایی بین صادرکنندگان مختلف قابلاعتماد تلقی نشود. شواهد احراز هویت مستقل و اعطای مجوز عملیات واقعی برای دو درخواست متوالی.
- درگاه بیوضعیت MCP و پذیرش در رجیستریخروجی: پذیرش یا رد یک گزینهی ریجستری بر اساس توصیفکنندهی تغییرناپذیر، منشأ و سندیت و شواهد خطمشی. یک ردگیری محاسبات در گیتوی که مسیریابی قطعی، مجوز در سطح درخواست و دقیقاً همان اسنپشات خطمشی استفادهشده را ثبت میکند.
- قراردادها و محتوای ابزار در پروتکل MCPخروجی: توصیفکنندهی ابزاری که پذیرش آن صرفاً پس از انطباق کامل اسکیما، حاشیهنویسیها، نگاشتهای هدر بستر انتقال و پایاهای بلوک محتوا صورت میگیرد. یک ردگیری با دادههای حساس پاکسازیشده در مرز HTTP که کدگذاری پارامتر-هدر و مقایسهی دقیق هدر با بدنه را پیش از ارسال اثبات میکند.
- قابلیت اطمینان، لغو عملیات و کنترل جریان داده در MCPخروجی: چهار چینش قطعی از لغو، تکمیل، مهلت زمانی (deadline) و قطع اتصال بدون تکیه بر هماهنگی مبتنی بر توقف موقت (sleep). دقیقاً یک خروجی نهایی برای هر درخواست، رفتار محدود صف و مدیریت رخدادهای دیرهنگام برای تمامی شرایط رقابتی.
- امنیت زنجیره تأمین در رجیستری MCP: پذیرش، انحراف و بازگردانیخروجی: یک مورد تداخل فضای نام و دریفت توصیفکننده که پیش از انتشار در ریجستری رد شده است. تصمیمگیری برای تغییر وضعیت و بازگشت به عقب، پیوندخورده به هویت دستسازهی تغییرناپذیر، منشأ و سندیت و شواهد خطمشی.
- مهندسی انطباق با پروتکل MCP: نسخهبندی، شواهد و فرآیند انتشارخروجی: ماتریس انطباق با استاندارد که دورهی پروتکل، رفتار فیلدهای افزوده، دگرگونی SDK و حفظ پروکسی را در هر مرز ثبت میکند. تصمیم انتشار مبتنی بر متن ارتباطات استانداردشدهی بستر انتقال، تستهای قطعی و یک گزارش شکست صریح برای تمامی موارد ردشده.