MCP (Model Context Protocol) چیست؟
یک پروتکل باز و استاندارد برای اتصال مدلهای زبانی به ابزارها، دادهها و سرویسهای بیرونی — بدون نیاز به یکپارچهسازی اختصاصی برای هر ترکیب مدل/ابزار.
چرا مهم است؟
پیش از MCP، هر اپلیکیشن AI باید برای هر ابزار (فایلسیستم، دیتابیس، API داخلی) یک اتصال اختصاصی مینوشت و این اتصال با هر مدل/فریمورک دیگری سازگار نبود؛ MCP (معرفیشده توسط Anthropic و اکنون پشتیبانیشده توسط ابزارهایی مثل GitHub Copilot و Semantic Kernel) همان نقشی را ایفا میکند که HTTP برای وب یا LSP برای ادیتورهای کد ایفا کرد: یک استاندارد مشترک بهجای یکپارچهسازی جداگانه برای هر ترکیب.
تعریف
Model Context Protocol پروتکلی باز (بر پایه JSON-RPC) است که مشخص میکند یک «MCP Server» چطور قابلیتهای خودش (دسترسی به فایل، اجرای Query، فراخوانی API) را به شکل استاندارد در اختیار یک «MCP Client» (مثلاً یک IDE یا Agent) بگذارد، بدون اینکه Client از پیش چیزی درباره جزئیات پیادهسازی آن سرور بداند.
اجزای اصلی
- MCP Server: برنامهای که قابلیتهایش را طبق پروتکل MCP در معرض دید میگذارد (مثلاً یک سرور که به دیتابیس شرکت شما وصل است).
- MCP Client: میزبان مدل زبانی (IDE، Agent، چتبات) که به یک یا چند MCP Server وصل میشود.
- Tools: توابعی که مدل میتواند صدا بزند (مثل
search_orders). - Resources: دادههایی که بهعنوان Context در اختیار مدل قرار میگیرند (مثل محتوای یک فایل).
- Prompts: الگوهای آماده Prompt که سرور در اختیار Client میگذارد.
مقایسه با Function Calling ساده
| Function Calling ساده | MCP | |
|---|---|---|
| دامنه | یک اپلیکیشن، توابع Hard-codeشده در همان کد | استاندارد قابلاستفاده مجدد بین اپلیکیشنهای مختلف |
| کشف قابلیت | دستی، توسط توسعهدهنده | پویا — Client میتواند از Server بپرسد «چه ابزارهایی داری؟» |
| استفاده مجدد | برای هر مدل/فریمورک باید دوباره نوشته شود | یک MCP Server با هر Client سازگار با MCP کار میکند |
اشتباه رایج
❌ فکر کردن به MCP بهعنوان جایگزین Function Calling مدل — در واقع MCP لایهای بالای همان مفهوم Function Calling است که فقط نحوه کشف و اتصال ابزارها را استاندارد میکند، نه مکانیزم زیرین تصمیمگیری مدل.
منبع و مطالعه بیشتر
خلاصه
MCP یک پروتکل باز است که استاندارد میکند چطور مدلهای زبانی به ابزارها و دادههای بیرونی وصل شوند، تا هر ابزار فقط یکبار بهشکل MCP Server نوشته شود و با هر Client سازگار با MCP کار کند. این لایهای بالای Function Calling است، نه جایگزین آن. مرجع کامل: modelcontextprotocol.io.
