
اگر این روزها با ابزارهای هوش مصنوعی مثل Claude، Cursor یا سایر دستیارهای کدنویسی کار میکنید، احتمالاً نام MCP یا Model Context Protocol به گوشتان خورده است. این پروتکل که توسط Anthropic معرفی شده، به سرعت تبدیل به یکی از مهمترین زیرساختهای دنیای هوش مصنوعی عاملمحور (Agentic AI) شده و حالا حتی رقبایی مثل OpenAI و Google DeepMind هم از آن پشتیبانی میکنند. در این مقاله به زبان ساده و کاربردی بررسی میکنیم که MCP دقیقاً چیست، چه مشکلی را حل میکند و چرا برای هر توسعهدهندهای که با هوش مصنوعی کار میکند، دانستن آن اهمیت دارد.

پیش از معرفی MCP، اتصال یک مدل زبانی به منابع داده یا ابزارهای بیرونی (مثل گیتهاب، دیتابیس، اسلک یا گوگل درایو) نیازمند نوشتن یک یکپارچهسازی اختصاصی و جداگانه برای هر ترکیب مدل و ابزار بود. اگر N مدل مختلف داشتید و میخواستید به N ابزار متصل شوید، عملاً باید N×M پیادهسازی متفاوت میساختید؛ کاری پرهزینه، شکننده و غیرقابل مقیاسپذیری.
این همان مشکلی است که تیم Anthropic آن را «مسئله N×M» نامید و MCP دقیقاً برای حل همین مسئله طراحی شد.
Model Context Protocol یک استاندارد باز (Open Standard) است که یک روش یکسان و مستقل از فروشنده برای اتصال دستیارهای هوش مصنوعی به منابع داده و ابزارهای بیرونی فراهم میکند. بهجای اینکه هر توسعهدهنده مجبور باشد برای هر سرویس یک رابط اختصاصی بسازد، کافی است یکبار پروتکل MCP را در سمت مدل و یکبار در سمت ابزار پیادهسازی کند؛ از آن به بعد، هر مدلی که از MCP پشتیبانی کند میتواند بدون کد اضافی به آن ابزار متصل شود.
میتوان MCP را شبیه پورت USB-C دنیای هوش مصنوعی دانست: یک رابط استاندارد که به جای اتصالات اختصاصی و پراکنده، یک راه ارتباطی یکپارچه ایجاد میکند.
معماری MCP از سه بخش کلیدی تشکیل شده است:
این جداسازی باعث میشود توسعه هر سرور بهصورت مستقل و بدون نیاز به تغییر در Host یا مدل اصلی انجام شود.
هر سرور MCP قابلیتهای خود را از طریق سه نوع «primitive» در اختیار مدل قرار میدهد:
MCP از دو روش اصلی برای انتقال داده پشتیبانی میکند: stdio برای سرورهایی که بهصورت محلی و به شکل زیرفرایند اجرا میشوند (مناسب برای ابزارهای توسعه با تأخیر پایین)، و HTTP همراه با Server-Sent Events (SSE) برای سرورهای ریموت یا مستقر در فضای ابری. در هر دو حالت، پیامها با فرمت استاندارد JSON-RPC 2.0 رد و بدل میشوند که هم درخواست-پاسخ و هم اعلانهای یکطرفه (Notification) را پشتیبانی میکند.
یک نمونه ساده از تعریف یک ابزار در یک سرور MCP با پایتون به این شکل است:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo-server")
@mcp.tool()
def get_weather(city: str) -> str:
"""دریافت وضعیت آبوهوای یک شهر"""
return f"هوای {city} امروز آفتابی است."
if __name__ == "__main__":
mcp.run()همانطور که میبینید، تعریف یک ابزار جدید فقط به یک دکوریتور ساده نیاز دارد و پیچیدگی پروتکل از دید توسعهدهنده پنهان میشود.
دلیل اهمیت MCP فقط در سادهسازی یکپارچهسازی نیست؛ این پروتکل زیرساخت اصلی نسل جدید سیستمهای عاملمحور (Agentic AI) را شکل میدهد:
از ابزارهای کدنویسی مثل Claude Code و Cursor که بهصورت مستقیم به مخازن گیت، دیتابیسها و سیستمهای CI/CD متصل میشوند، تا دستیارهای سازمانی که به گوگل درایو، اسلک یا سیستمهای CRM دسترسی دارند، MCP امروز پایه بسیاری از ابزارهای روزمره توسعهدهندگان است. حتی برای عملیاتهای سادهتر مانند اجرای کوئری روی یک پایگاه داده با زبان طبیعی یا خودکارسازی گردش کار در Kubernetes، MCP یک لایه استاندارد و قابلاعتماد فراهم میکند.
باز بودن و انعطافپذیری MCP یک روی سکه است؛ روی دیگر آن، ریسکهای امنیتی واقعی است. پژوهشگران امنیتی به مواردی مانند Prompt Injection (تزریق دستور از طریق دادههای خارجی) و Poisoned Tools (ابزارهای آلودهای که میتوانند دادهها را به بیرون درز دهند) اشاره کردهاند. به همین دلیل، هنگام استفاده از سرورهای MCP شخص ثالث، باید فقط به سرورهایی که منبع و کد آنها قابل اعتماد است اجازه اتصال داد و دسترسیهای هر سرور را به حداقل لازم محدود کرد.
اگر میخواهید با MCP کار عملی انجام دهید، مسیر پیشنهادی این است:
MCP دیگر یک ایده آزمایشی نیست؛ در سال ۲۰۲۶ به یکی از پایهایترین زیرساختهای دنیای هوش مصنوعی عاملمحور تبدیل شده است. برای توسعهدهندگانی که میخواهند دستیارهای هوش مصنوعی واقعاً «کاری انجام دهند» نه فقط پاسخ متنی تولید کنند، یادگیری MCP دیگر یک انتخاب جانبی نیست، بلکه بخشی از مهارتهای اصلی برنامهنویسی مدرن محسوب میشود.