MCP در برابر API Gatewayها: آنها قابل جایگزینی با یکدیگر نیستند
تفاوتهای بنیادین و اینکه چرا یک دروازه (Gateway) تخصصی MCP برای امنیت، مسیریابی و قابلیت مشاهده (Observability) ضروری است را کشف کنید.
MCP در برابر API Gatewayها: آنها قابل جایگزینی با یکدیگر نیستند
APIها بدون حالت (Stateless) هستند، اما MCP دارای حالت (Stateful) است
- متد (
GET،POST،PUT،DELETE) - مسیر (
/users/123/orders) - هدرها (
Authorization: Bearer xyz،Content-Type) - پارامترهای کوئری (
?limit=10&offset=50)
- قابلیتهای پروتکل که بین کلاینت و سرور توافق میشوند (اینکه کدام ویژگیهای اختیاری در دسترس هستند).
- نتیجه ابزار / زمینه (Context) حاصل از فراخوانیها و پاسخهای قبلی ابزار.
- وضعیت فراخوانی ناهمگام ابزار؛ بهروزرسانیها / اعلانهای جریانی (Streaming).
- وضعیت مربوط به اطلاعات درخواستشده از سرور توسط کلاینت.
POST /mcp
Mcp-Session-Id: session_abc123
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "database_query",
"arguments": { /* complex nested structure */ }
},
"id": "call_456"
}
آیا میتوانید از API Gateway خود به عنوان یک MCP Gateway استفاده کنید؟
- تجزیه بدنه درخواست و پاسخها (JSON-RPC)، و پیادهسازی معناشناسی پروتکل.
- اعمال تصمیمات خطمشی (اجازه/عدم اجازه) روی بخشهایی از بدنه (فهرست ابزارها، فراخوانی ابزارها، درخواستهای منبع و غیره).
- یک درخواست HTTP POST واحد از سوی یک کلاینت MCP میتواند به چندین پاسخ منجر شود که به صورت جریانی (SSE) بازگردانده میشوند.
- نیاز به روشی برای اعمال اجرای خطمشی در داخل جریان (Stream).
- هنگامی که جریان برقرار شد، پروکسی کردن درخواستها از سرور MCP به کلاینت MCP.
- میانجیگری تفاوتهای بین کلاینتهای MCP و سرورهای MCP.
- ارائه یک سرور MCP منطقی واحد به یک کلاینت MCP (سرور MCP مجازی)، که ممکن است در سمت بکاند شامل چندین سرور MCP باشد.
- پروکسی عبور ساده (Passthrough)
- درک جزئی از پروتکل
- میانجیگری MCP
- چندپخشی (Multiplexing) در MCP
پروکسی عبور ساده
چه مواردی به خوبی کار میکنند:
- احراز هویت در سطح HTTP (کلیدهای API، توکنهای OAuth)
- محدودسازی نرخ (Rate Limiting) پایه به ازای هر کلاینت یا IP
- خاتمه لایه امنیت انتقال (TLS) و مدیریت گواهینامهها
- ثبت وقایع (Logging) و معیارهای درخواست/پاسخ
محدودیتهای Gateway در مواجهه با SSE:
- عدم اجرای خطمشی جریانی: دروازه نمیتواند رویدادهای منفرد SSE را بررسی یا فیلتر کند.
- قابلیت مشاهده محدود: عدم امکان ردیابی پیشرفت، تشخیص خطاها یا سنجش تاخیر (Latency) به ازای هر رویداد.
- نبود مجوزدهی میانجریانی: عدم امکان لغو دسترسی یا اعمال خطمشیها همزمان با پیشروی جریان.
- از دست رفتن زمینه نشست (Session): چندین رویداد SSE بخشی از یک عملیات منطقی MCP هستند، اما دروازه آنها را به عنوان تکههای مستقل میبیند.
پشتیبانی جزئی از پروتکل
چه مواردی امکانپذیر میشود:
- درک بهتر درخواستهای JSON-RPC.
- اعمال مجوزدهی در سطح ابزار («کاربران بازاریابی نمیتوانند
database_queryرا فراخوانی کنند»). - تبدیل و اعتبارسنجی اولیه درخواستها.
- پیچیدگی تجزیه پویا: فهرست ابزارهای MCP دارای طولهای دلخواهی هستند. عبارات JSONPath شما به طور فزایندهای پیچیده و شکننده میشوند.
- سربار عملکرد: سیاستهای جاوا اسکریپت کندتر از سیاستهای بومی درگاه (gateway) هستند.
- بار نگهداری: هر ابزار جدید MCP ممکن است نیازمند بهروزرسانی سیاستهای درگاه باشد. تیم زیرساخت شما به توسعه سرور MCP شما وابسته میشود.
- پشتیبانی محدود از استریمing: در حالی که برخی درگاهها از SSE پشتیبانی میکنند، اعمال سیاست در میانهی مسیر به طور تصاعدی پیچیدهتر میشود.
میانجیگری MCP
- محافظت در برابر تغییرات نسخه: محافظت از کلاینت MCP در برابر تغییرات ناسازگار هنگام ارتقای سرور MCP.
- فیلترینگ درخواست: حذف ابزارها از پاسخهای کشف (discovery) بر اساس الزامات سازگاری رو به عقب.
- پاکسازی پاسخ: حذف دادههای حساس از پاسخهای ابزار بر اساس سطوح دسترسی کاربر.
- تزریق زمینه: افزودن زمینه سازمانی (شناسه کاربر، اطلاعات تننت) به فراخوانیهای ابزار.
- مدیریت خطا: تبدیل خطاهای پروتکل MCP به رویدادهای ممیزی سازگار با استاندارد سازمانی.
چندپخشی (Multiplexing) MCP
- ابزارهای آبوهوا از weather-service.internal
- ابزارهای پایگاه داده از analytics-service.internal
- ابزارهای ایمیل از notification-service.internal
- پخش جلسات (Session fan-out): وقتی کلاینتی دستوری برای «tools/list» ارسال میکند، درگاه باید از تمام سرورهای بکاند استعلام گرفته و نتایج را ادغام کند.
- مسیریابی درخواست: فراخوانیهای ابزار باید بر اساس نام ابزار به بکاند صحیح هدایت شوند.
- چندپخشی پاسخ: پاسخهای استریم شده از چندین بکاند باید در یک استریم SSE واحد ادغام شوند.
- هماهنگی حالت: شناسههای جلسه و مذاکرات پروتکل باید در چندین اتصال بکاند مدیریت شوند.
- مدیریت خطا: خرابی در یک بکاند نباید کل جلسه مجازی را مختل کند.
Agentgateway: ساخته شده برای MCP از پایه
نقشههای راه، مقالات، منابع و مسیرهای ایجاد شده توسط جامعه برای توسعهدهندگان تا به شما کمک کنند مسیر خود را انتخاب کنید و در حرفه خود پیشرفت کنید.
نظر مهندس بهمن آبادی: برخلاف تصور رایج، API Gatewayهای سنتی به دلیل ماهیت Stateless و ناتوانی در مدیریت نشستهای Stateful و جریانهای SSE، ابزار مناسبی برای پروتکل MCP نیستند. در معماریهای مبتنی بر هوش مصنوعی، ما به Gatewayهای تخصصی MCP نیاز داریم تا بتوانند مواردی چون چندپخشی ابزارها، مدیریت نشستها و اعمال سیاستهای امنیتی در سطح بدنه و استریم را به درستی هندل کنند. استفاده از پروکسیهای معمولی تنها یک سراب امنیتی ایجاد میکند و پیچیدگیهای مقیاسپذیری سیستمهای هوش مصنوعی را پوشش نمیدهد.
منبع: https://thenewstack.io/mcp-vs-api-gateways-theyre-not-interchangeable/