در حال حاضر، چشم انداز Agent های هوش مصنوعی به سرعت در حال تغییر است و نیازمند روش های پیچیده تری برای تعامل این Agent ها با ابزارها و داده های خارجی است. در گذشته، ادغام مدل های زبانی بزرگ (LLM) با ابزارهای خارجی یک فرایند پیچیده و تکه تکه بود. در حال حاضر، پروتکل Model Context (MCP) به عنوان یک راه حل تحول آفرین ظهور کرده است. MCP یک رویکرد استاندارد، ساده و مقاوم در برابر آینده برای فراخوانی ابزار Agent هوش مصنوعی در مدل های مختلف ارائه می دهد و راه را برای گردش کار مقیاس پذیر، ایمن و قابل تعامل هموار می کند.
چالش های یکپارچه سازی سنتی AI-Tool
قبل از ظهور MCP، مدل های زبانی بزرگ (LLM) برای دسترسی به ابزارهای خارجی به ادغام های ویژه و مخصوص مدل متکی بودند. رویکردهایی مانند ReAct، Toolformer، LangChain و LlamaIndex و Auto-GPT، در حالی که نوآورانه بودند، منجر به پایگاه های کد تکه تکه و دشوار برای نگهداری شدند. هر منبع داده یا API جدید به Wrapper خود نیاز داشت و Agent باید به طور خاص برای استفاده از آن آموزش می دید. این رویکرد گردش کار منزوی و غیر استاندارد را تحمیل می کرد و نیاز به یک راه حل واحد را برجسته می کرد.
- ادغام های ویژه: مدل های زبانی بزرگ (LLM) به طور سنتی از ادغام های سفارشی و مخصوص مدل برای دسترسی به ابزارهای خارجی استفاده می کردند.
- پایگاه های کد تکه تکه: هر منبع داده یا API جدید Wrapper خود را ضروری می کرد و در نتیجه کد پیچیده و دشوار برای نگهداری ایجاد می شد.
- گردش کارهای غیر استاندارد: گردش کارهای منزوی دستیابی به یکپارچه سازی یکپارچه در مدل ها و ابزارهای مختلف را دشوار می کرد.
معرفی پروتکل Model Context (MCP)
پروتکل Model Context (MCP) نحوه کشف و فراخوانی Agent های هوش مصنوعی از ابزارها و منابع داده خارجی را استاندارد می کند. MCP یک پروتکل باز است که یک لایه API مبتنی بر JSON-RPC مشترک بین میزبان های LLM و سرورها را تعریف می کند. MCP به عنوان یک "پورت USB-C برای برنامه های هوش مصنوعی" عمل می کند و یک رابط جهانی ارائه می دهد که هر مدلی می تواند از آن برای دسترسی به ابزارها استفاده کند. این امر اتصالات ایمن و دو طرفه بین منابع داده یک سازمان و ابزارهای مبتنی بر هوش مصنوعی را فعال می کند و جایگزین کانکتورهای تکه تکه گذشته می شود.
مزایای کلیدی MCP
- جدا کردن مدل از ابزارها: Agent ها می توانند بدون نیاز به اعلان های خاص مدل یا فراخوانی توابع سخت کدگذاری شده، به سرورهای MCP متصل شوند.
- رابط استاندارد: MCP یک رابط مشترک برای دسترسی مدل ها به ابزارها ارائه می دهد و فرایند یکپارچه سازی را ساده می کند.
- اتصالات امن: اتصالات ایمن و دو طرفه بین منابع داده و ابزارهای مبتنی بر هوش مصنوعی را امکان پذیر می کند.
- دسترسی جهانی: هر مدلی می تواند از MCP برای دسترسی به ابزارها استفاده کند و آن را به یک راه حل متنوع تبدیل می کند.
به جای نوشتن اعلان های خاص مدل یا سخت کدگذاری فراخوانی توابع، یک Agent به سادگی به یک یا چند سرور MCP متصل می شود که هر کدام داده ها یا قابلیت ها را به روشی استاندارد در معرض دید قرار می دهند. Agent (یا میزبان) لیستی از ابزارهای موجود، از جمله نام، توضیحات و طرحواره های ورودی/خروجی، را از سرور بازیابی می کند. سپس مدل می تواند هر ابزاری را با نام فراخوانی کند. این استانداردسازی و استفاده مجدد مزایای اصلی نسبت به رویکردهای قبلی است.
نقش های اصلی تعریف شده توسط MCP
مشخصات باز MCP سه نقش اصلی را تعریف می کند: میزبان، مشتری و سرور.
- میزبان: برنامه LLM یا رابط کاربری (به عنوان مثال، یک UI چت، IDE یا موتور ارکستراسیون Agent) که کاربر با آن تعامل دارد. میزبان LLM را تعبیه می کند و به عنوان یک مشتری MCP عمل می کند.
- مشتری: ماژول نرم افزاری در داخل میزبان که پروتکل MCP را پیاده سازی می کند (به طور معمول از طریق SDK). مشتری پیام رسانی، احراز هویت و Marshal کردن اعلان ها و پاسخ های مدل را مدیریت می کند.
- سرور: سرویسی (محلی یا از راه دور) که زمینه و ابزارها را فراهم می کند. هر سرور MCP ممکن است یک پایگاه داده، API، پایگاه کد یا سیستم دیگری را Wrapper کند و قابلیت های خود را به مشتری تبلیغ می کند.
MCP به صراحت از پروتکل سرور زبان (LSP) مورد استفاده در IDE الهام گرفته شده است: همانطور که LSP نحوه پرس و جوی ویرایشگرها از ویژگی های زبان را استاندارد می کند، MCP نحوه پرس و جوی LLM از ابزارهای زمینه ای را استاندارد می کند. با استفاده از یک فرمت پیام JSON-RPC 2.0 مشترک، هر مشتری و سروری که از MCP پیروی می کند می تواند بدون در نظر گرفتن زبان برنامه نویسی یا LLM مورد استفاده، با یکدیگر تعامل داشته باشند.
طراحی و معماری فنی
MCP برای انتقال سه نوع پیام به JSON-RPC 2.0 متکی است: درخواست ها، پاسخ ها و اعلان ها، که به Agent ها اجازه می دهد هم فراخوانی ابزار همزمان را انجام دهند و هم به روز رسانی های ناهمزمان را دریافت کنند. در استقرارهای محلی، مشتری اغلب یک زیر فرآیند ایجاد می کند و از طریق stdin/stdout (انتقال stdio) ارتباط برقرار می کند. در مقابل، سرورهای از راه دور به طور معمول از HTTP با رویدادهای ارسال شده از سرور (SSE) برای پخش پیام ها در زمان واقعی استفاده می کنند. این لایه پیام رسانی انعطاف پذیر تضمین می کند که ابزارها می توانند فراخوانی شوند و نتایج بدون مسدود کردن گردش کار اصلی برنامه میزبان ارائه شوند.
هر سرور سه نهاد استاندارد را در معرض دید قرار می دهد: منابع، ابزارها و اعلان ها.
- منابع: قطعات زمینه قابل واکشی، مانند فایل های متنی، جداول پایگاه داده یا اسناد ذخیره شده، که مشتری می تواند با شناسه بازیابی کند.
- ابزارها: توابع نامگذاری شده با طرحواره های ورودی و خروجی به خوبی تعریف شده، خواه API جستجو باشد، یک ماشین حساب یا یک روال پردازش داده سفارشی.
- اعلان ها: الگوها یا گردش کارهای اختیاری و سطح بالاتر که مدل را از طریق تعاملات چند مرحله ای راهنمایی می کنند.
با ارائه طرحواره های JSON برای هر نهاد، MCP هر مدل زبانی بزرگ (LLM) توانمند را قادر می سازد تا این قابلیت ها را بدون نیاز به تجزیه سفارشی یا ادغام های سخت کدگذاری شده تفسیر و فراخوانی کند.
طراحی مدولار
معماری MCP نگرانی ها را به طور واضح در سه نقش جدا می کند. میزبان LLM را تعبیه می کند و جریان مکالمه را ارکستر می کند، پرس و جوهای کاربر را به مدل منتقل می کند و خروجی های آن را مدیریت می کند. مشتری خود پروتکل MCP را پیاده سازی می کند و تمام جزئیات Marshal پیام، احراز هویت و انتقال را مدیریت می کند. سرور منابع و ابزارهای موجود را تبلیغ می کند، درخواست های ورودی را اجرا می کند (به عنوان مثال، فهرست کردن ابزارها یا انجام یک پرس و جو) و نتایج ساختاریافته را برمی گرداند. این طراحی مدولار، شامل هوش مصنوعی و رابط کاربری در میزبان، منطق پروتکل در مشتری و اجرا در سرور، تضمین می کند که سیستم ها قابل نگهداری، توسعه پذیر و آسان برای تکامل باقی می مانند.
مدل تعامل و گردش کار Agent
استفاده از MCP در یک Agent از یک الگوی ساده کشف و اجرا پیروی می کند. هنگامی که Agent به یک سرور MCP متصل می شود، ابتدا متد list_tools()
را برای بازیابی تمام ابزارها و منابع موجود فراخوانی می کند. سپس مشتری این توضیحات را در زمینه LLM ادغام می کند (به عنوان مثال، با قالب بندی آنها در اعلان). اکنون مدل می داند که این ابزارها وجود دارند و چه پارامترهایی را می گیرند.
گردش کار ساده شده
- کشف: Agent به یک سرور MCP متصل می شود و لیستی از ابزارها و منابع موجود را با استفاده از متد
list_tools()
بازیابی می کند. - یکپارچه سازی: مشتری این توضیحات را در زمینه LLM ادغام می کند.
- اجرا: هنگامی که Agent تصمیم می گیرد از یک ابزار استفاده کند، LLM یک فراخوانی ساختاریافته را منتشر می کند (به عنوان مثال، یک شی JSON با
call: tool_name, args: {...}
). - فراخوانی: میزبان این را به عنوان یک فراخوانی ابزار تشخیص می دهد و مشتری یک درخواست
call_tool()
مربوطه را به سرور صادر می کند. - پاسخ: سرور ابزار را اجرا می کند و نتیجه را برمی گرداند. سپس مشتری این نتیجه را به اعلان بعدی مدل وارد می کند و آن را به عنوان زمینه اضافی نشان می دهد.
هنگامی که Agent تصمیم می گیرد از یک ابزار استفاده کند (اغلب با پرس و جوی کاربر تحریک می شود)، LLM یک فراخوانی ساختاریافته را منتشر می کند (به عنوان مثال، یک شی JSON با \"call\": \"tool_name\", \"args\": {…}
). میزبان این را به عنوان یک فراخوانی ابزار تشخیص می دهد و مشتری یک درخواست call_tool()
مربوطه را به سرور صادر می کند. سرور ابزار را اجرا می کند و نتیجه را برمی گرداند. سپس مشتری این نتیجه را به اعلان بعدی مدل وارد می کند و آن را به عنوان زمینه اضافی نشان می دهد. این پروتکل به طور شفاف حلقه کشف→اعلان→ابزار→پاسخ را مدیریت می کند.
پیاده سازی ها و اکوسیستم
MCP از پیاده سازی آگنوستیک است. مشخصات رسمی در GitHub نگهداری می شود و SDK های زبان متعدد از جمله TypeScript، Python، Java، Kotlin و C# در دسترس هستند. توسعه دهندگان می توانند مشتریان یا سرورهای MCP را در پشته دلخواه خود بنویسند. به عنوان مثال، SDK های OpenAI Agents شامل کلاس هایی است که اتصال آسان به سرورهای استاندارد MCP را از Python فعال می کند. آموزش InfraCloud راه اندازی یک سرور MCP مبتنی بر Node.js را نشان می دهد تا به LLM اجازه دهد فایل های محلی را مرور کند.
اکوسیستم رو به رشد
- SDK های زبان: در TypeScript، Python، Java، Kotlin و C# موجود است.
- سرورهای منبع باز: Anthropic کانکتورهایی را برای بسیاری از سرویس های محبوب از جمله Google Drive، Slack، GitHub، Postgres، MongoDB و مرور وب با Puppeteer منتشر کرده است.
- پلتفرم های یکپارچه: Claude Desktop، Agent Development Kit Google و SDK Agents Cloudflare از MCP پشتیبانی می کنند.
- Auto-Agent ها: Auto-GPT می تواند به MCP متصل شود و کشف و استفاده از ابزار پویا را فعال کند.
هنگامی که یک تیم یک سرور برای Jira یا Salesforce می سازد، هر Agent سازگار می تواند بدون بازنگری از آن استفاده کند. در سمت مشتری/میزبان، بسیاری از پلتفرم های Agent از MCP پشتیبانی می کنند. Claude Desktop می تواند به سرورهای MCP متصل شود. Agent Development Kit Google سرورهای MCP را به عنوان ارائه دهندگان ابزار برای مدل های Gemini در نظر می گیرد. SDK Agents Cloudflare یک کلاس McpAgent اضافه کرد تا هر FogLAMP بتواند با پشتیبانی داخلی auth به یک مشتری MCP تبدیل شود. حتی Auto-Agent ها مانند Auto-GPT می توانند به MCP متصل شوند: به جای کدنویسی یک تابع خاص برای هر API، Agent از یک کتابخانه مشتری MCP برای فراخوانی ابزارها استفاده می کند. این روند به سمت کانکتورهای جهانی نوید یک معماری Agent خودمختار مدولارتر را می دهد.
در عمل، این اکوسیستم هر دستیار هوش مصنوعی داده شده را قادر می سازد تا به طور همزمان به منابع داده متعدد متصل شود. می توان Agent را تصور کرد که در یک جلسه از یک سرور MCP برای اسناد شرکت استفاده می کند، دیگری برای پرس و جوهای CRM و دیگری برای جستجوی فایل در دستگاه. MCP حتی برخورد نام را به خوبی مدیریت می کند: اگر دو سرور هر کدام ابزاری به نام 'analyze' داشته باشند، مشتریان می توانند آنها را نامگذاری کنند (به عنوان مثال، 'ImageServer.analyze' در مقابل 'CodeServer.analyze') تا هر دو بدون تضاد در دسترس باقی بمانند.
مزایای نسبت به الگوهای قبلی
MCP چندین مزیت کلیدی را به ارمغان می آورد که روش های قبلی فاقد آن هستند:
- یکپارچه سازی استاندارد: MCP یک پروتکل واحد برای همه ابزارها ارائه می دهد.
- کشف ابزار پویا: Agent ها می توانند ابزارها را در زمان اجرا کشف کنند.
- قابلیت همکاری و استفاده مجدد: همان سرور ابزار می تواند به چندین مشتری LLM خدمت کند.
- مقیاس پذیری و نگهداری: MCP به طور چشمگیری کار تکراری را کاهش می دهد.
- اکوسیستم قابل ترکیب: MCP یک بازار از سرورهای توسعه یافته مستقل را فعال می کند.
- امنیت و کنترل: این پروتکل از جریان های مجوز روشن پشتیبانی می کند.
خلاصه مزایای کلیدی
- پروتکل یکپارچه: MCP یک پروتکل واحد و استاندارد را برای همه ابزارها ارائه می دهد، توسعه را ساده می کند و نیاز به منطق تجزیه سفارشی را از بین می برد.
- کشف زمان اجرا: Agent ها می توانند به طور پویا قابلیت های موجود را کشف کنند، و نیاز به راه اندازی مجدد یا برنامه ریزی مجدد را هنگام اضافه شدن ابزارهای جدید از بین می برند.
- مدل آگنوستیک: MCP به همان سرور ابزار اجازه می دهد تا به چندین مشتری LLM خدمت کند، از قفل شدن فروشنده جلوگیری می کند و تلاش های مهندسی تکراری را کاهش می دهد.
- کاهش تکرار: توسعه دهندگان می توانند یک سرور MCP واحد را برای کارهایی مانند جستجوی فایل بنویسند و به همه Agent ها در همه مدل ها سود برسانند.
- اکوسیستم باز: MCP یک بازار باز از کانکتورها را تشویق می کند، شبیه به API های وب.
- جریان های مجوز: MCP از جریان های مجوز روشن پشتیبانی می کند و در مقایسه با اعلان رایگان، قابلیت ممیزی و امنیت را افزایش می دهد.
تأثیر صنعت و برنامه های کاربردی دنیای واقعی
پذیرش MCP به سرعت در حال رشد است. فروشندگان و چارچوب های بزرگ به طور علنی در MCP یا استانداردهای Agent مرتبط سرمایه گذاری کرده اند. سازمان ها در حال بررسی MCP برای ادغام سیستم های داخلی، مانند CRM، پایگاه های دانش و پلتفرم های تجزیه و تحلیل، در دستیارهای هوش مصنوعی هستند.
موارد استفاده بتن
- ابزارهای توسعه دهنده: ویرایشگرهای کد و پلتفرم های جستجو از MCP برای فعال کردن دستیاران برای پرس و جو از مخازن کد، مستندات و تاریخچه commit استفاده می کنند.
- دانش سازمانی و Chatbot ها: ربات های میز کمک می توانند از طریق سرورهای MCP به داده های Zendesk یا SAP دسترسی داشته باشند، به سؤالات مربوط به بلیط های باز پاسخ دهند یا گزارش ها را بر اساس داده های سازمانی در زمان واقعی تولید کنند.
- تولید افزایش یافته بازیابی پیشرفته: Agent های RAG می توانند بازیابی مبتنی بر جاسازی را با ابزارهای تخصصی MCP برای پرس و جوهای پایگاه داده یا جستجوهای نمودار ترکیب کنند.
- دستیارهای فعال: Agent های مبتنی بر رویداد ایمیل یا جریان های وظیفه را نظارت می کنند و به طور خودکار جلسات را برنامه ریزی می کنند یا موارد اقدام را با فراخوانی ابزارهای تقویم و یادداشت برداری از طریق MCP خلاصه می کنند.
در هر سناریو، MCP Agent ها را قادر می سازد تا بدون نیاز به بازنویسی کد یکپارچه سازی، در سیستم های متنوع مقیاس شوند و راه حل های هوش مصنوعی قابل نگهداری، ایمن و قابل تعامل را ارائه دهند.
مقایسه با الگوهای قبلی
MCP رویکردهای قبلی را متحد و گسترش می دهد و کشف پویا، طرحواره های استاندارد و قابلیت همکاری متقابل مدل را در یک پروتکل واحد ارائه می دهد.
- در مقابل ReAct: MCP یک رابط رسمی با استفاده از طرحواره های JSON به مدل ارائه می دهد و مشتریان را قادر می سازد تا اجرا را به طور یکپارچه مدیریت کنند.
- در مقابل Toolformer: MCP رابط های ابزار را به طور کامل از مدل خارجی می کند و پشتیبانی صفر شات را برای هر ابزار ثبت شده بدون آموزش مجدد فعال می کند.
- در مقابل کتابخانه های چارچوب: MCP منطق یکپارچه سازی را به یک پروتکل قابل استفاده مجدد تغییر می دهد، Agent ها را انعطاف پذیرتر می کند و تکرار کد را کاهش می دهد.
- در مقابل Agent های خودمختار: با استفاده از مشتریان MCP، چنین Agent هایی به هیچ کد سفارشی برای سرویس های جدید نیاز ندارند، در عوض به کشف پویا و فراخوانی JSON-RPC متکی هستند.
- در مقابل API های فراخوانی تابع: MCP فراخوانی تابع را در هر مشتری و سرور، با پشتیبانی از پخش، کشف و سرویس های چندگانه تعمیم می دهد.
محدودیت ها و چالش ها
علیرغم وعده ای که MCP دارد، هنوز در حال بلوغ است:
- احراز هویت و مجوز: راه حل های فعلی نیاز به لایه بندی OAuth یا کلیدهای API به صورت خارجی دارند، که می تواند استقرار را بدون یک استاندارد auth یکپارچه پیچیده کند.
- گردش کارهای چند مرحله ای: ارکستر کردن گردش کارهای طولانی مدت و حالت دار اغلب هنوز به زمانبندهای خارجی یا زنجیره اعلان متکی است، زیرا پروتکل فاقد مفهوم جلسه داخلی است.
- کشف در مقیاس: مدیریت بسیاری از نقاط پایانی سرور MCP می تواند در محیط های بزرگ سنگین باشد.
- بلوغ اکوسیستم: MCP جدید است، بنابراین هر ابزار یا منبع داده ای کانکتور موجود ندارد.
- هزینه سربار توسعه: برای فراخوانی ابزار ساده و واحد، راه اندازی MCP در مقایسه با فراخوانی مستقیم API سریع می تواند سنگین به نظر برسد.