Model Context Protocol (MCP): استاندارد باز در حال تبدیل شدن به USB-C یکپارچهسازی ابزارهای هوش مصنوعی

هر توسعهدهندهای که تلاش کرده است یک برنامه کاربردی هوش مصنوعی مفید بسازد، با مشکل مشابهی مواجه شده است: مدلهای زبانی بزرگ در استدلال بر روی متن عالی هستند، اما سیستمهایی ایزوله میباشند. آنها به پایگاه داده، کدبیس، تقویم یا وب شما دسترسی ندارند. وادار کردن آنها به استفاده از منابع خارجی نیازمند ساخت یکپارچهسازیهای سفارشی است – و هر مدل و هر ابزار به اتصالدهنده اختصاصی خود نیاز دارد.
پروتکل زمینه مدل (Model Context Protocol) از Anthropic که در نوامبر ۲۰۲۴ معرفی و به عنوان یک استاندارد باز منتشر شد، تلاش میکند این مشکل را به همان روشی حل کند که USB مشکل اتصال دستگاههای جانبی را حل کرد: یک پروتکل واحد و خوب تعریف شده تعریف کند که هر ابزار و هر مدل بتواند یک بار آن را پیادهسازی کند و آنها به صورت خودکار با یکدیگر همعمل کنند.
MCP در واقع چیست
MCP یک پروتکل مشتری‑سرور است که بر روی JSON‑RPC 2.0 ساخته شده است. یک سرور MCP قابلیتهایی را ارائه میدهد – ابزارها، منابع و پرامپتها – که یک کلاینت MCP (معمولاً یک برنامه هوش مصنوعی یا زمان اجرای LLM) میتواند آنها را کشف و فراخوانی کند. این پروتکل سه نوع قابلیت اولیه را تعریف میکند:
ابزارها (Tools) توابعی هستند که هوش مصنوعی میتواند فراخوانی کند: جستجوی وب، پرسوجوی پایگاه داده، اجرای یک دستور پوسته، ارسال ایمیل، ایجاد فایل. یک ابزار دارای یک نام، یک توضیح (به زبان طبیعی که مدل برای تصمیمگیری درباره زمان فراخوانی آن استفاده میکند) و یک JSON Schema برای تعریف ورودیهای خود است. مدل با ارسال یک پیام ساختاریافته tool‑use یک ابزار را فراخوانی میکند؛ کلاینت MCP فراخوانی را به سرور مناسب هدایت میکند؛ نتیجه بازگردانده شده و به زمینه مدل اضافه میشود.
منابع (Resources) دادههایی هستند که هوش مصنوعی میتواند بخواند: فایلها، ردیفهای پایگاه داده، پاسخهای API، اسناد. برخلاف ابزارها، منابع فقط خواندنی بوده و با URI قابل آدرسدهی هستند. یک سرور منابع ممکن است file:///home/user/project/README.md یا postgres://db/schema/users را ارائه دهد. کلاینت میتواند آنها را در صورت نیاز واکشی کرده و در پنجره زمینه مدل قرار دهد.
پرامپتها (Prompts) الگوهای پارامتریسازی شدهای هستند که یک سرور MCP میتواند به عنوان الگوهای تعامل قابل استفاده مجدد ارائه دهد. این مورد در پیادهسازیهای فعلی کمتر استفاده میشود، اما به ارائهدهندگان ابزار اجازه میدهد تا استراتژیهای پرامپت بهینهسازی شده را همراه با تعاریف ابزار خود ارائه دهند.
انتقال (Transport) انعطافپذیر است: مشخصات فعلی از stdio (برای ابزارهای محلی که به عنوان زیرفرآیند اجرا میشوند) و SSE (رویدادهای ارسال شده توسط سرور برای سرورهای HTTP راه دور) پشتیبانی میکند. یک انتقال WebSocket نیز در حال پیشنویس است. این بدان معنا است که یک سرور MCP میتواند یک اسکریپت پایتون محلی باشد که در کنار IDE شما اجرا میشود، یک API راه دور که در یک تابع ابری اجرا میشود، یا هر چیزی در این بین.
داستان پذیرش
MCP با برنامه Claude Desktop خود Anthropic به عنوان اولین کلاینت، و مجموعهای از پیادهسازیهای سرور مرجع برای یکپارچهسازیهای رایج راهاندازی شد: دسترسی به فایلسیستم، جستجوی وب، GitHub، Slack، PostgreSQL و چندین مورد دیگر. استقبال اولیه عمدتاً در جامعه توسعهدهندگانی بود که افزونههایی برای Claude Desktop و برای Claude Code (عامل کدنویسی Anthropic) میساختند.
وضعیت پروتکل در مارس ۲۰۲۵ تغییر چشمگیری کرد، زمانی که OpenAI اعلام کرد MCP را به عنوان یک استاندارد یکپارچهسازی پشتیبانی شده در سراسر API و محصولات خود میپذیرد. این اعلامیه قابل توجه بود زیرا OpenAI فرمت فراخوانی ابزار اختصاصی خود را داشت – شرکت به صراحت پذیرش استاندارد باز موجود را به گسترش استاندارد خود ترجیح داد. گوگل در مه ۲۰۲۵ با اعلام پشتیبانی از MCP در Gemini API و چارچوب عامل هوش مصنوعی اندروید دنبال کرد. مایکروسافت نیز در ژوئن ۲۰۲۵ MCP را در Copilot Studio و GitHub Copilot ادغام کرد.
تا اواسط ۲۰۲۶، اکوسیستم MCP بیش از ۳۰۰۰ پیادهسازی سرور انجمنی ثبت شده در مخزن رسمی دارد که همه چیز را از یکپارچهسازی Jira و Linear گرفته تا مدیریت کلاستر Kubernetes تا جستجوی ادبیات پزشکی پوشش میدهد. همه ارائهدهندگان اصلی API LLM از فراخوانی ابزار MCP به عنوان یک فرمت ورودی رسمی در کنار نحو فراخوانی ابزار بومی خود پشتیبانی میکنند.
در عمل چه شکلی است
تجربه توسعهدهنده از افزودن MCP به یک برنامه از زمان راهاندازی اولیه بهبود چشمگیری یافته است. بسته @modelcontextprotocol/sdk جاوااسکریپت/TypeScript و کتابخانه پایتون mcp کارهای تکراری پروتکل را مدیریت میکنند؛ نوشتن یک سرور MCP برای یک ابزار جدید معمولاً شامل تعریف چند امضای تابع با حاشیهنویسی نوع و یک توضیح به زبان طبیعی است.
یک سرور MCP پایتون مینیمال که ابزاری را برای پرسوجو از پایگاه دانش داخلی یک شرکت ارائه میدهد، تقریباً به این شکل است:
from mcp.server import Server
from mcp.server.models import InitializationOptions
import mcp.types as types
server = Server("company-kb")
@server.list_tools()
async def list_tools() -> list[types.Tool]:
return [types.Tool(
name="search_knowledge_base",
description="Search the company knowledge base for policies, procedures, and documentation.",
inputSchema={"type": "object", "properties": {
"query": {"type": "string", "description": "The search query"}
}, "required": ["query"]}
)]
@server.call_tool()
async def call_tool(name: str, arguments: dict) -> list[types.TextContent]:
if name == "search_knowledge_base":
results = await kb_search(arguments["query"])
return [types.TextContent(type="text", text=results)]
هر برنامه هوش مصنوعی سازگار با MCP – Claude Desktop، یک برنامه سفارشی که از SDK Anthropic استفاده میکند، یک افزونه GitHub Copilot – میتواند پس از ثبت سرور به صورت خودکار این ابزار را کشف کرده و از آن استفاده کند.
مدل امنیتی
ویژگیهای امنیتی MCP برای هر استقرار جدی یک ملاحظه حیاتی است. خود پروتکل مستقل از انتقال است و شامل احراز هویت داخلی نمیشود – این موضوع به پیادهسازی سرور و محیط استقرار واگذار میشود. برای سرورهای stdio محلی (که روی ماشین کاربر اجرا میشوند و توسط برنامه کلاینت راهاندازی میشوند)، این معمولاً قابل قبول است: سرور همان مجوزهای کاربری را دارد که آن را راهاندازی کرده است. برای سرورهای SSE راه دور، احراز هویت مسئولیت اپراتور سرور است.
یک ریسک ظریفتر مسمومیت ابزار (tool poisoning) است: یک سرور MCP مخرب که رفتار ابزار خود را در توضیحات زبان طبیعی به اشتباه معرفی میکند و هوش مصنوعی را به فراخوانی آن در زمینههایی که کاربر قصد نداشته است ترغیب میکند. این یک حوزه فعال تحقیقات امنیتی است و چندین راهکار کاهشی پیشنهاد شده است: امضای رمزنگاری مانیفستهای سرور، تأیید انسانی برای فراخوانی ابزارهای بالاتر از آستانه خطر، و تحلیل ایستا توضیحات ابزار. مشخصات MCP شامل یک بخش ملاحظات امنیتی است که با انباشت تجربه استقرار در دنیای واقعی گسترش یافته است.
چرا برای اکوسیستم اهمیت دارد
قبل از MCP، هر یکپارچهسازی هوش مصنوعی یک یکپارچهسازی سفارشی بود. ساخت یک اتصالدهنده بین Claude و ابزارهای داخلی شما به کد متفاوتی نسبت به ساخت همان اتصالدهنده برای ChatGPT یا Gemini نیاز داشت. این کار تکراری ایجاد میکرد و اکوسیستمی پراکنده به وجود میآورد که در آن هر مدل جدید نیاز به پیادهسازی مجدد هر یکپارچهسازی موجود داشت.
تأثیر عملی MCP این است که پیادهسازیهای ابزار اکنون در سراسر اکوسیستم هوش مصنوعی قابل استفاده مجدد هستند. شرکتی که یک سرور MCP برای اسناد داخلی خود میسازد – یک بار – آن یکپارچهسازی را با Claude، ChatGPT، Gemini، Copilot و هر مدل آیندهای که از پروتکل پشتیبانی میکند، کار میکند. این همان اثر شبکهای است که USB را اینقدر بادوام کرده است: ارزش استاندارد با افزایش تعداد دستگاهها و تجهیزات جانبی که از آن پشتیبانی میکنند افزایش مییابد.
این پروتکل هنوز جوان است و تکامل خواهد یافت – مشخصات فعلی v0.9 است و نهاییسازی v1.0 برای اواخر ۲۰۲۶ پیشبینی میشود. اما مسیر پذیرش آن نشان میدهد که از آستانه «استاندارد باز جالب» به «زیرساخت عملاً استاندارد» عبور کرده است. اگر در سال ۲۰۲۶ در حال ساخت برنامههای مبتنی بر هوش مصنوعی هستید و استراتژی یکپارچهسازی ابزار خود را در برابر MCP بررسی نکردهاید، اکنون زمان آن است که این کار را انجام دهید.