تصویر تولید شده با Ideogram
تصویر تولید شده با Ideogram

پروتکل زمینه مدل (MCP) چیست؟

در هفته‌های اخیر، بحث‌های زیادی پیرامون پروتکل زمینه مدل (Model Context Protocol یا MCP) شکل گرفته است. شرکت Anthropic در نوامبر ۲۰۲۴ آن را معرفی کرد به عنوان یک استاندارد متن‌باز برای اتصال مدل‌های زبانی بزرگ (LLM) به منابع و ابزارهای خارجی. از آن زمان، صدها پروژه بر پایه MCP ساخته شده‌اند، OpenAI در مارس ۲۰۲۵ آن را پذیرفت، و هیجان زیادی پیرامون کارهایی که می‌تواند برای برنامه‌های کاربردی LLM، به ویژه برای عامل‌های هوش مصنوعی، انجام دهد، وجود دارد.

اما MCP چیست و چگونه می‌توانید برنامه‌ها و زیرساخت‌های خود را برای چارچوب‌های عاملی (agentic) آماده کنید؟

چرا MCP؟

مدل‌های زبانی بزرگ (LLM) به تنهایی فقط می‌توانند به عنوان ماشین‌های اطلاعاتی عمل کنند که بر اساس دانشی که در طول آموزش به دست آورده‌اند، به درخواست‌ها (prompts) پاسخ می‌دهند. این برای بسیاری از وظایف بسیار مفید است، اما زمانی که می‌خواهید برنامه‌های کاربردی LLM بسازید که باید به اطلاعات خارجی تکیه کنند یا در محیط خود اقداماتی انجام دهند، محدودیت دارد.

قبل از MCP، رویکردهای موقتی (ad-hoc) زیادی برای یکپارچه‌سازی اطلاعات و ابزارها در LLMها وجود داشت. به عنوان مثال، اگر می‌خواستید مدل شما با Google Drive یا پایگاه داده‌تان تعامل داشته باشد، باید کد و منطق لازم برای فراخوانی API، استخراج اطلاعات و افزودن آن به زمینه (context) مدل را می‌نوشتید. اگر می‌خواستید ابزار دیگری، مثلاً یک قابلیت جستجوی وب، اضافه کنید، باید دوباره کد را بررسی می‌کردید، یکپارچه‌سازی‌ها را انجام می‌دادید و منطق تصمیم‌گیری در مورد زمان استفاده از Google Drive، جستجو یا هر دو را تغییر می‌دادید.

ایده پشت MCP ساده‌سازی رابط بین LLM و ابزارهای خارجی است. MCP به عنوان یک لایه انتزاعی عمل می‌کند که به مدل کمک می‌کند تا ابزارهای خارجی و عملکرد آن‌ها را کشف کند. در زمان استنتاج (inference)، مدل به طور خودکار تصمیم می‌گیرد که بر اساس درخواست و زمینه خود از کدام ابزارها استفاده کند.

به عنوان مثال، ممکن است از طریق MCP به LLM دسترسی به یک موتور جستجو، یک API برای قیمت سهام و یک ماشین حساب داده شود. کاربر ممکن است از مدل بخواهد سود حاصل از سرمایه‌گذاری در ۱۰ سهم برتر از ابتدای سال را محاسبه کند. سپس مدل تصمیم می‌گیرد که ۱) باید لیستی از سهام‌های برتر از ژانویه تا مارس را دریافت کند، ۲) اطلاعات قیمت آن سهام را از ابتدای سال به دست آورد، و ۳) تفاوت بین قیمت سهام از اول ژانویه تا آخرین تاریخ را محاسبه کند. بر اساس این استدلال، از موتور جستجو برای انجام (۱)، از آن اطلاعات برای فراخوانی API سهام و انجام (۲)، و از ماشین حساب برای مقایسه قیمت سهام و انجام (۳) استفاده خواهد کرد.

