اگر همین حالا در حال توسعه ابزارهای متصل به مدلهای زبانی هستید، احتمالاً متوجه شدهاید که فاصله زیادی میان «مستندات رسمی» و «واقعیت اجرا» وجود دارد. استقرار یک سرور MCP از راه دور به ندرت به سادگیِ دنبال کردن مشخصات فنی است. طبق گزارش منتشر شده در ۱۵ اوت ۲۰۲۶، تیم ClearBounce — سرویس پشت یک ابزار جدید تأیید ایمیل برای هوش مصنوعی — دریافت که پیچیدهترین چالشهای استقرار سرورهای پروتکل زمینهٔ مدل (MCP) در «نقاط خاکستری» نهفته است؛ یعنی جایی که کلاینتها و دایرکتوریها بر سر نحوه پیادهسازی با یکدیگر اختلاف نظر دارند. این تیم چهار نقطه شکست اصلی را شناسایی کرد که میتواند باعث خرابی خاموش یکپارچگی در محیط عملیاتی شود.
زمینه (Context)
برای توسعهدهندگان، پروتکل زمینه مدل (MCP) به دستیاران هوش مصنوعی اجازه میدهد تا با دادهها و ابزارهای خارجی تعامل داشته باشند. اگرچه این پروتکل برای ایجاد قابلیت همکاری (Interoperability) طراحی شده است، اما اکوسیستم واقعی آن تکهتکه است. این وضعیت را شبیه به ساختن دری تصور کنید که طبق تمام قوانین معماری ساخته شده است، اما متوجه میشوید کلیدهایی که توسط محبوبترین تولیدکنندگان قفل ارائه شدهاند، کمی شکل متفاوتی دارند و در قفل نمیخورند.
از آنجا که این پروتکل هنوز در حال تکامل است، توسعهدهندگان اغلب درمییابند که مستندات رسمی، حرف آخر نیستند. نحوه پیادهسازی بین کلاینتهای بزرگی مانند Claude، ChatGPT و Cursor متفاوت است و دایرکتوریهایی که این سرورها را فهرست (Index) میکنند، اغلب الزامات متضاد خود را دارند.
نخستین تله بزرگ، مذاکره بر سر نسخه پروتکل است. Claude Code اگر سرور نسخهای جدیدتر از آنچه کلاینت انتظار دارد بازگرداند، از اتصال امتناع میکند. برای مثال، بازگرداندن نسخهای مانند 2026-07-28 میتواند باعث شود کلاینت با خطای «نسخه پروتکل سرور پشتیبانی نمیشود» (Server's protocol version is not supported) ارتباط را قطع کند.
به جای تبلیغ آخرین نسخه پشتیبانی شده، توسعهدهندگان باید دقیقاً همان نسخهای را که کلاینت در فیلد params.protocolVersion درخواست کرده است، بازگردانند (Echo کنند). تیم ClearBounce توصیه میکند هر نسخهای را که کلاینت در قالب یک تاریخ معقول درخواست میکند بپذیرید و همان را بازگردانید؛ یعنی این فرآیند را به جای «تبلیغ قابلیتها»، به عنوان یک «مذاکره محتوایی» (Content Negotiation) مدیریت کنید.
چالش دوم و گیجکنندهتر، شناسایی OAuth است. برای فعال شدن جریان اتصال حساب در claude.ai یا ChatGPT، سرور باید یک پاسخ ۴۰۱ (Unauthorized) را همراه با هدر WWW-Authenticate ارسال کند که به متادیتای منبع محافظتشده اشاره میکند (مثلاً https://example.com/.well-known/oauth-protected-resource/mcp). اگر سرور پاسخ ۴۰۳ (Forbidden) بدهد یا لیستی از ابزارها را به صورت ناشناس از طریق tools/list نمایش دهد، کلاینتها هرگز جریان OAuth را آغاز نخواهند کرد.
تناقض اینجاست که پیروی از این مشخصات فنی منجر به بررسیهای سلامت (Health Checks) متناقض میشود. اسکنرِ یک دایرکتوری، سروری را که پاسخ ۴۰۱ میدهد به عنوان «ناسالم» (Unhealthy) علامت میزند، در حالی که دایرکتوری دیگر دقیقاً همین پاسخ را برای شناسایی OAuth الزامی میداند. در نتیجه، پیادهسازی از نظر فنی درست، منجر به دریافت یک «نشان قرمز» شکست در محیط عمومی میشود.
جزئیات (Details)
پایش این نقاط انتهایی (Endpoints) بسیار حیاتی است زیرا یک اکوسیستم نامرئی از خزندهها در حال فعالیت است. ClearBounce در اولین روز استقرار خود، حدود ۲۰۰ فراخوانی initialize بدون احراز هویت از کلاینتهای ناشناس ثبت کرد.
- اکوسیستم خزندهها: این تیم باتهایی مانند
mcpbeat 0.1،smithery-probe،agent-tools.cloud 0.1،zdi-well-wirer 1.0،agentic-resource-search 0.4،trimtab-verifier 0.1وglama-mcp-inspector 1.0.0را شناسایی کرد. - رفتار کاوشگرانه: برخی از این خزندهها حتی متدهای ناموجود (مانند
this/method/does/not/exist) را فراخوانی کردند تا بررسی کنند آیا مدیریت خطای سرور منطقی و سالم است یا خیر. - ابزار اندازهگیری: برای ردیابی این موارد، تیم یک جدول «ارسال و فراموش» (fire-and-forget) پیادهسازی کرد که برای هر درخواست JSON-RPC، مواردی چون متد، نام ابزار، نام کلاینت، نوع احراز هویت، وضعیت موفقیت/خطا و مدت زمان پاسخدهی را ثبت میکرد.
از آنجا که MCP بدون وضعیت (Stateless) است، تنها فراخوانی initialize حاوی اطلاعات کلاینت (clientInfo) است. برای شناسایی درخواستهای بعدی، تیم به جای استفاده از نامهای دوستانه که ممکن است منجر به خطاهای آماری شود، بر اولین توکن User-Agent (مثلاً claude-code/2.1.231) تکیه میکند. برای کاربرانی که از OAuth استفاده میکنند، افزودن Client ID به عنوان یک Claim در توکن دسترسی (Access Token)، امکان ردیابی را بدون نیاز به وضعیت نشست (Session State) فراهم میکند.
در نهایت، تیم یک شکست خاموش در Cursor شناسایی کرد. لینکهای نصب تککلیکی (Deeplink) — که از یک Payload کدگذاری شده با base64 شامل URL سرور استفاده میکنند — در نسخههای پایینتر از ۳.۱۵.۱۲ خراب هستند. کاربرانی که از نسخههای قدیمیتر استفاده میکنند، میبینند که پنل تنظیمات باز میشود، اما هیچ کارت نصبی ظاهر نمیشود و هیچ خطایی هم داده نمیشود. این موضوع باعث میشود یک باگ سمت کلاینت، شبیه به یک لینک سرور اشتباه یا بدساخت به نظر برسد.
برای بهبود تجربه توسعهدهندگان و سازگاری با اسکنرها، این تیم چندین اصلاحیه را پیشنهاد میکند:
- توضیحات ابزار (Tool Annotations): افزودن
outputSchemaو نشانههایی (Hints) مانندreadOnlyHint،destructiveHint،idempotentHintوopenWorldHintبه هر ابزار. - کاوش قابلیتها: آگاه باشید که
resources/listوprompts/listحتی اگر تعریف نشده باشند، مورد بررسی قرار میگیرند. اگرچه بازگرداندن کد خطای-32601طبق مشخصات فنی قانونی است، اما اغلب باعث ایجاد هشدار در لاگهای اسکنر میشود. - مدیریت هزینه: برای ابزارهایی که هزینه مالی دارند، حتماً یادداشتی در توضیحات ابزار بگنجانید. ابزار ClearBounce لیستی از کاندیداها را به همراه هزینه هر بررسی بازمیگرداند و به دستیار هوش مصنوعی دستور میدهد که موارد را یکییکی تأیید کند و در اولین نتیجه مناسب متوقف شود.
این تجربه، این فرض را که «پیروی از مشخصات MCP برای محیط عملیاتی کافی است» تغییر میدهد. این موضوع فاش میکند که بخش «سمت کلاینت» این پروتکل در حال حاضر یک هدف متحرک است و توسعهدهندگان باید به جای آخرین نسخه مستندات، برای «پایینترین مشترک» (Lowest Common Denominator) رفتار کلاینتها برنامهریزی کنند.
توسعهدهندگان اکنون باید کدهای خطای MCP و مدیریت نسخههای خود را بازبینی کنند تا سازگاری در تمامی IDEهای اصلی هوش مصنوعی تضمین شود. همچنین باید تغییرات نسخههای Cursor و Claude Code را به دقت دنبال کنند، زیرا این کلاینتها در حال حاضر محرکهای اصلی استاندارد پیادهسازی MCP هستند.
گام بعدی شما
- کدهای خطای سرور MCP خود را بازبینی کنید تا مطمئن شوید پاسخهای ۴۰۱ و ۴۰۳ با رفتار کلاینتهای هدف همخوانی دارد.
- در صورت استفاده از OAuth، متادیتای
protected-resourceرا در مسیر.well-knownبررسی کنید. - تغییرات نسخههای Cursor و Claude Code را دنبال کنید، زیرا این دو در حال حاضر استانداردهای عملیاتی MCP را تعریف میکنند.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو