راهنمای بقا در نسخه کاندید انتشار MCP

نسخه کاندید انتشار MCP بزرگ‌ترین به‌روزرسانی از زمان راه‌اندازی این پروتکل است. این یک آزمون برای تمام کسانی است که در حال ساخت کلاینت‌ها (clients)، سرورها (servers) و ابزارها (tools) هستند. نسخه نهایی در ۲۸ جولای ۲۰۲۶ منتشر می‌شود. از این فرصت برای یافتن مشکلات مهاجرت استفاده کنید.

بزرگ‌ترین تغییر این است که MCP اکنون بدون وضعیت (stateless) است.

اگر پیاده‌سازی شما از session IDها یا مراحل مقداردهی اولیه (initialization) استفاده می‌کند، باید کد خود را تغییر دهید. اکنون هر درخواست، داده‌های مربوط به نسخه و قابلیت‌ها (capability) را در متادیتا (metadata) با خود حمل می‌کند.

این تغییر به زیرساخت کمک می‌کند. متعادل‌کننده‌های بار (Load balancers) می‌توانند درخواست‌ها را به هر نمونه از سرور (server instance) ارسال کنند. آن‌ها نیازی به باز نگه داشتن اتصال به یک سرور خاص ندارند.

نحوه مدیریت وضعیت:

  • وضعیت را در اتصال (connection) پنهان نکنید.
  • وضعیت را به یک هندل اپلیکیشن (application handle) منتقل کنید.
  • اجازه دهید یک ابزار، شناسه‌ای مانند basket_id را برگرداند.
  • مدل می‌تواند این شناسه را در فراخوانی بعدی بازگرداند.

درخواست‌های شروع‌شده توسط سرور نیز تغییر کرده‌اند. یک سرور تنها زمانی می‌تواند درخواستی را شروع کند که در حال پردازش یک فراخوانی کلاینت باشد. اگر سرور به اطلاعات بیشتری نیاز داشته باشد، یک InputRequiredResult برمی‌گرداند. سپس کلاینت فراخوانی را با داده‌های جدید دوباره تلاش می‌کند.

اپلیکیشن‌های MCP از راه رسیدند. سرورها اکنون می‌توانند رابط‌های کاربری HTML ارائه دهند. میزبان‌ها (Hosts) این رابط‌ها را در iframes ایزوله (sandboxed) رندر می‌کنند. این امر تجربه کاربری را بهبود می‌بخشد اما نیازمند امنیت سخت‌گیرانه است.

احراز هویت (Authorization) اکنون سخت‌گیرانه‌تر شده است.

  • از OAuth 2.0 و OpenID Connect استفاده کنید.
  • کلاینت‌ها باید پارامتر issuer را اعتبارسنجی کنند.
  • سرورهای احراز هویت اکنون باید پارامتر issuer را ارسال کنند.

موارد منسوخ‌شده‌ای که باید مراقب آن‌ها باشید:

  • موارد Roots، Sampling و Logging منسوخ شده‌اند.
  • آن‌ها فعلاً همچنان کار می‌کنند، اما در پروژه‌های جدید از آن‌ها استفاده نکنید.
  • Roots را به پارامترهای ابزار (tool parameters) منتقل کنید.
  • Sampling را به APIهای مستقیم ارائه‌دهنده مدل (model provider APIs) منتقل کنید.
  • Logging را به OpenTelemetry یا stderr منتقل کنید.

به‌روزرسانی‌های اسکیما (Schema):

  • اسکیماهای ابزار اکنون از JSON Schema 2020-12 کامل استفاده می‌کنند.
  • می‌توانید از منطق‌های پیچیده‌ای مانند oneOf یا anyOf استفاده کنید.
  • سرورها باید برای جلوگیری از خطا، عمق اسکیما را محدود کنند.
  • مدیریت خطای خود را به‌روز کنید. خطای نبودِ منبع (missing resource error) اکنون از کد استاندارد JSON-RPC یعنی -32602 استفاده می‌کند.

اگر مشکلی پیدا کردید، یک Issue در مخزن مشخصات (specification repository) باز کنید یا در کانال مشارکت‌کنندگان Discord سوال بپرسید.

منبع: https://dev.to/bengreenberg/the-mcp-release-candidate-survival-guide-apps-auth-deprecations-and-tool-schemas-5da2

انجمن یادگیری اختیاری: https://t.me/GyaanSetuAi