مثال پروتکل زمینه مدل
مثال MCP

بدون MCP، توسعه‌دهنده باید روش‌های مختلفی را که کاربر ممکن است مدل را درخواست کند، از پیش تعیین می‌کرد و جریان‌های برنامه ثابتی را برای رسیدگی به آن موارد استفاده ایجاد می‌کرد. با MCP، شما لیستی از ابزارها و مشخصات آنها را به LLM ارائه می‌دهید و اجازه می‌دهید مدل بر اساس درخواست کاربر تصمیم بگیرد که از کدام یک و به چه ترتیبی استفاده کند. این رویکرد بسیار انعطاف‌پذیرتر است و امکان ترکیب ابزارها به روش‌های بی‌شمار را بدون نیاز به منطق برنامه‌نویسی ثابت فراهم می‌کند.

این امر به لطف پیشرفت در مدل‌های استدلال بزرگ (LRM) که می‌توانند قبل از تولید پاسخ به درخواست کاربر، «فکر» و برنامه‌ریزی کنند، به طور فزاینده‌ای امکان‌پذیر شده است. LRMها برای انتخاب و استفاده از ابزارها در زمان استنتاج بسیار مجهزتر هستند.

اجزای MCP چه هستند؟

پروتکل زمینه مدل
اجزای پروتکل زمینه مدل (MCP) (منبع: Anthropic)

برای اینکه MCP به درستی کار کند، چندین عنصر باید هماهنگ شوند:

سرور MCP: این یک برنامه کاربردی است که ویژگی‌های ابزارهای خارجی را از طریق پروتکل MCP در معرض دید قرار می‌دهد. به عنوان مثال، می‌توانید یک سرور MCP برای یک موتور جستجو داشته باشید که یک تابع جستجو را ارائه می‌دهد که پرس‌وجو و تعداد نتایج دلخواه را به عنوان ورودی می‌گیرد. این سرور پرس‌وجو را به API موتور جستجو (مانند Google Search یا Brave Search) ارسال می‌کند و نتایج را به صورت یک بلوک داده فرمت‌بندی شده برمی‌گرداند.

کلاینت MCP: این یک برنامه کاربردی است که LLM را به سرورهای MCP متصل می‌کند. بهترین مثال، برنامه دسکتاپ Claude است که یک فایل تنظیمات دارد که در آن می‌توانید اطلاعات سرورهای MCP را که مدل می‌تواند در طول استنتاج به آنها دسترسی داشته باشد، ثبت کنید. این برنامه به طور خودکار توضیحات ابزار را به درخواست‌های شما اضافه می‌کند و پاسخ‌های مدل را تجزیه می‌کند تا تصمیم بگیرد کدام یک نیاز به ارسال درخواست به سرورهای MCP دارند. همچنین، می‌توانید کلاینت‌های MCP خود را ایجاد کنید که LLMها را به سرورها متصل می‌کنند.

دو جزء دیگر چرخه MCP، خود LLM و ابزارها هستند. LLM می‌تواند یک مدل مبتنی بر API مانند Claude یا سری GPT باشد، یا می‌تواند یک مدل متن‌باز باشد که روی دستگاه یا سرور محلی شما میزبانی می‌شود. ابزارها نیز می‌توانند روی رایانه شخصی شما (مانند سیستم فایل محلی، مرورگر، پایگاه داده محلی) یا در یک سرور آنلاین (مانند موتور جستجو، پایگاه داده مبتنی بر ابر، GitHub، Slack) میزبانی شوند.

MCP از مکانیزم‌های انتقال مختلفی پشتیبانی می‌کند، از جمله STDIO (ورودی/خروجی استاندارد) برای فرآیندهای محلی و HTTP با رویدادهای ارسال شده توسط سرور (SSE) برای ارتباطات مبتنی بر وب، که انعطاف‌پذیری را در سناریوهای مختلف استقرار ارائه می‌دهد.