نکات کلیدی
-
APIها و سرورهای MCP از نظر هدف و ویژگیها مشابهاند، اما APIها مبتنی بر منابع و سرورهای MCP مبتنی بر وظیفه هستند؛ بنابراین برای MCP نباید تبدیل ۱:۱ انجام شود، بلکه نیازمند طراحی و تدوین هوشمندانه ابزارهاست.
-
تبدیل API به سرور MCP مستلزم هماهنگسازی چندین فراخوانی API در قالب ابزارهایی است که LLM بتواند آنها را درک و اجرا کند.
-
ساخت موفق یک MCP از تعریف موارد استفاده و منطق تجاری آغاز میشود؛ سپس منابع API برای پشتیبانی از این وظایف بهکار گرفته میشود.
-
رویکرد امنیتی متفاوت است: MCP برای تعامل با LLM از OAuth 2.1 استفاده میکند، اما فراخوانیهای بعدی به APIها با مکانیسمهایی مثل API Key، OAuth 2.0، Basic Auth و… انجام میشود.
از زمانی که MCP توسط Anthropic در نوامبر ۲۰۲۴ معرفی شد، پذیرش این فناوری بهسرعت رشد کردهاست؛ چه توسط فروشندگان و چه سازمانهایی که آن را در محصولات خود پیادهسازی کردهاند.
هدف اصلی MCP این است که به LLMها کمک کند تا پاسخدهی بهتر و هوشمندانهتری ارائه دهند؛ به این معنا که رابطی برای تعامل LLM با سیستمها و اجرای عملیات در محیطهای واقعی فراهم میکند. این کاربرد شبیه استفاده اپلیکیشنهای مشتری از API است. بنابراین بسیاری از توسعهدهندگان تصور میکنند میتوانند همان APIهای موجود را مستقیماً به سرور MCP تبدیل کنند.
اما این برداشت صحیح نیست. به دلیل تفاوتهای بنیادی بین LLM و اپلیکیشنهای سنتی، رابطه بین API و MCP بیشتر به استفاده از بلوکهای سازنده API در داخل MCP شباهت دارد، نه تبدیل کامل API به MCP.
در ادامه، تفاوتها و شباهتهای اصلی بین API و MCP و همچنین بهترین روشها برای ایجاد MCP از روی ساختار API بررسی میشود:
API در مقابل MCP — تفاوت در چیست؟
هر دو رابطهایی هستند که ارتباط استاندارد بین سرویسدهنده و سرویسگیرنده را برقرار میکنند، اما:
| API | MCP |
|---|---|
| مبتنی بر منابع و متدهای دسترسی به آنها | مبتنی بر وظیفه/کار و ابزارهایی برای انجام یک عملیات |
مثال: دریافت اطلاعات یک فاکتور با GET /invoice/invoiceid |
مثال: ابزار read_invoice_details برای خواندن اطلاعات فاکتور |
| تعامل معمولاً Request/Response ساده | شامل مراحل: Initialization، Operation، Shutdown |
| امکان استفاده از همه متدهای HTTP | همیشه از HTTP POST استفاده میکند |
| شامل دهها منبع و متدهای مرتبط | توصیهشده: کمتر از ۵۰ ابزار، منبع و Prompt |
| منطق تجاری توسط کلاینت مدیریت میشود | LLMها نمیتوانند توالی پیچیده اقدامات کوچک را بهدرستی پیش ببرند |
| مستندسازی برای توسعهدهنده است و نرمافزار به آن نیازی ندارد | مستندسازی برای LLM ضروری است تا کاربرد ابزار را بفهمد |
| استانداردهای کامل مثل OpenAPI و RAML وجود دارد | فعلاً استاندارد رسمی جامع برای توصیف MCP وجود ندارد |
| فناوری بالغ و پایدار | استانداردی جدید و در حال تغییر سریع |
| روشهای امنیتی متنوع | توصیهشده: OAuth 2.1 جهت تأیید هویت LLM |
چگونه یک API را به سرور MCP تبدیل کنیم؟
تبدیل مستقیم امکانپذیر نیست؛ APIها باید بهگونهای بستهبندی شوند که MCP بتواند در زیستبوم هوش مصنوعی مورد استفاده قرار گیرد.
MCP یک لایه ادغام است که LLM را به سرویسها و فرایندهای تجاری متصل میکند.
گام ۱ — تعریف مورد استفاده MCP
برای نمونه، هدف این باشد که کارکنان شرکت از طریق چتبات سفارش لپتاپ ثبت کنند.
در این حالت ابزارهای مورد نیاز:
-
check_laptop_offering
-
order_laptop
-
check_status_of_order
هر ابزار باید یک وظیفه مستقل و قابل درک برای LLM باشد.
گام ۲ — طراحی منطق تجاری ابزارها
از آنجا که API مبتنی بر منابع و MCP مبتنی بر وظیفه است، معمولاً یک ابزار از چندین فراخوانی API استفاده میکند.
مثالهای ابزارها:
check_laptop_offering
-
دریافت مدلهای موجود
GET /it/procurement/laptop -
دریافت موجودی هر مدل
GET /it/inventory/laptop/model
order_laptop
-
بررسی اعتبار لپتاپ فعلی
GET /it/procurement/laptop/[id]/validity -
بررسی تطابق مدل با سطح مجاز کاربر
GET /it/procurement/laptop/order/[userid] -
ثبت سفارش
POST /it/procurement/laptop
check_status_of_order
-
بررسی وضعیت سفارش
GET /it/procurement/laptop/order/[id]
این مثالها نشان میدهد که یک ابزار MCP معمولاً ترکیبی از چند منبع API است؛ بنابراین تبدیل مستقیم ۱:۱ منطقی نیست.
گام ۳ — پیادهسازی امنیت و احراز هویت
-
ورودی LLM به سرور MCP: OAuth 2.1
-
فراخوانیهای MCP به APIهای دیگر: مطابق مکانیزم امنیتی API (API Key، OAuth 2.0، Basic Auth و…)
پس MCP باید دو لایه امنیتی مدیریت کند:
-
ورودی از سمت LLM
-
خروجی به سمت APIها
جمعبندی
-
MCP جایگزین API نیست؛ نمایشدهنده وظایف API برای LLM است.
-
ابزارهای MCP باید در سطحی باشند که LLM بتواند آنها را بدون زنجیرهسازی پیچیده انجام دهد.
-
طراحی MCP از منطق تجاری شروع میشود، نه از منابع API.
